pax_global_header00006660000000000000000000000064132270430650014514gustar00rootroot0000000000000052 comment=e4db2a2181c104c7780e9f077923e2368a4386ee tinyssh-20180201/000077500000000000000000000000001322704306500134545ustar00rootroot00000000000000tinyssh-20180201/.gitignore000066400000000000000000000000071322704306500154410ustar00rootroot00000000000000/build tinyssh-20180201/.travis.yml000066400000000000000000000003611322704306500155650ustar00rootroot00000000000000language: c os: - linux - osx osx_image: xcode7.3 cache: ccache: true # opt-in Ubuntu Trusty sudo: required dist: trusty script: - cd "$TRAVIS_BUILD_DIR" - make after_success: - cd "$TRAVIS_BUILD_DIR" - sudo make install tinyssh-20180201/INSTALL000066400000000000000000000000451322704306500145040ustar00rootroot00000000000000See https://tinyssh.org/install.html tinyssh-20180201/LICENCE000066400000000000000000000147611322704306500144520ustar00rootroot00000000000000Public domain. For jurisdictions where 'Public domain' mark is not legal, follow: CC0 1.0 Universal Statement of Purpose The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; ii. moral rights retained by the original author(s) and/or performer(s); iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; v. rights protecting the extraction, dissemination, use and reuse of data in a Work; vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. 4. Limitations and Disclaimers. a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. For more information, please see tinyssh-20180201/Makefile000066400000000000000000000002361322704306500151150ustar00rootroot00000000000000compile: make-tinyssh.sh sh -e make-tinyssh.sh clean: rm -rf build install: sh -e make-install.sh $(DESTDIR) deb: dpkg-buildpackage -b -rfakeroot -us -uc tinyssh-20180201/README.md000066400000000000000000000002221322704306500147270ustar00rootroot00000000000000See https://tinyssh.org/ [![TravisCI status](https://travis-ci.org/janmojzis/tinyssh.svg?branch=master)](https://travis-ci.org/janmojzis/tinyssh) tinyssh-20180201/_tinyssh/000077500000000000000000000000001322704306500153145ustar00rootroot00000000000000tinyssh-20180201/_tinyssh/_TARGETS000066400000000000000000000002231322704306500165040ustar00rootroot00000000000000_tinysshd-printkex _tinysshd-unauthenticated _tinysshd-install _tinysshd-test-hello1 _tinysshd-test-hello2 _tinysshd-test-kex1 _tinysshd-test-kex2 tinyssh-20180201/_tinyssh/_tinysshd-install.c000066400000000000000000000050741322704306500211360ustar00rootroot00000000000000#include #include #include #include #include "open.h" #include "log.h" static void usage(void) { log_u1("_tinysshd-install: usage: _tinysshd-install sourcefile destdir tempfile destfile [flagexecutable]"); _exit(100); } static int flagtmpcreated = 0; static const char *srcfn = 0; static const char *tmpfn = 0; static const char *dstfn = 0; static const char *dstdir = 0; static int fd1 = -1, fd2 = -1; static void cleanup(void) { if (flagtmpcreated) { unlink(tmpfn); } } static void die_fatal(const char *trouble, const char *d, const char *fn) { cleanup(); if (d) { if (fn) log_f5(trouble, " ", d, "/", fn); else log_f3(trouble, " ", d); } else { log_f1(trouble); } _exit(111); } static int flagexecutable = 0; int main(int argc, char **argv) { struct stat st; long long r; char ch; log_init(2, "_tinysshd-install", 0, 0); if (argc < 5) usage(); if (!argv[0]) usage(); if (!argv[1]) usage(); if (!argv[2]) usage(); if (!argv[3]) usage(); if (!argv[4]) usage(); srcfn = argv[1]; dstdir = argv[2]; tmpfn = argv[3]; dstfn = argv[4]; if (argv[5]) flagexecutable = 1; /* open source file */ fd1 = open_read(srcfn); if (fd1 == -1) die_fatal("unable to open file", srcfn, 0); /* stat destination directory and change directory */ if ((stat(dstdir, &st)) == -1) die_fatal("unable to stat directory", dstdir, 0); if (chdir(dstdir) == -1) die_fatal("unable to change directory to", dstdir, 0); /* open temporary file */ fd2 = open_write(tmpfn); if (fd2 == -1) die_fatal("unable to open file", dstdir, tmpfn); flagtmpcreated = 1; /* copy file */ for (;;) { r = read(fd1, &ch, 1); if (r == -1) die_fatal("unable to read from file", srcfn, 0); if (r == 0) break; if (write(fd2, &ch, 1) != 1) die_fatal("unable to write to file", dstdir, tmpfn); } if (fsync(fd2) == -1) die_fatal("unable to write to file", dstdir, tmpfn); if (fchown(fd2, st.st_uid, st.st_gid) == -1) die_fatal("unable to change owner on", dstdir, tmpfn); if (flagexecutable) { if (fchmod(fd2, 0755) == -1) die_fatal("unable to change owner on", dstdir, tmpfn); } else { if (fchmod(fd2, 0644) == -1) die_fatal("unable to change owner on", dstdir, tmpfn); } if (close(fd2) == -1) die_fatal("unable to write to file", dstdir, tmpfn); if (rename(tmpfn, dstfn) == -1) die_fatal("unable to rename file to", dstdir, dstfn); _exit(0); } tinyssh-20180201/_tinyssh/_tinysshd-printkex.c000066400000000000000000000103071322704306500213270ustar00rootroot00000000000000/* 20141210 Jan Mojzis Public domain. */ #include #include #include #include "log.h" #include "packet.h" #include "ssh.h" #include "bug.h" #include "packetparser.h" #include "global.h" static void cleanup(void) { global_purge(); } static void die_fatal(const char *trouble, const char *d, const char *fn) { cleanup(); if (d) { if (fn) log_f5(trouble, " ", d, "/", fn); else log_f3(trouble, " ", d); } else { log_f1(trouble); } _exit(111); } static int _packet_kex_receive(void) { struct buf *b = &packet.kexrecv; long long pos = 0; crypto_uint8 ch; crypto_uint32 len; if (!packet_getall(b, SSH_MSG_KEXINIT)) return 0; /* parse packet */ pos = packetparser_uint8(b->buf, b->len, pos, &ch); /* SSH_MSG_KEXINIT */ if (ch != SSH_MSG_KEXINIT) bug_proto(); pos = packetparser_skip(b->buf, b->len, pos, 16); /* cookie */ pos = packetparser_uint32(b->buf, b->len, pos, &len); /* kex algorithms */ pos = packetparser_skip(b->buf, b->len, pos, len); log_i2("kex algorithms: ", (char *)b->buf + pos - len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* server host key algorithms */ pos = packetparser_skip(b->buf, b->len, pos, len); log_i2("server host key algorithms: ", (char *)b->buf + pos - len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* encryption algorithms client to server */ pos = packetparser_skip(b->buf, b->len, pos, len); log_i2("encryption algorithms client to server: ", (char *)b->buf + pos - len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* encryption algorithms server to client */ pos = packetparser_skip(b->buf, b->len, pos, len); log_i2("encryption algorithms server to client: ", (char *)b->buf + pos - len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* mac algorithms client to server */ pos = packetparser_skip(b->buf, b->len, pos, len); log_i2("mac algorithms client to server: ", (char *)b->buf + pos - len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* mac algorithms server to client */ pos = packetparser_skip(b->buf, b->len, pos, len); log_i2("mac algorithms server to client: ", (char *)b->buf + pos - len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* compress algorithms client to server */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* compress algorithms server to client */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* languages client to server */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* languages server to client */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_uint8(b->buf, b->len, pos, &ch); /* kex first packet follows */ pos = packetparser_uint32(b->buf, b->len, pos, &len); /* reserved */ return 1; } int main(int argc, char **argv) { pid_t pid; int tochild[2] = { -1, -1 }; int fromchild[2] = { -1, -1 }; if (argc < 2) _exit(111); if (!argv[0]) _exit(111); if (!argv[1]) _exit(111); ++argv; if (pipe(tochild) == -1) _exit(111); if (pipe(fromchild) == -1) _exit(111); pid = fork(); if (pid == -1) _exit(111); if (pid == 0) { close(tochild[1]); close(fromchild[0]); close(2); if (dup2(tochild[0], 0) == -1) _exit(111); if (dup2(fromchild[1], 1) == -1) _exit(111); execvp(*argv, argv); _exit(111); } close(tochild[0]); close(fromchild[1]); close(0); if (dup2(fromchild[0], 0) == -1) _exit(111); close(1); if (dup2(tochild[1], 1) == -1) _exit(111); signal(SIGPIPE, SIG_IGN); global_init(); log_init(2, "_tinysshd-printkex", 0, 0); if (!packet_hello_receive()) die_fatal("unable to receive hello-string", 0, 0); if (!packet_hello_send()) die_fatal("unable to send hello-string", 0, 0); if (!_packet_kex_receive()) die_fatal("unable to receive kex-message", 0, 0); _exit(111); } tinyssh-20180201/_tinyssh/_tinysshd-test-hello1.c000066400000000000000000000017041322704306500216250ustar00rootroot00000000000000/* 20160225 Jan Mojzis Public domain. */ #include #include #include int main(int argc, char **argv) { pid_t pid; int tochild[2] = { -1, -1 }; int fromchild[2] = { -1, -1 }; if (argc < 2) _exit(111); if (!argv[0]) _exit(111); if (!argv[1]) _exit(111); ++argv; if (pipe(tochild) == -1) _exit(111); if (pipe(fromchild) == -1) _exit(111); pid = fork(); if (pid == -1) _exit(111); if (pid == 0) { close(tochild[1]); close(fromchild[0]); close(1); /* simulate closed connection */ if (dup2(tochild[0], 0) == -1) _exit(111); if (dup2(fromchild[1], 1) == -1) _exit(111); execvp(*argv, argv); _exit(111); } close(tochild[0]); close(fromchild[1]); close(0); if (dup2(fromchild[0], 0) == -1) _exit(111); close(1); if (dup2(tochild[1], 1) == -1) _exit(111); signal(SIGPIPE, SIG_IGN); _exit(111); } tinyssh-20180201/_tinyssh/_tinysshd-test-hello2.c000066400000000000000000000034041322704306500216250ustar00rootroot00000000000000/* 20160225 Jan Mojzis Public domain. */ #include #include #include #include "log.h" #include "packet.h" #include "global.h" #include "str.h" #include "writeall.h" static void cleanup(void) { global_purge(); } static void die_fatal(const char *trouble, const char *d, const char *fn) { cleanup(); if (d) { if (fn) log_f5(trouble, " ", d, "/", fn); else log_f3(trouble, " ", d); } else { log_f1(trouble); } _exit(111); } int main(int argc, char **argv) { pid_t pid; int tochild[2] = { -1, -1 }; int fromchild[2] = { -1, -1 }; const char *message; long long messagelen; if (argc < 2) _exit(111); if (!argv[0]) _exit(111); if (!argv[1]) _exit(111); if (!argv[2]) _exit(111); ++argv; message = *argv; messagelen = str_len(message); ++argv; if (pipe(tochild) == -1) _exit(111); if (pipe(fromchild) == -1) _exit(111); pid = fork(); if (pid == -1) _exit(111); if (pid == 0) { close(tochild[1]); close(fromchild[0]); if (dup2(tochild[0], 0) == -1) _exit(111); if (dup2(fromchild[1], 1) == -1) _exit(111); execvp(*argv, argv); _exit(111); } close(tochild[0]); close(fromchild[1]); close(0); if (dup2(fromchild[0], 0) == -1) _exit(111); close(1); if (dup2(tochild[1], 1) == -1) _exit(111); signal(SIGPIPE, SIG_IGN); global_init(); if (!packet_hello_receive()) die_fatal("unable to receive hello-string", 0, 0); if (messagelen) { if (writeall(1, message, messagelen) == -1) die_fatal("unable to write hello-string", 0, 0); if (writeall(1, "\r\n", 2) == -1) die_fatal("unable to write hello-string", 0, 0); } _exit(111); } tinyssh-20180201/_tinyssh/_tinysshd-test-kex1.c000066400000000000000000000030451322704306500213110ustar00rootroot00000000000000/* 20160226 Jan Mojzis Public domain. */ #include #include #include #include "log.h" #include "packet.h" #include "ssh.h" #include "bug.h" #include "packetparser.h" #include "global.h" static void cleanup(void) { global_purge(); } static void die_fatal(const char *trouble, const char *d, const char *fn) { cleanup(); if (d) { if (fn) log_f5(trouble, " ", d, "/", fn); else log_f3(trouble, " ", d); } else { log_f1(trouble); } _exit(111); } int main(int argc, char **argv) { pid_t pid; int tochild[2] = { -1, -1 }; int fromchild[2] = { -1, -1 }; if (argc < 2) _exit(111); if (!argv[0]) _exit(111); if (!argv[1]) _exit(111); ++argv; if (pipe(tochild) == -1) _exit(111); if (pipe(fromchild) == -1) _exit(111); pid = fork(); if (pid == -1) _exit(111); if (pid == 0) { close(tochild[1]); close(fromchild[0]); if (dup2(tochild[0], 0) == -1) _exit(111); if (dup2(fromchild[1], 1) == -1) _exit(111); execvp(*argv, argv); _exit(111); } close(tochild[0]); close(fromchild[1]); close(0); if (dup2(fromchild[0], 0) == -1) _exit(111); close(1); if (dup2(tochild[1], 1) == -1) _exit(111); signal(SIGPIPE, SIG_IGN); global_init(); log_init(2, "_tinysshd-test-kex1", 0, 0); if (!packet_hello_receive()) die_fatal("unable to receive hello-string", 0, 0); if (!packet_hello_send()) die_fatal("unable to send hello-string", 0, 0); _exit(111); } tinyssh-20180201/_tinyssh/_tinysshd-test-kex2.c000066400000000000000000000123311322704306500213100ustar00rootroot00000000000000/* 20160226 Jan Mojzis Public domain. */ #include #include #include #include "log.h" #include "packet.h" #include "ssh.h" #include "bug.h" #include "packetparser.h" #include "global.h" static void cleanup(void) { global_purge(); } static void die_fatal(const char *trouble, const char *d, const char *fn) { cleanup(); if (d) { if (fn) log_f5(trouble, " ", d, "/", fn); else log_f3(trouble, " ", d); } else { log_f1(trouble); } _exit(111); } static int _packet_disconnect(struct buf *b) { buf_purge(b); buf_putnum8(b, SSH_MSG_DISCONNECT); /* byte SSH_MSG_DISCONNECT */ buf_putnum32(b, 0); /* uint32 reason code */ buf_putstring(b, "bye"); /* string description in ISO-10646 UTF-8 encoding [RFC3629] */ buf_putstring(b, ""); /* string language tag [RFC3066] */ packet_put(b); return packet_sendall(); } static int _packet_debug(struct buf *b) { buf_purge(b); buf_putnum8(b, SSH_MSG_DEBUG); /* SSH_MSG_DEBUG */ buf_putnum8(b, 1); /* always_display */ buf_putstring(b, "test message"); /* message in ISO-10646 UTF-8 encoding [RFC3629] */ buf_putstring(b, ""); /* language tag [RFC3066] */ packet_put(b); return packet_sendall(); } static int _packet_kex_receive(void) { struct buf *b = &packet.kexrecv; long long pos = 0; crypto_uint8 ch; crypto_uint32 len; if (!packet_getall(b, SSH_MSG_KEXINIT)) return 0; /* parse packet */ pos = packetparser_uint8(b->buf, b->len, pos, &ch); /* SSH_MSG_KEXINIT */ if (ch != SSH_MSG_KEXINIT) bug_proto(); pos = packetparser_skip(b->buf, b->len, pos, 16); /* cookie */ pos = packetparser_uint32(b->buf, b->len, pos, &len); /* kex algorithms */ pos = packetparser_skip(b->buf, b->len, pos, len); log_i2("kex algorithms: ", (char *)b->buf + pos - len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* server host key algorithms */ pos = packetparser_skip(b->buf, b->len, pos, len); log_i2("server host key algorithms: ", (char *)b->buf + pos - len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* encryption algorithms client to server */ pos = packetparser_skip(b->buf, b->len, pos, len); log_i2("encryption algorithms client to server: ", (char *)b->buf + pos - len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* encryption algorithms server to client */ pos = packetparser_skip(b->buf, b->len, pos, len); log_i2("encryption algorithms server to client: ", (char *)b->buf + pos - len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* mac algorithms client to server */ pos = packetparser_skip(b->buf, b->len, pos, len); log_i2("mac algorithms client to server: ", (char *)b->buf + pos - len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* mac algorithms server to client */ pos = packetparser_skip(b->buf, b->len, pos, len); log_i2("mac algorithms server to client: ", (char *)b->buf + pos - len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* compress algorithms client to server */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* compress algorithms server to client */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* languages client to server */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* languages server to client */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_uint8(b->buf, b->len, pos, &ch); /* kex first packet follows */ pos = packetparser_uint32(b->buf, b->len, pos, &len); /* reserved */ return 1; } static unsigned char bspace[1024]; static struct buf b; int main(int argc, char **argv) { pid_t pid; int tochild[2] = { -1, -1 }; int fromchild[2] = { -1, -1 }; if (argc < 2) _exit(111); if (!argv[0]) _exit(111); if (!argv[1]) _exit(111); ++argv; buf_init(&b, bspace, sizeof bspace); if (pipe(tochild) == -1) _exit(111); if (pipe(fromchild) == -1) _exit(111); pid = fork(); if (pid == -1) _exit(111); if (pid == 0) { close(tochild[1]); close(fromchild[0]); if (dup2(tochild[0], 0) == -1) _exit(111); if (dup2(fromchild[1], 1) == -1) _exit(111); execvp(*argv, argv); _exit(111); } close(tochild[0]); close(fromchild[1]); close(0); if (dup2(fromchild[0], 0) == -1) _exit(111); close(1); if (dup2(tochild[1], 1) == -1) _exit(111); signal(SIGPIPE, SIG_IGN); global_init(); log_init(0, "_tinysshd-test-kex1", 0, 0); if (!packet_hello_receive()) die_fatal("unable to receive hello-string", 0, 0); if (!packet_hello_send()) die_fatal("unable to send hello-string", 0, 0); if (!_packet_kex_receive()) die_fatal("unable to receive kex-message", 0, 0); if (!_packet_disconnect(&b)) die_fatal("unable to send disconnect-message", 0, 0); _exit(111); } tinyssh-20180201/_tinyssh/_tinysshd-unauthenticated.c000066400000000000000000000050031322704306500226450ustar00rootroot00000000000000/* 20141210 Jan Mojzis Public domain. */ #include #include #include #include "log.h" #include "packet.h" #include "ssh.h" #include "bug.h" #include "packetparser.h" #include "global.h" static void cleanup(void) { global_purge(); } static void die_fatal(const char *trouble, const char *d, const char *fn) { cleanup(); if (d) { if (fn) log_f5(trouble, " ", d, "/", fn); else log_f3(trouble, " ", d); } else { log_f1(trouble); } _exit(111); } static int _packet_debug(struct buf *b) { buf_purge(b); buf_putnum8(b, SSH_MSG_DEBUG); /* SSH_MSG_DEBUG */ buf_putnum8(b, 1); /* always_display */ buf_putstring(b, "test message"); /* message in ISO-10646 UTF-8 encoding [RFC3629] */ buf_putstring(b, ""); /* language tag [RFC3066] */ packet_put(b); return packet_sendall(); } static unsigned char bspace[1024]; static struct buf b; int main(int argc, char **argv) { pid_t pid; int tochild[2] = { -1, -1 }; int fromchild[2] = { -1, -1 }; long long i; if (argc < 2) _exit(111); if (!argv[0]) _exit(111); if (!argv[1]) _exit(111); ++argv; buf_init(&b, bspace, sizeof bspace); if (pipe(tochild) == -1) _exit(111); if (pipe(fromchild) == -1) _exit(111); pid = fork(); if (pid == -1) _exit(111); if (pid == 0) { close(tochild[1]); close(fromchild[0]); close(2); if (dup2(tochild[0], 0) == -1) _exit(111); if (dup2(fromchild[1], 1) == -1) _exit(111); execvp(*argv, argv); _exit(111); } close(tochild[0]); close(fromchild[1]); close(0); if (dup2(fromchild[0], 0) == -1) _exit(111); close(1); if (dup2(tochild[1], 1) == -1) _exit(111); signal(SIGPIPE, SIG_IGN); global_init(); log_init(1, "_tinysshd-unauthenticated", 0, 0); if (!packet_hello_receive()) die_fatal("unable to receive hello-string", 0, 0); if (!packet_hello_send()) die_fatal("unable to send hello-string", 0, 0); for (i = 1; i < 100 * PACKET_UNAUTHENTICATED_MESSAGES; ++i) { if (!_packet_debug(&b)) { if (i < PACKET_UNAUTHENTICATED_MESSAGES) die_fatal("unable to send debug message - parent died too early", 0, 0); _exit(0); /* limitation works */ } if (i > PACKET_UNAUTHENTICATED_MESSAGES) usleep(1000); /* XXX */ } die_fatal("limitation is not working !!!!!!!!!!", 0, 0); _exit(111); } tinyssh-20180201/conf-bin000066400000000000000000000000121322704306500150630ustar00rootroot00000000000000/usr/sbin tinyssh-20180201/conf-cc000066400000000000000000000002051322704306500147040ustar00rootroot00000000000000cc -O3 -fomit-frame-pointer -funroll-loops gcc -O3 -fomit-frame-pointer -funroll-loops clang -O3 -fomit-frame-pointer -funroll-loops tinyssh-20180201/conf-cflags000066400000000000000000000004431322704306500155620ustar00rootroot00000000000000-pedantic -Wall -Wno-long-long -Wno-overlength-strings -Wno-unused-function -Wshadow -Wdeclaration-after-statement -Wwrite-strings -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wunused-value -Wunused-parameter -Wundef -fstack-protector-strong -fwrapv -fno-strict-overflow tinyssh-20180201/conf-libs000066400000000000000000000000261322704306500152510ustar00rootroot00000000000000-lutil -lsocket -lnsl tinyssh-20180201/conf-man000066400000000000000000000000171322704306500150730ustar00rootroot00000000000000/usr/share/man tinyssh-20180201/crypto-tests/000077500000000000000000000000001322704306500161345ustar00rootroot00000000000000tinyssh-20180201/crypto-tests/crypto_auth_hmacsha256test.c000066400000000000000000000051141322704306500234630ustar00rootroot00000000000000/* 20141017 Jan Mojzis Public domain. */ #include "misc.h" #include "crypto_auth_hmacsha256.h" static unsigned char k[32] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20 }; static unsigned char c[50] = { 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd }; static unsigned char ao[32] = { 0x37, 0x2e, 0xfc, 0xf9, 0xb4, 0x0b, 0x35, 0xc2, 0x11, 0x5b, 0x13, 0x46, 0x90, 0x3d, 0x2e, 0xf4, 0x2f, 0xce, 0xd4, 0x6f, 0x08, 0x46, 0xe7, 0x25, 0x7b, 0xb1, 0x56, 0xd3, 0xd7, 0xb3, 0x0d, 0x3f }; static void test_rfc(void) { unsigned char a[32]; long long i; crypto_auth_hmacsha256(a, c, sizeof c, k); for (i = 0; i < 32; ++i) if (a[i] != ao[i]) fail("crypto_auth_hmacsha256() failure"); if (crypto_auth_hmacsha256_verify(ao, c, sizeof c, k) != 0) fail("crypto_auth_hmacsha256_verify() failure"); } #define SPACESIZE 5232 static unsigned char space[SPACESIZE + 16]; static unsigned char key[crypto_auth_hmacsha256_KEYBYTES + 16]; static unsigned char buf[crypto_auth_hmacsha256_BYTES + 16]; static unsigned char test_pseudorandom_checksum[32] = { 0xc7, 0xe5, 0x4a, 0xa2, 0x7e, 0x24, 0xe7, 0xbc, 0x32, 0x70, 0xc8, 0x40, 0x31, 0xf2, 0xce, 0x61, 0xc2, 0xcd, 0x0d, 0x89, 0xf4, 0x80, 0x47, 0x60, 0xac, 0xb9, 0x2d, 0x70, 0x53, 0x73, 0x25, 0x72 }; static void test_pseudorandom(void) { long long i, j; checksum_zero(); i = 0; for (j = 0; j < SPACESIZE; j += 1 + j / 16) { pseudorandombytes(space + i, j); pseudorandombytes(key + i, crypto_auth_hmacsha256_KEYBYTES); crypto_auth_hmacsha256(buf + i, space + i, j, key + i); checksum(buf + i, crypto_auth_hmacsha256_BYTES); if (crypto_auth_hmacsha256_verify(buf + i, space + i, j, key + i) != 0) { fail_printdata("m", space + i, j); fail_printdata("key", key + i, crypto_auth_hmacsha256_KEYBYTES); fail_printdata("a", buf + i, crypto_auth_hmacsha256_BYTES); fail("crypto_auth_hmacsha256_verify() failure"); } ++i; i %= 16; } fail_whenbadchecksum(test_pseudorandom_checksum); } int main(void) { test_rfc(); test_pseudorandom(); _exit(0); } tinyssh-20180201/crypto-tests/crypto_core_aes256encrypttest.c000066400000000000000000000074011322704306500242240ustar00rootroot00000000000000/* 20140709 Jan Mojzis Public domain. */ #include "misc.h" #include "crypto_core_aes256encrypt.h" static unsigned char key[crypto_core_aes256encrypt_KEYBYTES + 16]; static unsigned char out[crypto_core_aes256encrypt_OUTPUTBYTES + 16]; static unsigned char in[crypto_core_aes256encrypt_INPUTBYTES + 16]; static unsigned char o[32] = { 0x18, 0xbb, 0x31, 0xfc, 0xdd, 0xe0, 0x1c, 0x12, 0x48, 0xd7, 0x9c, 0x51, 0xc8, 0x2e, 0x48, 0x60, 0x92, 0x46, 0x6e, 0x6a, 0xb4, 0xf3, 0x71, 0x24, 0x49, 0xe4, 0xcf, 0x79, 0xc6, 0x14, 0x1f, 0x27 }; static void test_alignment(void) { long long i; for (i = 0; i < 16; ++i) { crypto_core_aes256encrypt(out + i, in + i, key + i, 0); } } static void test_rand(void) { long long i; for (i = 0; i < 256; ++i) { pseudorandombytes(key, sizeof key); pseudorandombytes(in, sizeof in); crypto_core_aes256encrypt(out, in, key, 0); checksum(out, crypto_core_aes256encrypt_OUTPUTBYTES); } fail_whenbadchecksum(o); } /* NIST testvectors from Special Publication 800-38A */ static struct vector { const unsigned char key[crypto_core_aes256encrypt_KEYBYTES]; const unsigned char in[crypto_core_aes256encrypt_INPUTBYTES]; const unsigned char out[crypto_core_aes256encrypt_OUTPUTBYTES]; } vectors[] = { { { 0x60, 0x3d, 0xeb, 0x10, 0x15, 0xca, 0x71, 0xbe, 0x2b, 0x73, 0xae, 0xf0, 0x85, 0x7d, 0x77, 0x81, 0x1f, 0x35, 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7, 0x2d, 0x98, 0x10, 0xa3, 0x09, 0x14, 0xdf, 0xf4 }, { 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff }, { 0x0b, 0xdf, 0x7d, 0xf1, 0x59, 0x17, 0x16, 0x33, 0x5e, 0x9a, 0x8b, 0x15, 0xc8, 0x60, 0xc5, 0x02 } }, { { 0x60, 0x3d, 0xeb, 0x10, 0x15, 0xca, 0x71, 0xbe, 0x2b, 0x73, 0xae, 0xf0, 0x85, 0x7d, 0x77, 0x81, 0x1f, 0x35, 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7, 0x2d, 0x98, 0x10, 0xa3, 0x09, 0x14, 0xdf, 0xf4 }, { 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xff, 0x00 }, { 0x5a, 0x6e, 0x69, 0x9d, 0x53, 0x61, 0x19, 0x06, 0x54, 0x33, 0x86, 0x3c, 0x8f, 0x65, 0x7b, 0x94 } }, { { 0x60, 0x3d, 0xeb, 0x10, 0x15, 0xca, 0x71, 0xbe, 0x2b, 0x73, 0xae, 0xf0, 0x85, 0x7d, 0x77, 0x81, 0x1f, 0x35, 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7, 0x2d, 0x98, 0x10, 0xa3, 0x09, 0x14, 0xdf, 0xf4 }, { 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xff, 0x01 }, { 0x1b, 0xc1, 0x2c, 0x9c, 0x01, 0x61, 0x0d, 0x5d, 0x0d, 0x8b, 0xd6, 0xa3, 0x37, 0x8e, 0xca, 0x62 } }, { { 0x60, 0x3d, 0xeb, 0x10, 0x15, 0xca, 0x71, 0xbe, 0x2b, 0x73, 0xae, 0xf0, 0x85, 0x7d, 0x77, 0x81, 0x1f, 0x35, 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7, 0x2d, 0x98, 0x10, 0xa3, 0x09, 0x14, 0xdf, 0xf4 }, { 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xff, 0x02 }, { 0x29, 0x56, 0xe1, 0xc8, 0x69, 0x35, 0x36, 0xb1, 0xbe, 0xe9, 0x9c, 0x73, 0xa3, 0x15, 0x76, 0xb6 } }, }; static void test_vector(void) { long long i, j; unsigned char out[crypto_core_aes256encrypt_OUTPUTBYTES]; for (i = 0; i < 4; ++i) { crypto_core_aes256encrypt(out, vectors[i].in, vectors[i].key, 0); for (j = 0; j < crypto_core_aes256encrypt_OUTPUTBYTES; ++j) if (out[j] != vectors[i].out[j]) fail("crypto_core_aes256encrypt() failure"); } } int main(void) { test_vector(); test_alignment(); test_rand(); _exit(0); } tinyssh-20180201/crypto-tests/crypto_hash_sha256test.c000066400000000000000000000016401322704306500226140ustar00rootroot00000000000000/* 20141018 Jan Mojzis Public domain. */ #include "misc.h" #include "crypto_hash_sha256.h" #define SPACESIZE 5232 static unsigned char space[SPACESIZE + 16]; static unsigned char buf[crypto_hash_sha256_BYTES + 16]; static unsigned char test_pseudorandom_checksum[32] = { 0xbd, 0x62, 0xb1, 0x24, 0x12, 0xce, 0xc2, 0xd6, 0xc9, 0x81, 0x29, 0x7f, 0x83, 0x8a, 0xe5, 0x19, 0xfd, 0xd7, 0x26, 0x4f, 0x13, 0x7e, 0xd5, 0x18, 0x40, 0x53, 0x76, 0x16, 0xe4, 0x22, 0x48, 0x50 }; static void test_pseudorandom(void) { long long i, j; checksum_zero(); i = 0; for (j = 0; j < SPACESIZE; j += 1 + j / 16) { pseudorandombytes(space + i, j); crypto_hash_sha256(buf + i, space + i, j); checksum(buf + i, crypto_hash_sha256_BYTES); ++i; i %= 16; } fail_whenbadchecksum(test_pseudorandom_checksum); } int main(void) { test_pseudorandom(); _exit(0); } tinyssh-20180201/crypto-tests/crypto_hash_sha512test.c000066400000000000000000000016401322704306500226070ustar00rootroot00000000000000/* 20141018 Jan Mojzis Public domain. */ #include "misc.h" #include "crypto_hash_sha512.h" #define SPACESIZE 5232 static unsigned char space[SPACESIZE + 16]; static unsigned char buf[crypto_hash_sha512_BYTES + 16]; static unsigned char test_pseudorandom_checksum[32] = { 0xa1, 0x57, 0x2f, 0x67, 0x19, 0xa6, 0x88, 0x2f, 0x54, 0xa5, 0xa4, 0x7d, 0xe2, 0xd3, 0xa3, 0xfd, 0xd1, 0x1a, 0x73, 0x58, 0x84, 0xc7, 0xb9, 0xfd, 0x7f, 0xa2, 0x33, 0xbf, 0x86, 0xf7, 0x15, 0xee }; static void test_pseudorandom(void) { long long i, j; checksum_zero(); i = 0; for (j = 0; j < SPACESIZE; j += 1 + j / 16) { pseudorandombytes(space + i, j); crypto_hash_sha512(buf + i, space + i, j); checksum(buf + i, crypto_hash_sha512_BYTES); ++i; i %= 16; } fail_whenbadchecksum(test_pseudorandom_checksum); } int main(void) { test_pseudorandom(); _exit(0); } tinyssh-20180201/crypto-tests/crypto_onetimeauth_poly1305test.c000066400000000000000000000027271322704306500245060ustar00rootroot00000000000000/* 20141017 Jan Mojzis Public domain. */ #include "misc.h" #include "crypto_onetimeauth_poly1305.h" #define SPACESIZE 5232 static unsigned char space[SPACESIZE + 16]; static unsigned char key[crypto_onetimeauth_poly1305_KEYBYTES + 16]; static unsigned char buf[crypto_onetimeauth_poly1305_BYTES + 16]; static unsigned char test_pseudorandom_checksum[32] = { 0xaf, 0xe7, 0xbb, 0x79, 0x2a, 0xe5, 0x81, 0xee, 0xbc, 0x1f, 0x5b, 0x79, 0x96, 0xb7, 0x27, 0x1a, 0xc2, 0x74, 0x65, 0x0e, 0x1d, 0xb5, 0xb7, 0x06, 0x10, 0x42, 0x6a, 0x50, 0x57, 0x8b, 0xf1, 0xb0 }; static void test_pseudorandom(void) { long long i, j; checksum_zero(); i = 0; for (j = 0; j < SPACESIZE; j += 1 + j / 16) { pseudorandombytes(space + i, j); pseudorandombytes(key + i, crypto_onetimeauth_poly1305_KEYBYTES); crypto_onetimeauth_poly1305(buf + i, space + i, j, key + i); checksum(buf + i, crypto_onetimeauth_poly1305_BYTES); if (crypto_onetimeauth_poly1305_verify(buf + i, space + i, j, key + i) != 0) { fail_printdata("m", space + i, j); fail_printdata("key", key + i, crypto_onetimeauth_poly1305_KEYBYTES); fail_printdata("a", buf + i, crypto_onetimeauth_poly1305_BYTES); fail("crypto_onetimeauth_poly1305_verify() failure"); } ++i; i %= 16; } fail_whenbadchecksum(test_pseudorandom_checksum); } int main(void) { test_pseudorandom(); _exit(0); } tinyssh-20180201/crypto-tests/crypto_scalarmult_curve25519test.c000066400000000000000000000077331322704306500245730ustar00rootroot00000000000000/* 20141017 Jan Mojzis Public domain. */ #include "misc.h" #include "crypto_scalarmult_curve25519.h" #define BYTES crypto_scalarmult_curve25519_BYTES #define SCALARBYTES crypto_scalarmult_curve25519_SCALARBYTES static unsigned char pk[BYTES]; static unsigned char sk1[SCALARBYTES + 16]; static unsigned char pk1[BYTES + 16]; static unsigned char k1[BYTES + 16]; static unsigned char sk2[SCALARBYTES + 16]; static unsigned char pk2[BYTES + 16]; static unsigned char k2[BYTES + 16]; static unsigned char S[BYTES] = { 9 }; static unsigned char R[BYTES] = { 0xf9, 0xc3, 0xda, 0xc2, 0x10, 0x4c, 0x80, 0xb2, 0x52, 0xd0, 0xae, 0xec, 0x37, 0x7a, 0xfd, 0x5d, 0x1e, 0xf2, 0xc8, 0xc3, 0x48, 0xc2, 0x9e, 0x12, 0xdd, 0xb2, 0xd0, 0xc8, 0xb1, 0x98, 0xff, 0x7f }; static unsigned char d[SCALARBYTES] = { 0x56, 0x2c, 0x1e, 0xb5, 0xfd, 0xb2, 0x81, 0x29, 0xbd, 0x37, 0x49, 0x58, 0x35, 0xd4, 0xb1, 0x30, 0x7d, 0xdb, 0x57, 0x38, 0x80, 0x12, 0x17, 0x42, 0xf7, 0x13, 0xf1, 0x05, 0x67, 0x69, 0xd5, 0xbf }; static void test_vector(void) { long long j; unsigned char r[BYTES]; if (crypto_scalarmult_curve25519(r, d, S) != 0) fail("crypto_scalarmult_curve25519() failure"); for (j = 0; j < BYTES; ++j) if (r[j] != R[j]) fail("crypto_scalarmult_curve25519() failure"); } static unsigned char skdata[1080][32] = { #include "precomp.data" }; static unsigned char pkdata[1080][32] = { #include "precomp_curve25519.data" }; static void test_base(void) { long long i, j; checksum_zero(); for (i = 0; i < 1080; ++i) { if (crypto_scalarmult_curve25519_base(pk, skdata[i]) != 0) { fail_printdata("sk", skdata[i], SCALARBYTES); fail("crypto_scalarmult_curve25519_base() failure, please report it !!!!!!!!!"); } for (j = 0; j < BYTES; ++j) if (pk[j] != pkdata[i][j]) { fail_printdata("pk_computed", pk, BYTES); fail_printdata("pk_expected", pkdata[i], BYTES); fail_printdata("sk", skdata[i], SCALARBYTES); fail("crypto_scalarmult_curve25519() failure, please report it !!!!!!!!!"); } } } static const unsigned char basepoint[BYTES] = { 9 }; static unsigned char test_scalarmult_checksum[32] = { 0xca, 0xf4, 0xa3, 0xbe, 0x00, 0x9c, 0x6f, 0x01, 0xb8, 0x4e, 0xf8, 0x0d, 0x0a, 0x17, 0x16, 0x42, 0xfe, 0x01, 0x59, 0x40, 0x74, 0xd4, 0xa6, 0x48, 0x07, 0x94, 0x95, 0x94, 0xab, 0xa4, 0x5e, 0x6d }; static void test_scalarmult(void) { long long i, j; unsigned char outpk[BYTES]; for (i = 0; i < BYTES; ++i) pk[i] = basepoint[i]; checksum_zero(); for (i = 0; i < 1080; ++i) { pk[31] |= 128; if (crypto_scalarmult_curve25519(outpk, skdata[i], pk) != 0) { fail_printdata("pk", pk, BYTES); fail_printdata("sk", skdata[i], SCALARBYTES); fail("crypto_scalarmult_curve25519() failure, please report it !!!!!!!!!"); } checksum(outpk, BYTES); for (j = 0; j < BYTES; ++j) pk[j] = outpk[j]; } fail_whenbadchecksum(test_scalarmult_checksum); } static void test_random(void) { long long i, j; for (i = 0; i < 16; ++i) { unsaferandombytes(sk1 + i, SCALARBYTES); unsaferandombytes(sk2 + i, SCALARBYTES); if (crypto_scalarmult_curve25519_base(pk1 + i, sk1 + i) != 0) goto fail; pk1[31 + i] |= 128; if (crypto_scalarmult_curve25519_base(pk2 + i, sk2 + i) != 0) goto fail; pk2[31 + i] |= 128; if (crypto_scalarmult_curve25519(k1 + i, sk1 + i, pk2 + i) != 0) goto fail; if (crypto_scalarmult_curve25519(k2 + i, sk2 + i, pk1 + i) != 0) goto fail; for (j = 0; j < BYTES; ++j) if (k1[j + i] != k2[j + i]) goto fail; } return; fail: fail_printdata("sk1", sk1 + i, SCALARBYTES); fail_printdata("sk2", sk2 + i, SCALARBYTES); fail("crypto_scalarmult_curve25519() failure, please report it !!!!!!!!!"); } int main(void) { test_vector(); test_base(); test_scalarmult(); test_random(); _exit(0); } tinyssh-20180201/crypto-tests/crypto_scalarmult_nistp256test.c000066400000000000000000000130051322704306500244200ustar00rootroot00000000000000/* 20141017 Jan Mojzis Public domain. */ #include "misc.h" #include "crypto_scalarmult_nistp256.h" #define BYTES crypto_scalarmult_nistp256_BYTES #define SCALARBYTES crypto_scalarmult_nistp256_SCALARBYTES static unsigned char pk[BYTES]; static unsigned char sk1[SCALARBYTES + 16]; static unsigned char pk1[BYTES + 16]; static unsigned char k1[BYTES + 16]; static unsigned char sk2[SCALARBYTES + 16]; static unsigned char pk2[BYTES + 16]; static unsigned char k2[BYTES + 16]; static unsigned char S[BYTES] = { 0xde, 0x24, 0x44, 0xbe, 0xbc, 0x8d, 0x36, 0xe6, 0x82, 0xed, 0xd2, 0x7e, 0x0f, 0x27, 0x15, 0x08, 0x61, 0x75, 0x19, 0xb3, 0x22, 0x1a, 0x8f, 0xa0, 0xb7, 0x7c, 0xab, 0x39, 0x89, 0xda, 0x97, 0xc9, 0xc0, 0x93, 0xae, 0x7f, 0xf3, 0x6e, 0x53, 0x80, 0xfc, 0x01, 0xa5, 0xaa, 0xd1, 0xe6, 0x66, 0x59, 0x70, 0x2d, 0xe8, 0x0f, 0x53, 0xce, 0xc5, 0x76, 0xb6, 0x35, 0x0b, 0x24, 0x30, 0x42, 0xa2, 0x56 }; static unsigned char R[BYTES] = { 0x51, 0xd0, 0x8d, 0x5f, 0x2d, 0x42, 0x78, 0x88, 0x29, 0x46, 0xd8, 0x8d, 0x83, 0xc9, 0x7d, 0x11, 0xe6, 0x2b, 0xec, 0xc3, 0xcf, 0xc1, 0x8b, 0xed, 0xac, 0xc8, 0x9b, 0xa3, 0x4e, 0xec, 0xa0, 0x3f, 0x75, 0xee, 0x68, 0xeb, 0x8b, 0xf6, 0x26, 0xaa, 0x5b, 0x67, 0x3a, 0xb5, 0x1f, 0x6e, 0x74, 0x4e, 0x06, 0xf8, 0xfc, 0xf8, 0xa6, 0xc0, 0xcf, 0x30, 0x35, 0xbe, 0xca, 0x95, 0x6a, 0x7b, 0x41, 0xd5 }; static unsigned char d[SCALARBYTES] = { 0xc5, 0x1e, 0x47, 0x53, 0xaf, 0xde, 0xc1, 0xe6, 0xb6, 0xc6, 0xa5, 0xb9, 0x92, 0xf4, 0x3f, 0x8d, 0xd0, 0xc7, 0xa8, 0x93, 0x30, 0x72, 0x70, 0x8b, 0x65, 0x22, 0x46, 0x8b, 0x2f, 0xfb, 0x06, 0xfd }; static void test_vector(void) { long long j; unsigned char r[BYTES]; if (crypto_scalarmult_nistp256(r, d, S) != 0) fail("crypto_scalarmult_nistp256() failure"); for (j = 0; j < BYTES; ++j) if (r[j] != R[j]) fail("crypto_scalarmult_nistp256() failure"); } static int iszero(const unsigned char *x) { unsigned char d = 0; long long i; for (i = 0; i < SCALARBYTES; ++i) d |= x[i]; return (256 - (unsigned int)d) >> 8; } static unsigned char skdata[1080][32] = { #include "precomp.data" }; static unsigned char pkdata[1080][64] = { #include "precomp_nistp256.data" }; static void test_base(void) { long long i, j; checksum_zero(); for (i = 0; i < 1080; ++i) { if (iszero(skdata[i])) { if (crypto_scalarmult_nistp256_base(pk, skdata[i]) == 0) { fail("crypto_scalarmult_nistp256_base() accepts n = 0"); } continue; } if (crypto_scalarmult_nistp256_base(pk, skdata[i]) != 0) { fail_printdata("sk", skdata[i], SCALARBYTES); fail("crypto_scalarmult_nistp256_base() failure, please report it !!!!!!!!!"); } for (j = 0; j < BYTES; ++j) if (pk[j] != pkdata[i][j]) { fail_printdata("pk_computed", pk, BYTES); fail_printdata("pk_expected", pkdata[i], BYTES); fail_printdata("sk", skdata[i], SCALARBYTES); fail("crypto_scalarmult_nistp256() failure, please report it !!!!!!!!!"); } } } static const unsigned char basepoint[BYTES] = { 0x6b, 0x17, 0xd1, 0xf2, 0xe1, 0x2c, 0x42, 0x47, 0xf8, 0xbc, 0xe6, 0xe5, 0x63, 0xa4, 0x40, 0xf2, 0x77, 0x03, 0x7d, 0x81, 0x2d, 0xeb, 0x33, 0xa0, 0xf4, 0xa1, 0x39, 0x45, 0xd8, 0x98, 0xc2, 0x96, 0x4f, 0xe3, 0x42, 0xe2, 0xfe, 0x1a, 0x7f, 0x9b, 0x8e, 0xe7, 0xeb, 0x4a, 0x7c, 0x0f, 0x9e, 0x16, 0x2b, 0xce, 0x33, 0x57, 0x6b, 0x31, 0x5e, 0xce, 0xcb, 0xb6, 0x40, 0x68, 0x37, 0xbf, 0x51, 0xf5 }; static unsigned char test_scalarmult_checksum[32] = { 0x79, 0x63, 0x0b, 0xe6, 0xf6, 0xcd, 0x4a, 0xb3, 0xab, 0xb7, 0x90, 0xf8, 0x86, 0x8a, 0x87, 0x06, 0x4e, 0xf6, 0xa0, 0xdd, 0xee, 0x2f, 0xb2, 0x10, 0x25, 0x10, 0xef, 0x8b, 0xbb, 0x71, 0xbd, 0x84 }; static void test_scalarmult(void) { long long i, j; unsigned char outpk[BYTES]; for (i = 0; i < BYTES; ++i) pk[i] = basepoint[i]; checksum_zero(); for (i = 0; i < 1080; ++i) { if (iszero(skdata[i])) { if (crypto_scalarmult_nistp256(outpk, skdata[i], pk) == 0) { fail("crypto_scalarmult_nistp256_base() accepts n = 0"); } continue; } if (crypto_scalarmult_nistp256(outpk, skdata[i], pk) != 0) { fail_printdata("pk", pk, BYTES); fail_printdata("sk", skdata[i], SCALARBYTES); fail("crypto_scalarmult_nistp256() failure, please report it !!!!!!!!!"); } checksum(outpk, BYTES); for (j = 0; j < BYTES; ++j) pk[j] = outpk[j]; } fail_whenbadchecksum(test_scalarmult_checksum); } static void test_random(void) { long long i, j; for (i = 0; i < 16; ++i) { unsaferandombytes(sk1 + i, SCALARBYTES); unsaferandombytes(sk2 + i, SCALARBYTES); if (crypto_scalarmult_nistp256_base(pk1 + i, sk1 + i) != 0) goto fail; if (crypto_scalarmult_nistp256_base(pk2 + i, sk2 + i) != 0) goto fail; if (crypto_scalarmult_nistp256(k1 + i, sk1 + i, pk2 + i) != 0) goto fail; if (crypto_scalarmult_nistp256(k2 + i, sk2 + i, pk1 + i) != 0) goto fail; for (j = 0; j < BYTES; ++j) if (k1[j + i] != k2[j + i]) goto fail; } return; fail: fail_printdata("sk1", sk1 + i, SCALARBYTES); fail_printdata("sk2", sk2 + i, SCALARBYTES); fail("crypto_scalarmult_curve25519() failure, please report it !!!!!!!!!"); } int main(void) { test_vector(); test_base(); test_scalarmult(); test_random(); _exit(0); } tinyssh-20180201/crypto-tests/crypto_sign_ed25519test.c000066400000000000000000000074541322704306500226300ustar00rootroot00000000000000/* 20141017 Jan Mojzis Public domain. */ #include #include "misc.h" #include "crypto_sign_ed25519.h" #define MLEN 5232 static unsigned char space[MLEN + 16]; static unsigned char m[MLEN + crypto_sign_ed25519_BYTES + 16]; static unsigned char sm[MLEN + crypto_sign_ed25519_BYTES + 16]; static unsigned char sk[crypto_sign_ed25519_SECRETKEYBYTES + 16]; static unsigned char pk[crypto_sign_ed25519_PUBLICKEYBYTES + 16]; static unsigned long long mlen; static unsigned long long smlen; static unsigned char test_precomp_checksumsha2[32] = { 0x63, 0xe6, 0x3c, 0xcf, 0x4a, 0x50, 0x12, 0xdc, 0xc5, 0xec, 0x43, 0x76, 0x52, 0x6c, 0xf1, 0x5c, 0x7b, 0x12, 0xb2, 0xa5, 0xee, 0x77, 0x71, 0x63, 0xd0, 0x3a, 0xf1, 0x84, 0xe0, 0xd2, 0x06, 0x13 }; static unsigned char test_precomp_checksumsha3[32] = { 0x18, 0x03, 0xc1, 0x7e, 0xf4, 0x2c, 0x56, 0xce, 0xc0, 0xc4, 0xb2, 0xc3, 0x29, 0xf7, 0xa8, 0x8c, 0x1e, 0xfe, 0xd2, 0x9c, 0xf3, 0xdb, 0xe5, 0x61, 0x2d, 0x22, 0xf9, 0x0c, 0xd9, 0x0f, 0xf2, 0x7f }; static unsigned char skdata[1080][32] = { #include "precomp.data" }; static unsigned char pkdata[1080][32] = { #include "precomp_ed25519.data" }; static void test_precomp(void) { long long i, j; pseudorandombytes(space, sizeof space); checksum_zero(); for (i = 0; i < 1080; ++i) { for (j = 31; j >= 0; --j) sk[j ] = skdata[i][j]; for (j = 31; j >= 0; --j) sk[j + 32] = pkdata[i][j]; for (j = 31; j >= 0; --j) pk[j ] = pkdata[i][j]; crypto_sign_ed25519(sm, &smlen, space, MLEN - i, sk); checksum(sm, crypto_sign_ed25519_BYTES); if (crypto_sign_ed25519_open(m, &mlen, sm, smlen, pk) != 0) { fail_printdata("sm", sm, smlen); fail_printdata("pk", pk, crypto_sign_ed25519_PUBLICKEYBYTES); fail_printdata("sk", sk, crypto_sign_ed25519_SECRETKEYBYTES); fail("crypto_sign_ed25519_open() failure, please report it !!!!!!!!!"); } } if (!checksum_check((test_precomp_checksumsha2)) && !checksum_check((test_precomp_checksumsha3))) { fail_whenbadchecksum(test_precomp_checksumsha3); } } static void test_random(void) { long long i, j; i = 0; for (j = 0; j < sizeof space; j += 1 + j / 16) { unsaferandombytes(space + i, j); if (crypto_sign_ed25519_keypair(pk + i, sk + i) != 0) fail("crypto_sign_ed25519_keypair() failure"); crypto_sign_ed25519(sm + i, &smlen, space + i, j, sk + i); if (crypto_sign_ed25519_open(m + i, &mlen, sm + i, smlen, pk + i) != 0) { fail_printdata("sm", sm + i, smlen); fail_printdata("pk", pk + i, crypto_sign_ed25519_PUBLICKEYBYTES); fail_printdata("sk", sk + i, crypto_sign_ed25519_SECRETKEYBYTES); fail("crypto_sign_ed25519_open() failure, please report it !!!!!!!!!"); } ++i; i %= 16; } } static void test_signopen(void) { unsigned char m[1024]; unsigned char sm[1024]; unsigned char om[1024]; unsigned long long smlen = 0; unsigned long long omlen; if (crypto_sign_ed25519_keypair(pk, sk) != 0) fail("crypto_sign_ed25519_keypair() failure"); pseudorandombytes(m, sizeof m); crypto_sign_ed25519(sm, &smlen, m + 64, sizeof m - 64, sk); if (crypto_sign_ed25519_open(om, &omlen, sm, sizeof sm, pk) != 0) { fail_printdata("sm", sm, smlen); fail_printdata("pk", pk, crypto_sign_ed25519_PUBLICKEYBYTES); fail_printdata("sk", sk, crypto_sign_ed25519_SECRETKEYBYTES); fail("crypto_sign_ed25519_open() failure, please report it !!!!!!!!!"); } if (memcmp(m + 64, om, sizeof m - 64)) { fail("crypto_sign_ed25519_open() failure, messages do not match"); } } int main(void) { test_precomp(); test_random(); test_signopen(); _exit(0); } tinyssh-20180201/crypto-tests/crypto_sign_nistp256ecdsatest.c000066400000000000000000000102271322704306500242140ustar00rootroot00000000000000/* 20141017 Jan Mojzis Public domain. */ #include #include "misc.h" #include "crypto_sign_nistp256ecdsa.h" #define MLEN 5232 static unsigned char space[MLEN + 16]; static unsigned char m[MLEN + crypto_sign_nistp256ecdsa_BYTES + 16]; static unsigned char sm[MLEN + crypto_sign_nistp256ecdsa_BYTES + 16]; static unsigned char sk[crypto_sign_nistp256ecdsa_SECRETKEYBYTES + 16]; static unsigned char pk[crypto_sign_nistp256ecdsa_PUBLICKEYBYTES + 16]; static unsigned long long mlen; static unsigned long long smlen; static unsigned char test_precomp_checksumsha3[32] = { 0x5b, 0x66, 0xc6, 0xbd, 0xfc, 0x96, 0xa9, 0x74, 0xbb, 0xf3, 0x7d, 0x31, 0xc5, 0xa2, 0xd2, 0x45, 0xa6, 0x2b, 0xbf, 0xc7, 0x28, 0x33, 0xd1, 0x76, 0xe4, 0xd3, 0x1e, 0x0b, 0x24, 0x26, 0x4b, 0x13 }; static unsigned char test_precomp_checksumsha2[32] = { 0x85, 0x7b, 0x0d, 0xd2, 0x82, 0xab, 0xaa, 0x86, 0x87, 0xfe, 0x2a, 0x83, 0x3b, 0x48, 0xb3, 0x84, 0xa2, 0x8f, 0x13, 0xf9, 0x72, 0xfb, 0x86, 0x1e, 0x4c, 0x57, 0x65, 0x4c, 0x83, 0xc3, 0x0d, 0x66 }; static unsigned char skdata[1080][32] = { #include "precomp.data" }; static unsigned char pkdata[1080][64] = { #include "precomp_nistp256.data" }; static int iszero(const unsigned char *x) { unsigned char d = 0; long long i; for (i = 0; i < 32; ++i) d |= x[i]; return (256 - (unsigned int)d) >> 8; } static void test_precomp(void) { long long i, j; pseudorandombytes(space, sizeof space); checksum_zero(); for (i = 0; i < 1080; ++i) { for (j = 31; j >= 0; --j) sk[j ] = skdata[i][j]; for (j = 31; j >= 0; --j) sk[j + 32] = skdata[i][j]; for (j = 63; j >= 0; --j) pk[j ] = pkdata[i][j]; if (iszero(sk)) continue; crypto_sign_nistp256ecdsa(sm, &smlen, space, MLEN - i, sk); checksum(sm, crypto_sign_nistp256ecdsa_BYTES); if (crypto_sign_nistp256ecdsa_open(m, &mlen, sm, smlen, pk) != 0) { fail_printdata("sm", sm, smlen); fail_printdata("pk", pk, crypto_sign_nistp256ecdsa_PUBLICKEYBYTES); fail_printdata("sk", sk, crypto_sign_nistp256ecdsa_SECRETKEYBYTES); fail("crypto_sign_nistp256ecdsa_open() failure, please report it !!!!!!!!!"); } } if (!checksum_check((test_precomp_checksumsha2)) && !checksum_check((test_precomp_checksumsha3))) { fail_whenbadchecksum(test_precomp_checksumsha3); } } static void test_random(void) { long long i, j; i = 0; for (j = 0; j < sizeof space; j += 1 + j / 16) { unsaferandombytes(space + i, j); if (crypto_sign_nistp256ecdsa_keypair(pk + i, sk + i) != 0) fail("crypto_sign_nistp256ecdsa_keypair() failure"); crypto_sign_nistp256ecdsa(sm + i, &smlen, space + i, j, sk + i); if (crypto_sign_nistp256ecdsa_open(m + i, &mlen, sm + i, smlen, pk + i) != 0) { fail_printdata("sm", sm + i, smlen); fail_printdata("pk", pk + i, crypto_sign_nistp256ecdsa_PUBLICKEYBYTES); fail_printdata("sk", sk + i, crypto_sign_nistp256ecdsa_SECRETKEYBYTES); fail("crypto_sign_nistp256ecdsa_open() failure, please report it !!!!!!!!!"); } ++i; i %= 16; } } static void test_signopen(void) { unsigned char m[1024]; unsigned char sm[1024]; unsigned char om[1024]; unsigned long long smlen = 0; unsigned long long omlen; if (crypto_sign_nistp256ecdsa_keypair(pk, sk) != 0) fail("crypto_sign_nistp256ecdsa_keypair() failure"); pseudorandombytes(m, sizeof m); crypto_sign_nistp256ecdsa(sm, &smlen, m + 64, sizeof m - 64, sk); if (crypto_sign_nistp256ecdsa_open(om, &omlen, sm, sizeof sm, pk) != 0) { fail_printdata("sm", sm, smlen); fail_printdata("pk", pk, crypto_sign_nistp256ecdsa_PUBLICKEYBYTES); fail_printdata("sk", sk, crypto_sign_nistp256ecdsa_SECRETKEYBYTES); fail("crypto_sign_nistp256ecdsa_open() failure, please report it !!!!!!!!!"); } if (memcmp(m + 64, om, sizeof m - 64)) { fail("crypto_sign_nistp256ecdsa_open() failure, messages do not match"); } } int main(void) { test_precomp(); test_random(); test_signopen(); _exit(0); } tinyssh-20180201/crypto-tests/crypto_stream_chacha20test.c000066400000000000000000000024171322704306500235300ustar00rootroot00000000000000/* 20140709 Jan Mojzis Public domain. */ #include #include "misc.h" #include "crypto_stream_chacha20.h" static unsigned char space[5232]; static unsigned char k[crypto_stream_chacha20_KEYBYTES + 16]; static unsigned char n[crypto_stream_chacha20_NONCEBYTES + 16]; static unsigned char o[32] = { 0x98, 0x43, 0x28, 0xe2, 0x76, 0xc2, 0xc3, 0xa1, 0xe8, 0xf3, 0x50, 0x98, 0x15, 0xc4, 0xea, 0xa6, 0x2c, 0x54, 0x87, 0x1b, 0x02, 0x4c, 0x61, 0xd1, 0x01, 0xd9, 0xf0, 0xb1, 0xd5, 0x21, 0xc4, 0x7a }; static void test_alignment(void) { long long i; for (i = 0; i < 16; ++i) { crypto_stream_chacha20_xor(space + i, space + i, sizeof space - i, n + i, k + i); } } static void test_rand(void) { long long i, j; unsigned int u; pseudorandombytes(space, sizeof space); pseudorandombytes(k, sizeof k); pseudorandombytes(n, sizeof n); for (i = 0; i < sizeof space; i += 1 + i / 16) { u = 1; for (j = 0; j < 8; ++j) { u += (unsigned int) n[j]; n[j] = u; u >>= 8; } crypto_stream_chacha20_xor(space, space, i, n, k); } checksum(space, sizeof space); fail_whenbadchecksum(o); } int main(void) { test_alignment(); test_rand(); _exit(0); } tinyssh-20180201/crypto-tests/crypto_verify_16test.c000066400000000000000000000017011322704306500224110ustar00rootroot00000000000000/* 20140167 Jan Mojzis Public domain. */ #include "misc.h" #include "crypto_verify_16.h" static unsigned char b1[crypto_verify_16_BYTES + 16]; static unsigned char b2[crypto_verify_16_BYTES + 16]; static void test_alignment(void) { long long i; for (i = 0; i < sizeof b1; ++i) b1[i] = 0xff; for (i = 0; i < sizeof b2; ++i) b2[i] = 0xff; for (i = 0; i < 16; ++i) { if (crypto_verify_16(b1 + i, b2 + i) != 0) fail("crypto_verify_16 failure"); } } static void test_verify(void) { long long i; for (i = 0; i < sizeof b1; ++i) b1[i] = 0xff; for (i = 0; i < sizeof b2; ++i) b2[i] = 0xff; if (crypto_verify_16(b1, b2) != 0) fail("crypto_verify_16 failure"); for (i = 0; i < crypto_verify_16_BYTES; ++i) { b1[i] = 0; if (crypto_verify_16(b1, b2) == 0) fail("crypto_verify_16 failure"); b1[i] = 0xff; } } int main(void) { test_alignment(); test_verify(); _exit(0); } tinyssh-20180201/crypto-tests/crypto_verify_32test.c000066400000000000000000000017011322704306500224070ustar00rootroot00000000000000/* 20140167 Jan Mojzis Public domain. */ #include "misc.h" #include "crypto_verify_32.h" static unsigned char b1[crypto_verify_32_BYTES + 16]; static unsigned char b2[crypto_verify_32_BYTES + 16]; static void test_alignment(void) { long long i; for (i = 0; i < sizeof b1; ++i) b1[i] = 0xff; for (i = 0; i < sizeof b2; ++i) b2[i] = 0xff; for (i = 0; i < 16; ++i) { if (crypto_verify_32(b1 + i, b2 + i) != 0) fail("crypto_verify_32 failure"); } } static void test_verify(void) { long long i; for (i = 0; i < sizeof b1; ++i) b1[i] = 0xff; for (i = 0; i < sizeof b2; ++i) b2[i] = 0xff; if (crypto_verify_32(b1, b2) != 0) fail("crypto_verify_32 failure"); for (i = 0; i < crypto_verify_32_BYTES; ++i) { b1[i] = 0; if (crypto_verify_32(b1, b2) == 0) fail("crypto_verify_32 failure"); b1[i] = 0xff; } } int main(void) { test_alignment(); test_verify(); _exit(0); } tinyssh-20180201/crypto-tests/misc.h000066400000000000000000000104121322704306500172360ustar00rootroot00000000000000#ifndef _MISC_H____ #define _MISC_H____ #include #include #include #include #include "crypto_uint8.h" #include "crypto_uint32.h" #include "crypto_uint64.h" typedef crypto_uint8 u8; typedef crypto_uint32 u32; typedef crypto_uint64 u64; #define FOR(i,n) for (i = 0;i < n;++i) static u32 L32(u32 x,int c) { return (x << c) | ((x&0xffffffff) >> (32 - c)); } static u32 ld32(const u8 *x) { u32 u = x[3]; u = (u<<8)|x[2]; u = (u<<8)|x[1]; return (u<<8)|x[0]; } static void st32(u8 *x,u32 u) { int i; FOR(i,4) { x[i] = u; u >>= 8; } } static const u8 sigma[17] = "expand 32-byte k"; static void core(u8 *out,const u8 *in,const u8 *k) { u32 w[16],x[16],y[16],t[4]; int i,j,m; FOR(i,4) { x[5*i] = ld32(sigma+4*i); x[1+i] = ld32(k+4*i); x[6+i] = ld32(in+4*i); x[11+i] = ld32(k+16+4*i); } FOR(i,16) y[i] = x[i]; FOR(i,20) { FOR(j,4) { FOR(m,4) t[m] = x[(5*j+4*m)%16]; t[1] ^= L32(t[0]+t[3], 7); t[2] ^= L32(t[1]+t[0], 9); t[3] ^= L32(t[2]+t[1],13); t[0] ^= L32(t[3]+t[2],18); FOR(m,4) w[4*j+(j+m)%4] = t[m]; } FOR(m,16) x[m] = w[m]; } FOR(i,16) st32(out + 4 * i,x[i] + y[i]); } static unsigned char checksum_state[64] = {0}; static void checksum(const unsigned char *x,unsigned long long xlen) { u8 block[16]; int i; while (xlen >= 16) { core(checksum_state,x,checksum_state); x += 16; xlen -= 16; } FOR(i,16) block[i] = 0; FOR(i,xlen) block[i] = x[i]; block[xlen] = 1; checksum_state[0] ^= 1; core(checksum_state,block,checksum_state); } static int checksum_check(unsigned char *o) { int j; for (j = 0; j < 32; ++j) if (checksum_state[j] != o[j]) return 0; return 1; } static void checksum_zero(void) { long long i; for (i = 0; i < 64; ++i) checksum_state[i] = 0; } static void s20(u8 *c,u64 b,const u8 *n,const u8 *k) { u8 z[16],x[64]; u32 u,i; if (!b) return; FOR(i,16) z[i] = 0; FOR(i,8) z[i] = n[i]; while (b >= 64) { core(x,z,k); FOR(i,64) c[i] = x[i]; u = 1; for (i = 8;i < 16;++i) { u += (u32) z[i]; z[i] = u; u >>= 8; } b -= 64; c += 64; } if (b) { core(x,z,k); FOR(i,b) c[i] = x[i]; } } static void increment(u8 *n) { if (!++n[0]) if (!++n[1]) if (!++n[2]) if (!++n[3]) if (!++n[4]) if (!++n[5]) if (!++n[6]) if (!++n[7]) ; } static void pseudorandombytes(unsigned char *x,unsigned long long xlen) { const static unsigned char randombytes_k[33] = "answer randombytes from crypto_*"; static unsigned char randombytes_n[8]; s20(x,xlen,randombytes_n,randombytes_k); increment(randombytes_n); } static void unsaferandombytes(unsigned char *x,unsigned long long xlen) { static unsigned char randombytes_k[32]; static unsigned char randombytes_n[8]; static int initialized = 0; struct timeval t; if (!initialized) { initialized = 1; gettimeofday(&t, (struct timezone *)0); st32(randombytes_k + 0, t.tv_usec); st32(randombytes_k + 4, t.tv_sec); st32(randombytes_k + 8, getpid()); st32(randombytes_k + 12, getppid()); s20(randombytes_k,32,randombytes_n,randombytes_k); } s20(x,xlen,randombytes_n,randombytes_k); increment(randombytes_n); } #define fail_(a, b, x) do { fprintf(stderr, "%s:%llu: %s\n", (a), (unsigned long long)(b), (x)); fflush(stderr); _exit(111); } while (0); #define fail(x) fail_(__FILE__, __LINE__, (x)) static void fail_printdata(const char *text, unsigned char *data, long long len) { long long i; fprintf(stderr, "%s = {\n ", text); for (i = 0; i < len; ++i) { if (i == len - 1) { fprintf(stderr, "0x%02x", data[i]); } else { fprintf(stderr, "0x%02x, ", data[i]); if (i % 8 == 7) fprintf(stderr, "\n "); } } fprintf(stderr, "\n};\n"); fflush(stderr); } #define fail_whenbadchecksum(x) \ if (!checksum_check((x))) { \ fail_printdata("checksum_expected", (x), 32); \ fail_printdata("checksum_computed", checksum_state, 32); \ fail("checksum failure"); \ } #endif tinyssh-20180201/crypto-tests/precomp.data000066400000000000000000005340301322704306500204410ustar00rootroot00000000000000{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8 }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe }, { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }, tinyssh-20180201/crypto-tests/precomp.data.py000066400000000000000000000007051322704306500210650ustar00rootroot00000000000000import binascii f = open("precomp.txt") def l(line): l = "" for i in range(32): if i == 31: l += "0x%s%s" % (line[2*i], line[2*i+1]) else: l += "0x%s%s," % (line[2*i], line[2*i+1]) return l while True: line=f.readline() if len(line) == 0: f.close() break print "{", l(line), "}," tinyssh-20180201/crypto-tests/precomp.txt000066400000000000000000002110701322704306500203430ustar00rootroot000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000001 0000000000000000000000000000000000000000000000000000000000000002 0000000000000000000000000000000000000000000000000000000000000003 0000000000000000000000000000000000000000000000000000000000000004 0000000000000000000000000000000000000000000000000000000000000007 0000000000000000000000000000000000000000000000000000000000000008 000000000000000000000000000000000000000000000000000000000000000f 0000000000000000000000000000000000000000000000000000000000000010 000000000000000000000000000000000000000000000000000000000000001f 0000000000000000000000000000000000000000000000000000000000000020 000000000000000000000000000000000000000000000000000000000000003f 0000000000000000000000000000000000000000000000000000000000000040 000000000000000000000000000000000000000000000000000000000000007f 0000000000000000000000000000000000000000000000000000000000000080 00000000000000000000000000000000000000000000000000000000000000ff 0000000000000000000000000000000000000000000000000000000000000100 00000000000000000000000000000000000000000000000000000000000001ff 0000000000000000000000000000000000000000000000000000000000000200 00000000000000000000000000000000000000000000000000000000000003ff 0000000000000000000000000000000000000000000000000000000000000400 00000000000000000000000000000000000000000000000000000000000007ff 0000000000000000000000000000000000000000000000000000000000000800 0000000000000000000000000000000000000000000000000000000000000fff 0000000000000000000000000000000000000000000000000000000000001000 0000000000000000000000000000000000000000000000000000000000001fff 0000000000000000000000000000000000000000000000000000000000002000 0000000000000000000000000000000000000000000000000000000000003fff 0000000000000000000000000000000000000000000000000000000000004000 0000000000000000000000000000000000000000000000000000000000007fff 0000000000000000000000000000000000000000000000000000000000008000 000000000000000000000000000000000000000000000000000000000000ff00 000000000000000000000000000000000000000000000000000000000000ffff 0000000000000000000000000000000000000000000000000000000000010000 000000000000000000000000000000000000000000000000000000000001ffff 0000000000000000000000000000000000000000000000000000000000020000 000000000000000000000000000000000000000000000000000000000003ffff 0000000000000000000000000000000000000000000000000000000000040000 000000000000000000000000000000000000000000000000000000000007ffff 0000000000000000000000000000000000000000000000000000000000080000 00000000000000000000000000000000000000000000000000000000000fffff 0000000000000000000000000000000000000000000000000000000000100000 00000000000000000000000000000000000000000000000000000000001fffff 0000000000000000000000000000000000000000000000000000000000200000 00000000000000000000000000000000000000000000000000000000003fffff 0000000000000000000000000000000000000000000000000000000000400000 00000000000000000000000000000000000000000000000000000000007fffff 0000000000000000000000000000000000000000000000000000000000800000 0000000000000000000000000000000000000000000000000000000000ff0000 0000000000000000000000000000000000000000000000000000000000ffffff 0000000000000000000000000000000000000000000000000000000001000000 0000000000000000000000000000000000000000000000000000000001ffffff 0000000000000000000000000000000000000000000000000000000002000000 0000000000000000000000000000000000000000000000000000000003ffffff 0000000000000000000000000000000000000000000000000000000004000000 0000000000000000000000000000000000000000000000000000000007ffffff 0000000000000000000000000000000000000000000000000000000008000000 000000000000000000000000000000000000000000000000000000000fffffff 0000000000000000000000000000000000000000000000000000000010000000 000000000000000000000000000000000000000000000000000000001fffffff 0000000000000000000000000000000000000000000000000000000020000000 000000000000000000000000000000000000000000000000000000003fffffff 0000000000000000000000000000000000000000000000000000000040000000 000000000000000000000000000000000000000000000000000000007fffffff 0000000000000000000000000000000000000000000000000000000080000000 00000000000000000000000000000000000000000000000000000000ff000000 00000000000000000000000000000000000000000000000000000000ffffffff 0000000000000000000000000000000000000000000000000000000100000000 00000000000000000000000000000000000000000000000000000001ffffffff 0000000000000000000000000000000000000000000000000000000200000000 00000000000000000000000000000000000000000000000000000003ffffffff 0000000000000000000000000000000000000000000000000000000400000000 00000000000000000000000000000000000000000000000000000007ffffffff 0000000000000000000000000000000000000000000000000000000800000000 0000000000000000000000000000000000000000000000000000000fffffffff 0000000000000000000000000000000000000000000000000000001000000000 0000000000000000000000000000000000000000000000000000001fffffffff 0000000000000000000000000000000000000000000000000000002000000000 0000000000000000000000000000000000000000000000000000003fffffffff 0000000000000000000000000000000000000000000000000000004000000000 0000000000000000000000000000000000000000000000000000007fffffffff 0000000000000000000000000000000000000000000000000000008000000000 000000000000000000000000000000000000000000000000000000ff00000000 000000000000000000000000000000000000000000000000000000ffffffffff 0000000000000000000000000000000000000000000000000000010000000000 000000000000000000000000000000000000000000000000000001ffffffffff 0000000000000000000000000000000000000000000000000000020000000000 000000000000000000000000000000000000000000000000000003ffffffffff 0000000000000000000000000000000000000000000000000000040000000000 000000000000000000000000000000000000000000000000000007ffffffffff 0000000000000000000000000000000000000000000000000000080000000000 00000000000000000000000000000000000000000000000000000fffffffffff 0000000000000000000000000000000000000000000000000000100000000000 00000000000000000000000000000000000000000000000000001fffffffffff 0000000000000000000000000000000000000000000000000000200000000000 00000000000000000000000000000000000000000000000000003fffffffffff 0000000000000000000000000000000000000000000000000000400000000000 00000000000000000000000000000000000000000000000000007fffffffffff 0000000000000000000000000000000000000000000000000000800000000000 0000000000000000000000000000000000000000000000000000ff0000000000 0000000000000000000000000000000000000000000000000000ffffffffffff 0000000000000000000000000000000000000000000000000001000000000000 0000000000000000000000000000000000000000000000000001ffffffffffff 0000000000000000000000000000000000000000000000000002000000000000 0000000000000000000000000000000000000000000000000003ffffffffffff 0000000000000000000000000000000000000000000000000004000000000000 0000000000000000000000000000000000000000000000000007ffffffffffff 0000000000000000000000000000000000000000000000000008000000000000 000000000000000000000000000000000000000000000000000fffffffffffff 0000000000000000000000000000000000000000000000000010000000000000 000000000000000000000000000000000000000000000000001fffffffffffff 0000000000000000000000000000000000000000000000000020000000000000 000000000000000000000000000000000000000000000000003fffffffffffff 0000000000000000000000000000000000000000000000000040000000000000 000000000000000000000000000000000000000000000000007fffffffffffff 0000000000000000000000000000000000000000000000000080000000000000 00000000000000000000000000000000000000000000000000ff000000000000 00000000000000000000000000000000000000000000000000ffffffffffffff 0000000000000000000000000000000000000000000000000100000000000000 00000000000000000000000000000000000000000000000001ffffffffffffff 0000000000000000000000000000000000000000000000000200000000000000 00000000000000000000000000000000000000000000000003ffffffffffffff 0000000000000000000000000000000000000000000000000400000000000000 00000000000000000000000000000000000000000000000007ffffffffffffff 0000000000000000000000000000000000000000000000000800000000000000 0000000000000000000000000000000000000000000000000fffffffffffffff 0000000000000000000000000000000000000000000000001000000000000000 0000000000000000000000000000000000000000000000001fffffffffffffff 0000000000000000000000000000000000000000000000002000000000000000 0000000000000000000000000000000000000000000000003fffffffffffffff 0000000000000000000000000000000000000000000000004000000000000000 0000000000000000000000000000000000000000000000007fffffffffffffff 0000000000000000000000000000000000000000000000008000000000000000 000000000000000000000000000000000000000000000000ff00000000000000 000000000000000000000000000000000000000000000000ffffffffffffffff 0000000000000000000000000000000000000000000000010000000000000000 000000000000000000000000000000000000000000000001ffffffffffffffff 0000000000000000000000000000000000000000000000020000000000000000 000000000000000000000000000000000000000000000003ffffffffffffffff 0000000000000000000000000000000000000000000000040000000000000000 000000000000000000000000000000000000000000000007ffffffffffffffff 0000000000000000000000000000000000000000000000080000000000000000 00000000000000000000000000000000000000000000000fffffffffffffffff 0000000000000000000000000000000000000000000000100000000000000000 00000000000000000000000000000000000000000000001fffffffffffffffff 0000000000000000000000000000000000000000000000200000000000000000 00000000000000000000000000000000000000000000003fffffffffffffffff 0000000000000000000000000000000000000000000000400000000000000000 00000000000000000000000000000000000000000000007fffffffffffffffff 0000000000000000000000000000000000000000000000800000000000000000 0000000000000000000000000000000000000000000000ff0000000000000000 0000000000000000000000000000000000000000000000ffffffffffffffffff 0000000000000000000000000000000000000000000001000000000000000000 0000000000000000000000000000000000000000000001ffffffffffffffffff 0000000000000000000000000000000000000000000002000000000000000000 0000000000000000000000000000000000000000000003ffffffffffffffffff 0000000000000000000000000000000000000000000004000000000000000000 0000000000000000000000000000000000000000000007ffffffffffffffffff 0000000000000000000000000000000000000000000008000000000000000000 000000000000000000000000000000000000000000000fffffffffffffffffff 0000000000000000000000000000000000000000000010000000000000000000 000000000000000000000000000000000000000000001fffffffffffffffffff 0000000000000000000000000000000000000000000020000000000000000000 000000000000000000000000000000000000000000003fffffffffffffffffff 0000000000000000000000000000000000000000000040000000000000000000 000000000000000000000000000000000000000000007fffffffffffffffffff 0000000000000000000000000000000000000000000080000000000000000000 00000000000000000000000000000000000000000000ff000000000000000000 00000000000000000000000000000000000000000000ffffffffffffffffffff 0000000000000000000000000000000000000000000100000000000000000000 00000000000000000000000000000000000000000001ffffffffffffffffffff 0000000000000000000000000000000000000000000200000000000000000000 00000000000000000000000000000000000000000003ffffffffffffffffffff 0000000000000000000000000000000000000000000400000000000000000000 00000000000000000000000000000000000000000007ffffffffffffffffffff 0000000000000000000000000000000000000000000800000000000000000000 0000000000000000000000000000000000000000000fffffffffffffffffffff 0000000000000000000000000000000000000000001000000000000000000000 0000000000000000000000000000000000000000001fffffffffffffffffffff 0000000000000000000000000000000000000000002000000000000000000000 0000000000000000000000000000000000000000003fffffffffffffffffffff 0000000000000000000000000000000000000000004000000000000000000000 0000000000000000000000000000000000000000007fffffffffffffffffffff 0000000000000000000000000000000000000000008000000000000000000000 000000000000000000000000000000000000000000ff00000000000000000000 000000000000000000000000000000000000000000ffffffffffffffffffffff 0000000000000000000000000000000000000000010000000000000000000000 000000000000000000000000000000000000000001ffffffffffffffffffffff 0000000000000000000000000000000000000000020000000000000000000000 000000000000000000000000000000000000000003ffffffffffffffffffffff 0000000000000000000000000000000000000000040000000000000000000000 000000000000000000000000000000000000000007ffffffffffffffffffffff 0000000000000000000000000000000000000000080000000000000000000000 00000000000000000000000000000000000000000fffffffffffffffffffffff 0000000000000000000000000000000000000000100000000000000000000000 00000000000000000000000000000000000000001fffffffffffffffffffffff 0000000000000000000000000000000000000000200000000000000000000000 00000000000000000000000000000000000000003fffffffffffffffffffffff 0000000000000000000000000000000000000000400000000000000000000000 00000000000000000000000000000000000000007fffffffffffffffffffffff 0000000000000000000000000000000000000000800000000000000000000000 0000000000000000000000000000000000000000ff0000000000000000000000 0000000000000000000000000000000000000000ffffffffffffffffffffffff 0000000000000000000000000000000000000001000000000000000000000000 0000000000000000000000000000000000000001ffffffffffffffffffffffff 0000000000000000000000000000000000000002000000000000000000000000 0000000000000000000000000000000000000003ffffffffffffffffffffffff 0000000000000000000000000000000000000004000000000000000000000000 0000000000000000000000000000000000000007ffffffffffffffffffffffff 0000000000000000000000000000000000000008000000000000000000000000 000000000000000000000000000000000000000fffffffffffffffffffffffff 0000000000000000000000000000000000000010000000000000000000000000 000000000000000000000000000000000000001fffffffffffffffffffffffff 0000000000000000000000000000000000000020000000000000000000000000 000000000000000000000000000000000000003fffffffffffffffffffffffff 0000000000000000000000000000000000000040000000000000000000000000 000000000000000000000000000000000000007fffffffffffffffffffffffff 0000000000000000000000000000000000000080000000000000000000000000 00000000000000000000000000000000000000ff000000000000000000000000 00000000000000000000000000000000000000ffffffffffffffffffffffffff 0000000000000000000000000000000000000100000000000000000000000000 00000000000000000000000000000000000001ffffffffffffffffffffffffff 0000000000000000000000000000000000000200000000000000000000000000 00000000000000000000000000000000000003ffffffffffffffffffffffffff 0000000000000000000000000000000000000400000000000000000000000000 00000000000000000000000000000000000007ffffffffffffffffffffffffff 0000000000000000000000000000000000000800000000000000000000000000 0000000000000000000000000000000000000fffffffffffffffffffffffffff 0000000000000000000000000000000000001000000000000000000000000000 0000000000000000000000000000000000001fffffffffffffffffffffffffff 0000000000000000000000000000000000002000000000000000000000000000 0000000000000000000000000000000000003fffffffffffffffffffffffffff 0000000000000000000000000000000000004000000000000000000000000000 0000000000000000000000000000000000007fffffffffffffffffffffffffff 0000000000000000000000000000000000008000000000000000000000000000 000000000000000000000000000000000000ff00000000000000000000000000 000000000000000000000000000000000000ffffffffffffffffffffffffffff 0000000000000000000000000000000000010000000000000000000000000000 000000000000000000000000000000000001ffffffffffffffffffffffffffff 0000000000000000000000000000000000020000000000000000000000000000 000000000000000000000000000000000003ffffffffffffffffffffffffffff 0000000000000000000000000000000000040000000000000000000000000000 000000000000000000000000000000000007ffffffffffffffffffffffffffff 0000000000000000000000000000000000080000000000000000000000000000 00000000000000000000000000000000000fffffffffffffffffffffffffffff 0000000000000000000000000000000000100000000000000000000000000000 00000000000000000000000000000000001fffffffffffffffffffffffffffff 0000000000000000000000000000000000200000000000000000000000000000 00000000000000000000000000000000003fffffffffffffffffffffffffffff 0000000000000000000000000000000000400000000000000000000000000000 00000000000000000000000000000000007fffffffffffffffffffffffffffff 0000000000000000000000000000000000800000000000000000000000000000 0000000000000000000000000000000000ff0000000000000000000000000000 0000000000000000000000000000000000ffffffffffffffffffffffffffffff 0000000000000000000000000000000001000000000000000000000000000000 0000000000000000000000000000000001ffffffffffffffffffffffffffffff 0000000000000000000000000000000002000000000000000000000000000000 0000000000000000000000000000000003ffffffffffffffffffffffffffffff 0000000000000000000000000000000004000000000000000000000000000000 0000000000000000000000000000000007ffffffffffffffffffffffffffffff 0000000000000000000000000000000008000000000000000000000000000000 000000000000000000000000000000000fffffffffffffffffffffffffffffff 0000000000000000000000000000000010000000000000000000000000000000 000000000000000000000000000000001fffffffffffffffffffffffffffffff 0000000000000000000000000000000020000000000000000000000000000000 000000000000000000000000000000003fffffffffffffffffffffffffffffff 0000000000000000000000000000000040000000000000000000000000000000 000000000000000000000000000000007fffffffffffffffffffffffffffffff 0000000000000000000000000000000080000000000000000000000000000000 00000000000000000000000000000000ff000000000000000000000000000000 00000000000000000000000000000000ffffffffffffffffffffffffffffffff 0000000000000000000000000000000100000000000000000000000000000000 00000000000000000000000000000001ffffffffffffffffffffffffffffffff 0000000000000000000000000000000200000000000000000000000000000000 00000000000000000000000000000003ffffffffffffffffffffffffffffffff 0000000000000000000000000000000400000000000000000000000000000000 00000000000000000000000000000007ffffffffffffffffffffffffffffffff 0000000000000000000000000000000800000000000000000000000000000000 0000000000000000000000000000000fffffffffffffffffffffffffffffffff 0000000000000000000000000000001000000000000000000000000000000000 0000000000000000000000000000001fffffffffffffffffffffffffffffffff 0000000000000000000000000000002000000000000000000000000000000000 0000000000000000000000000000003fffffffffffffffffffffffffffffffff 0000000000000000000000000000004000000000000000000000000000000000 0000000000000000000000000000007fffffffffffffffffffffffffffffffff 0000000000000000000000000000008000000000000000000000000000000000 000000000000000000000000000000ff00000000000000000000000000000000 000000000000000000000000000000ffffffffffffffffffffffffffffffffff 0000000000000000000000000000010000000000000000000000000000000000 000000000000000000000000000001ffffffffffffffffffffffffffffffffff 0000000000000000000000000000020000000000000000000000000000000000 000000000000000000000000000003ffffffffffffffffffffffffffffffffff 0000000000000000000000000000040000000000000000000000000000000000 000000000000000000000000000007ffffffffffffffffffffffffffffffffff 0000000000000000000000000000080000000000000000000000000000000000 00000000000000000000000000000fffffffffffffffffffffffffffffffffff 0000000000000000000000000000100000000000000000000000000000000000 00000000000000000000000000001fffffffffffffffffffffffffffffffffff 0000000000000000000000000000200000000000000000000000000000000000 00000000000000000000000000003fffffffffffffffffffffffffffffffffff 0000000000000000000000000000400000000000000000000000000000000000 00000000000000000000000000007fffffffffffffffffffffffffffffffffff 0000000000000000000000000000800000000000000000000000000000000000 0000000000000000000000000000ff0000000000000000000000000000000000 0000000000000000000000000000ffffffffffffffffffffffffffffffffffff 0000000000000000000000000001000000000000000000000000000000000000 0000000000000000000000000001ffffffffffffffffffffffffffffffffffff 0000000000000000000000000002000000000000000000000000000000000000 0000000000000000000000000003ffffffffffffffffffffffffffffffffffff 0000000000000000000000000004000000000000000000000000000000000000 0000000000000000000000000007ffffffffffffffffffffffffffffffffffff 0000000000000000000000000008000000000000000000000000000000000000 000000000000000000000000000fffffffffffffffffffffffffffffffffffff 0000000000000000000000000010000000000000000000000000000000000000 000000000000000000000000001fffffffffffffffffffffffffffffffffffff 0000000000000000000000000020000000000000000000000000000000000000 000000000000000000000000003fffffffffffffffffffffffffffffffffffff 0000000000000000000000000040000000000000000000000000000000000000 000000000000000000000000007fffffffffffffffffffffffffffffffffffff 0000000000000000000000000080000000000000000000000000000000000000 00000000000000000000000000ff000000000000000000000000000000000000 00000000000000000000000000ffffffffffffffffffffffffffffffffffffff 0000000000000000000000000100000000000000000000000000000000000000 00000000000000000000000001ffffffffffffffffffffffffffffffffffffff 0000000000000000000000000200000000000000000000000000000000000000 00000000000000000000000003ffffffffffffffffffffffffffffffffffffff 0000000000000000000000000400000000000000000000000000000000000000 00000000000000000000000007ffffffffffffffffffffffffffffffffffffff 0000000000000000000000000800000000000000000000000000000000000000 0000000000000000000000000fffffffffffffffffffffffffffffffffffffff 0000000000000000000000001000000000000000000000000000000000000000 0000000000000000000000001fffffffffffffffffffffffffffffffffffffff 0000000000000000000000002000000000000000000000000000000000000000 0000000000000000000000003fffffffffffffffffffffffffffffffffffffff 0000000000000000000000004000000000000000000000000000000000000000 0000000000000000000000007fffffffffffffffffffffffffffffffffffffff 0000000000000000000000008000000000000000000000000000000000000000 000000000000000000000000ff00000000000000000000000000000000000000 000000000000000000000000ffffffffffffffffffffffffffffffffffffffff 0000000000000000000000010000000000000000000000000000000000000000 000000000000000000000001ffffffffffffffffffffffffffffffffffffffff 0000000000000000000000020000000000000000000000000000000000000000 000000000000000000000003ffffffffffffffffffffffffffffffffffffffff 0000000000000000000000040000000000000000000000000000000000000000 000000000000000000000007ffffffffffffffffffffffffffffffffffffffff 0000000000000000000000080000000000000000000000000000000000000000 00000000000000000000000fffffffffffffffffffffffffffffffffffffffff 0000000000000000000000100000000000000000000000000000000000000000 00000000000000000000001fffffffffffffffffffffffffffffffffffffffff 0000000000000000000000200000000000000000000000000000000000000000 00000000000000000000003fffffffffffffffffffffffffffffffffffffffff 0000000000000000000000400000000000000000000000000000000000000000 00000000000000000000007fffffffffffffffffffffffffffffffffffffffff 0000000000000000000000800000000000000000000000000000000000000000 0000000000000000000000ff0000000000000000000000000000000000000000 0000000000000000000000ffffffffffffffffffffffffffffffffffffffffff 0000000000000000000001000000000000000000000000000000000000000000 0000000000000000000001ffffffffffffffffffffffffffffffffffffffffff 0000000000000000000002000000000000000000000000000000000000000000 0000000000000000000003ffffffffffffffffffffffffffffffffffffffffff 0000000000000000000004000000000000000000000000000000000000000000 0000000000000000000007ffffffffffffffffffffffffffffffffffffffffff 0000000000000000000008000000000000000000000000000000000000000000 000000000000000000000fffffffffffffffffffffffffffffffffffffffffff 0000000000000000000010000000000000000000000000000000000000000000 000000000000000000001fffffffffffffffffffffffffffffffffffffffffff 0000000000000000000020000000000000000000000000000000000000000000 000000000000000000003fffffffffffffffffffffffffffffffffffffffffff 0000000000000000000040000000000000000000000000000000000000000000 000000000000000000007fffffffffffffffffffffffffffffffffffffffffff 0000000000000000000080000000000000000000000000000000000000000000 00000000000000000000ff000000000000000000000000000000000000000000 00000000000000000000ffffffffffffffffffffffffffffffffffffffffffff 0000000000000000000100000000000000000000000000000000000000000000 00000000000000000001ffffffffffffffffffffffffffffffffffffffffffff 0000000000000000000200000000000000000000000000000000000000000000 00000000000000000003ffffffffffffffffffffffffffffffffffffffffffff 0000000000000000000400000000000000000000000000000000000000000000 00000000000000000007ffffffffffffffffffffffffffffffffffffffffffff 0000000000000000000800000000000000000000000000000000000000000000 0000000000000000000fffffffffffffffffffffffffffffffffffffffffffff 0000000000000000001000000000000000000000000000000000000000000000 0000000000000000001fffffffffffffffffffffffffffffffffffffffffffff 0000000000000000002000000000000000000000000000000000000000000000 0000000000000000003fffffffffffffffffffffffffffffffffffffffffffff 0000000000000000004000000000000000000000000000000000000000000000 0000000000000000007fffffffffffffffffffffffffffffffffffffffffffff 0000000000000000008000000000000000000000000000000000000000000000 000000000000000000ff00000000000000000000000000000000000000000000 000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff 0000000000000000010000000000000000000000000000000000000000000000 000000000000000001ffffffffffffffffffffffffffffffffffffffffffffff 0000000000000000020000000000000000000000000000000000000000000000 000000000000000003ffffffffffffffffffffffffffffffffffffffffffffff 0000000000000000040000000000000000000000000000000000000000000000 000000000000000007ffffffffffffffffffffffffffffffffffffffffffffff 0000000000000000080000000000000000000000000000000000000000000000 00000000000000000fffffffffffffffffffffffffffffffffffffffffffffff 0000000000000000100000000000000000000000000000000000000000000000 00000000000000001fffffffffffffffffffffffffffffffffffffffffffffff 0000000000000000200000000000000000000000000000000000000000000000 00000000000000003fffffffffffffffffffffffffffffffffffffffffffffff 0000000000000000400000000000000000000000000000000000000000000000 00000000000000007fffffffffffffffffffffffffffffffffffffffffffffff 0000000000000000800000000000000000000000000000000000000000000000 0000000000000000ff0000000000000000000000000000000000000000000000 0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff 0000000000000001000000000000000000000000000000000000000000000000 0000000000000001ffffffffffffffffffffffffffffffffffffffffffffffff 0000000000000002000000000000000000000000000000000000000000000000 0000000000000003ffffffffffffffffffffffffffffffffffffffffffffffff 0000000000000004000000000000000000000000000000000000000000000000 0000000000000007ffffffffffffffffffffffffffffffffffffffffffffffff 0000000000000008000000000000000000000000000000000000000000000000 000000000000000fffffffffffffffffffffffffffffffffffffffffffffffff 0000000000000010000000000000000000000000000000000000000000000000 000000000000001fffffffffffffffffffffffffffffffffffffffffffffffff 0000000000000020000000000000000000000000000000000000000000000000 000000000000003fffffffffffffffffffffffffffffffffffffffffffffffff 0000000000000040000000000000000000000000000000000000000000000000 000000000000007fffffffffffffffffffffffffffffffffffffffffffffffff 0000000000000080000000000000000000000000000000000000000000000000 00000000000000ff000000000000000000000000000000000000000000000000 00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000000100000000000000000000000000000000000000000000000000 00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000000200000000000000000000000000000000000000000000000000 00000000000003ffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000000400000000000000000000000000000000000000000000000000 00000000000007ffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000000800000000000000000000000000000000000000000000000000 0000000000000fffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000001000000000000000000000000000000000000000000000000000 0000000000001fffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000002000000000000000000000000000000000000000000000000000 0000000000003fffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000004000000000000000000000000000000000000000000000000000 0000000000007fffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000008000000000000000000000000000000000000000000000000000 000000000000ff00000000000000000000000000000000000000000000000000 000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000010000000000000000000000000000000000000000000000000000 000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000020000000000000000000000000000000000000000000000000000 000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000040000000000000000000000000000000000000000000000000000 000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000080000000000000000000000000000000000000000000000000000 00000000000fffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000100000000000000000000000000000000000000000000000000000 00000000001fffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000200000000000000000000000000000000000000000000000000000 00000000003fffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000400000000000000000000000000000000000000000000000000000 00000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000000800000000000000000000000000000000000000000000000000000 0000000000ff0000000000000000000000000000000000000000000000000000 0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000001000000000000000000000000000000000000000000000000000000 0000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000002000000000000000000000000000000000000000000000000000000 0000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000004000000000000000000000000000000000000000000000000000000 0000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000008000000000000000000000000000000000000000000000000000000 000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000010000000000000000000000000000000000000000000000000000000 000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000020000000000000000000000000000000000000000000000000000000 000000003fffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000040000000000000000000000000000000000000000000000000000000 000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000080000000000000000000000000000000000000000000000000000000 00000000ff000000000000000000000000000000000000000000000000000000 00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000100000000000000000000000000000000000000000000000000000000 00000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000200000000000000000000000000000000000000000000000000000000 00000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000400000000000000000000000000000000000000000000000000000000 00000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000000800000000000000000000000000000000000000000000000000000000 0000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000001000000000000000000000000000000000000000000000000000000000 0000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000002000000000000000000000000000000000000000000000000000000000 0000003fffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000004000000000000000000000000000000000000000000000000000000000 0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000008000000000000000000000000000000000000000000000000000000000 000000ff00000000000000000000000000000000000000000000000000000000 000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000010000000000000000000000000000000000000000000000000000000000 000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000020000000000000000000000000000000000000000000000000000000000 000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000040000000000000000000000000000000000000000000000000000000000 000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000080000000000000000000000000000000000000000000000000000000000 00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000100000000000000000000000000000000000000000000000000000000000 00001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000200000000000000000000000000000000000000000000000000000000000 00003fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000400000000000000000000000000000000000000000000000000000000000 00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000800000000000000000000000000000000000000000000000000000000000 0000ff0000000000000000000000000000000000000000000000000000000000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0001000000000000000000000000000000000000000000000000000000000000 0001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0002000000000000000000000000000000000000000000000000000000000000 0003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0004000000000000000000000000000000000000000000000000000000000000 0007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0008000000000000000000000000000000000000000000000000000000000000 000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0010000000000000000000000000000000000000000000000000000000000000 001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0020000000000000000000000000000000000000000000000000000000000000 003fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0040000000000000000000000000000000000000000000000000000000000000 007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0080000000000000000000000000000000000000000000000000000000000000 00ff000000000000000000000000000000000000000000000000000000000000 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0100000000000000000000000000000000000000000000000000000000000000 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0200000000000000000000000000000000000000000000000000000000000000 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0400000000000000000000000000000000000000000000000000000000000000 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0800000000000000000000000000000000000000000000000000000000000000 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1000000000000000000000000000000000000000000000000000000000000000 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 2000000000000000000000000000000000000000000000000000000000000000 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 4000000000000000000000000000000000000000000000000000000000000000 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8000000000000000000000000000000000000000000000000000000000000000 bfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff c000000000000000000000000000000000000000000000000000000000000000 dfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff e000000000000000000000000000000000000000000000000000000000000000 efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff f000000000000000000000000000000000000000000000000000000000000000 f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff f800000000000000000000000000000000000000000000000000000000000000 fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fc00000000000000000000000000000000000000000000000000000000000000 fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fe00000000000000000000000000000000000000000000000000000000000000 feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00000000000000000000000000000000000000000000000000000000000000 ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff80000000000000000000000000000000000000000000000000000000000000 ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffc0000000000000000000000000000000000000000000000000000000000000 ffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffe0000000000000000000000000000000000000000000000000000000000000 ffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fff0000000000000000000000000000000000000000000000000000000000000 fff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fff8000000000000000000000000000000000000000000000000000000000000 fffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffc000000000000000000000000000000000000000000000000000000000000 fffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffe000000000000000000000000000000000000000000000000000000000000 fffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff000000000000000000000000000000000000000000000000000000000000 ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff800000000000000000000000000000000000000000000000000000000000 ffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffc00000000000000000000000000000000000000000000000000000000000 ffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffe00000000000000000000000000000000000000000000000000000000000 ffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffff00000000000000000000000000000000000000000000000000000000000 fffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffff80000000000000000000000000000000000000000000000000000000000 fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffc0000000000000000000000000000000000000000000000000000000000 fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffe0000000000000000000000000000000000000000000000000000000000 fffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000000000000000000000000000000000000000000000000000000000 ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff8000000000000000000000000000000000000000000000000000000000 ffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffc000000000000000000000000000000000000000000000000000000000 ffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffe000000000000000000000000000000000000000000000000000000000 ffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffff000000000000000000000000000000000000000000000000000000000 fffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffff800000000000000000000000000000000000000000000000000000000 fffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffc00000000000000000000000000000000000000000000000000000000 fffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffe00000000000000000000000000000000000000000000000000000000 fffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00000000000000000000000000000000000000000000000000000000 ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff80000000000000000000000000000000000000000000000000000000 ffffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffc0000000000000000000000000000000000000000000000000000000 ffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffe0000000000000000000000000000000000000000000000000000000 ffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffff0000000000000000000000000000000000000000000000000000000 fffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffff8000000000000000000000000000000000000000000000000000000 fffffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffc000000000000000000000000000000000000000000000000000000 fffffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffe000000000000000000000000000000000000000000000000000000 fffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff000000000000000000000000000000000000000000000000000000 ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff800000000000000000000000000000000000000000000000000000 ffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffc00000000000000000000000000000000000000000000000000000 ffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffe00000000000000000000000000000000000000000000000000000 ffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffff00000000000000000000000000000000000000000000000000000 fffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffff80000000000000000000000000000000000000000000000000000 fffffffffffbffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffc0000000000000000000000000000000000000000000000000000 fffffffffffdffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffe0000000000000000000000000000000000000000000000000000 fffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff0000000000000000000000000000000000000000000000000000 ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff8000000000000000000000000000000000000000000000000000 ffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffc000000000000000000000000000000000000000000000000000 ffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffe000000000000000000000000000000000000000000000000000 ffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffff000000000000000000000000000000000000000000000000000 fffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffff800000000000000000000000000000000000000000000000000 fffffffffffffbffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffc00000000000000000000000000000000000000000000000000 fffffffffffffdffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffe00000000000000000000000000000000000000000000000000 fffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00000000000000000000000000000000000000000000000000 ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff80000000000000000000000000000000000000000000000000 ffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffc0000000000000000000000000000000000000000000000000 ffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffe0000000000000000000000000000000000000000000000000 ffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffff0000000000000000000000000000000000000000000000000 fffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffff8000000000000000000000000000000000000000000000000 fffffffffffffffbffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffc000000000000000000000000000000000000000000000000 fffffffffffffffdffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffe000000000000000000000000000000000000000000000000 fffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff000000000000000000000000000000000000000000000000 ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff800000000000000000000000000000000000000000000000 ffffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffc00000000000000000000000000000000000000000000000 ffffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffe00000000000000000000000000000000000000000000000 ffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffff00000000000000000000000000000000000000000000000 fffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffff80000000000000000000000000000000000000000000000 fffffffffffffffffbffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffc0000000000000000000000000000000000000000000000 fffffffffffffffffdffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffe0000000000000000000000000000000000000000000000 fffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff0000000000000000000000000000000000000000000000 ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff8000000000000000000000000000000000000000000000 ffffffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffc000000000000000000000000000000000000000000000 ffffffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffe000000000000000000000000000000000000000000000 ffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffff000000000000000000000000000000000000000000000 fffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffff800000000000000000000000000000000000000000000 fffffffffffffffffffbffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffc00000000000000000000000000000000000000000000 fffffffffffffffffffdffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffe00000000000000000000000000000000000000000000 fffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00000000000000000000000000000000000000000000 ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff80000000000000000000000000000000000000000000 ffffffffffffffffffffbfffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffc0000000000000000000000000000000000000000000 ffffffffffffffffffffdfffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffe0000000000000000000000000000000000000000000 ffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffff0000000000000000000000000000000000000000000 fffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffff8000000000000000000000000000000000000000000 fffffffffffffffffffffbffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffc000000000000000000000000000000000000000000 fffffffffffffffffffffdffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffe000000000000000000000000000000000000000000 fffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff000000000000000000000000000000000000000000 ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff800000000000000000000000000000000000000000 ffffffffffffffffffffffbfffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffc00000000000000000000000000000000000000000 ffffffffffffffffffffffdfffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffe00000000000000000000000000000000000000000 ffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffff00000000000000000000000000000000000000000 fffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffff80000000000000000000000000000000000000000 fffffffffffffffffffffffbffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffc0000000000000000000000000000000000000000 fffffffffffffffffffffffdffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffe0000000000000000000000000000000000000000 fffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff0000000000000000000000000000000000000000 ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff8000000000000000000000000000000000000000 ffffffffffffffffffffffffbfffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffc000000000000000000000000000000000000000 ffffffffffffffffffffffffdfffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffe000000000000000000000000000000000000000 ffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffff000000000000000000000000000000000000000 fffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffff800000000000000000000000000000000000000 fffffffffffffffffffffffffbffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffc00000000000000000000000000000000000000 fffffffffffffffffffffffffdffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffe00000000000000000000000000000000000000 fffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff00000000000000000000000000000000000000 ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff80000000000000000000000000000000000000 ffffffffffffffffffffffffffbfffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffc0000000000000000000000000000000000000 ffffffffffffffffffffffffffdfffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffe0000000000000000000000000000000000000 ffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffff0000000000000000000000000000000000000 fffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffff8000000000000000000000000000000000000 fffffffffffffffffffffffffffbffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffc000000000000000000000000000000000000 fffffffffffffffffffffffffffdffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffe000000000000000000000000000000000000 fffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff000000000000000000000000000000000000 ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff800000000000000000000000000000000000 ffffffffffffffffffffffffffffbfffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffc00000000000000000000000000000000000 ffffffffffffffffffffffffffffdfffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffe00000000000000000000000000000000000 ffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffff00000000000000000000000000000000000 fffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffff80000000000000000000000000000000000 fffffffffffffffffffffffffffffbffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffc0000000000000000000000000000000000 fffffffffffffffffffffffffffffdffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffe0000000000000000000000000000000000 fffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff0000000000000000000000000000000000 ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff8000000000000000000000000000000000 ffffffffffffffffffffffffffffffbfffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffc000000000000000000000000000000000 ffffffffffffffffffffffffffffffdfffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffe000000000000000000000000000000000 ffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffff000000000000000000000000000000000 fffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffff800000000000000000000000000000000 fffffffffffffffffffffffffffffffbffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc00000000000000000000000000000000 fffffffffffffffffffffffffffffffdffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffe00000000000000000000000000000000 fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00000000000000000000000000000000 ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff80000000000000000000000000000000 ffffffffffffffffffffffffffffffffbfffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffc0000000000000000000000000000000 ffffffffffffffffffffffffffffffffdfffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffe0000000000000000000000000000000 ffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffff0000000000000000000000000000000 fffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffff8000000000000000000000000000000 fffffffffffffffffffffffffffffffffbffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffc000000000000000000000000000000 fffffffffffffffffffffffffffffffffdffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffe000000000000000000000000000000 fffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff000000000000000000000000000000 ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff800000000000000000000000000000 ffffffffffffffffffffffffffffffffffbfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffc00000000000000000000000000000 ffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffe00000000000000000000000000000 ffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffff00000000000000000000000000000 fffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffff80000000000000000000000000000 fffffffffffffffffffffffffffffffffffbffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffc0000000000000000000000000000 fffffffffffffffffffffffffffffffffffdffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffe0000000000000000000000000000 fffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff0000000000000000000000000000 ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff8000000000000000000000000000 ffffffffffffffffffffffffffffffffffffbfffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffc000000000000000000000000000 ffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffe000000000000000000000000000 ffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff000000000000000000000000000 fffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffff800000000000000000000000000 fffffffffffffffffffffffffffffffffffffbffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffc00000000000000000000000000 fffffffffffffffffffffffffffffffffffffdffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffe00000000000000000000000000 fffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff00000000000000000000000000 ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff80000000000000000000000000 ffffffffffffffffffffffffffffffffffffffbfffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffc0000000000000000000000000 ffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffe0000000000000000000000000 ffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffff0000000000000000000000000 fffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffff8000000000000000000000000 fffffffffffffffffffffffffffffffffffffffbffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffc000000000000000000000000 fffffffffffffffffffffffffffffffffffffffdffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffe000000000000000000000000 fffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff000000000000000000000000 ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff800000000000000000000000 ffffffffffffffffffffffffffffffffffffffffbfffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffc00000000000000000000000 ffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe00000000000000000000000 ffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffff00000000000000000000000 fffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffff80000000000000000000000 fffffffffffffffffffffffffffffffffffffffffbffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffc0000000000000000000000 fffffffffffffffffffffffffffffffffffffffffdffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffe0000000000000000000000 fffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff8000000000000000000000 ffffffffffffffffffffffffffffffffffffffffffbfffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffc000000000000000000000 ffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffe000000000000000000000 ffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffff000000000000000000000 fffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffff800000000000000000000 fffffffffffffffffffffffffffffffffffffffffffbffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffc00000000000000000000 fffffffffffffffffffffffffffffffffffffffffffdffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffe00000000000000000000 fffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff80000000000000000000 ffffffffffffffffffffffffffffffffffffffffffffbfffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffc0000000000000000000 ffffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000 ffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000 fffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffff8000000000000000000 fffffffffffffffffffffffffffffffffffffffffffffbffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffc000000000000000000 fffffffffffffffffffffffffffffffffffffffffffffdffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffe000000000000000000 fffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff800000000000000000 ffffffffffffffffffffffffffffffffffffffffffffffbfffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffc00000000000000000 ffffffffffffffffffffffffffffffffffffffffffffffdfffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000 ffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000 fffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffff80000000000000000 fffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffc0000000000000000 fffffffffffffffffffffffffffffffffffffffffffffffdffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000 fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffbfffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffc000000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffdfffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000 fffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffff800000000000000 fffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffc00000000000000 fffffffffffffffffffffffffffffffffffffffffffffffffdffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000 fffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffc0000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000 fffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000 fffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffc000000000000 fffffffffffffffffffffffffffffffffffffffffffffffffffdffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000 fffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff800000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000 fffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000 fffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000000 fffffffffffffffffffffffffffffffffffffffffffffffffffffdffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000 fffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffc000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000 fffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffff800000000 fffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000 fffffffffffffffffffffffffffffffffffffffffffffffffffffffdffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000 fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000 fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000000 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffdffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff tinyssh-20180201/crypto-tests/precomp_curve25519.data000066400000000000000000005340301322704306500222530ustar00rootroot00000000000000{ 0x2f,0xe5,0x7d,0xa3,0x47,0xcd,0x62,0x43,0x15,0x28,0xda,0xac,0x5f,0xbb,0x29,0x07,0x30,0xff,0xf6,0x84,0xaf,0xc4,0xcf,0xc2,0xed,0x90,0x99,0x5f,0x58,0xcb,0x3b,0x74 }, { 0xfd,0x33,0x84,0xe1,0x32,0xad,0x02,0xa5,0x6c,0x78,0xf4,0x55,0x47,0xee,0x40,0x03,0x8d,0xc7,0x90,0x02,0xb9,0x0d,0x29,0xed,0x90,0xe0,0x8e,0xee,0x76,0x2a,0xe7,0x15 }, { 0xad,0x8c,0x48,0xc2,0x67,0x65,0xae,0xa7,0xad,0xc5,0x36,0x28,0x96,0x05,0xc1,0xab,0xea,0x95,0x05,0x00,0x93,0xdb,0xd2,0x18,0xc9,0x6a,0xbd,0x24,0x81,0xa0,0x35,0x65 }, { 0x99,0x52,0xfb,0x7e,0x53,0x83,0xc5,0x22,0xc9,0x54,0xde,0x94,0xf2,0xe4,0x62,0x0d,0x3e,0x08,0xcd,0x9e,0x72,0x48,0xad,0x23,0x20,0x7f,0x9e,0xf5,0x5c,0x90,0x41,0x44 }, { 0xec,0x13,0xd2,0x3a,0x17,0xda,0xf1,0x74,0x75,0x0d,0xf7,0xad,0x67,0xa8,0x6a,0x1d,0x4e,0xab,0xec,0x8f,0x51,0x76,0x36,0x60,0x52,0x81,0xc1,0xdb,0x18,0xc6,0x66,0x49 }, { 0xf6,0x03,0x1b,0xd7,0x59,0x63,0x23,0xfa,0x54,0x00,0x41,0xbd,0x3a,0x63,0x51,0x33,0xe7,0x28,0x78,0x49,0x3e,0x76,0x20,0x04,0x88,0x75,0x88,0x7b,0xdc,0x8b,0x99,0x07 }, { 0x0b,0xc6,0x8f,0x68,0x72,0x17,0x2f,0x9d,0xa9,0xc3,0x5b,0xe0,0x82,0x76,0xa6,0x36,0xa8,0x04,0x9d,0x44,0x26,0xdc,0xb5,0x06,0x7c,0x56,0xb8,0x11,0x38,0x50,0x4d,0x6a }, { 0x76,0x46,0x27,0xe0,0x18,0x48,0xbd,0x9c,0x38,0xd4,0x3d,0x7a,0xe4,0x2d,0x32,0x33,0x73,0x27,0x51,0x4a,0xeb,0x5f,0x00,0x00,0x63,0xbb,0x1f,0x5b,0xb9,0xfd,0x9b,0x75 }, { 0x2a,0xe1,0x19,0xbc,0x7b,0x59,0x49,0x5c,0x8c,0xc1,0x9e,0xfb,0xed,0xfe,0x6f,0x00,0xbb,0xc1,0x0e,0x7d,0x99,0x08,0xd1,0x02,0xa4,0x09,0x44,0xa9,0x44,0xfa,0xa3,0x6e }, { 0xce,0x08,0x10,0xb0,0x5f,0x29,0xc1,0x67,0x20,0x9e,0xd7,0x6c,0x96,0x8d,0xd5,0x9d,0xe5,0x6e,0x4b,0x1c,0x9e,0xd4,0x70,0x52,0xfb,0x96,0x7b,0xff,0x94,0x31,0x45,0x1d }, { 0xf3,0x5c,0xa9,0x9a,0xe0,0x11,0x19,0x80,0xc5,0x50,0xe3,0x7d,0xef,0xef,0xc7,0x68,0x5b,0xa1,0x24,0x14,0x38,0x31,0x47,0x06,0x86,0x77,0xf7,0x7d,0xd0,0x78,0x0c,0x52 }, { 0xad,0xea,0xff,0xf5,0xd8,0x78,0x56,0x59,0x33,0x15,0xc0,0x48,0x41,0x78,0xe8,0xd1,0xc4,0x77,0x7a,0x2a,0xb1,0x6e,0xa1,0x71,0x7a,0x7e,0x2f,0x20,0x99,0x2e,0x9b,0x2c }, { 0x2f,0xe5,0x7d,0xa3,0x47,0xcd,0x62,0x43,0x15,0x28,0xda,0xac,0x5f,0xbb,0x29,0x07,0x30,0xff,0xf6,0x84,0xaf,0xc4,0xcf,0xc2,0xed,0x90,0x99,0x5f,0x58,0xcb,0x3b,0x74 }, { 0xad,0xea,0xff,0xf5,0xd8,0x78,0x56,0x59,0x33,0x15,0xc0,0x48,0x41,0x78,0xe8,0xd1,0xc4,0x77,0x7a,0x2a,0xb1,0x6e,0xa1,0x71,0x7a,0x7e,0x2f,0x20,0x99,0x2e,0x9b,0x2c }, { 0x2f,0xe5,0x7d,0xa3,0x47,0xcd,0x62,0x43,0x15,0x28,0xda,0xac,0x5f,0xbb,0x29,0x07,0x30,0xff,0xf6,0x84,0xaf,0xc4,0xcf,0xc2,0xed,0x90,0x99,0x5f,0x58,0xcb,0x3b,0x74 }, { 0xad,0xea,0xff,0xf5,0xd8,0x78,0x56,0x59,0x33,0x15,0xc0,0x48,0x41,0x78,0xe8,0xd1,0xc4,0x77,0x7a,0x2a,0xb1,0x6e,0xa1,0x71,0x7a,0x7e,0x2f,0x20,0x99,0x2e,0x9b,0x2c }, { 0xdc,0xac,0x46,0xcd,0xb9,0xc2,0xb9,0xe9,0x34,0x84,0x04,0x27,0x53,0x8a,0x05,0x75,0xae,0x42,0x1d,0xbb,0x85,0x76,0x47,0xaa,0xcf,0x07,0x57,0x65,0xf0,0xae,0x64,0x43 }, { 0xb7,0x22,0x15,0xf0,0x6c,0xf3,0x55,0xf6,0xd1,0x42,0xd7,0x68,0xbc,0xc7,0x85,0x1e,0x0b,0x41,0x84,0xb3,0x69,0x9d,0x64,0x9c,0x20,0xfe,0xaa,0x8b,0x26,0x7c,0xf1,0x49 }, { 0x80,0xee,0xdc,0x7d,0x50,0x6a,0x6f,0x89,0x10,0x5c,0x9e,0xb8,0x25,0x83,0x11,0x4a,0x31,0x60,0x04,0x35,0xda,0xd3,0xe8,0x42,0x16,0xdb,0x2c,0x31,0x6a,0xdd,0xe2,0x56 }, { 0x0b,0xbb,0xb5,0x7a,0xb3,0xba,0xe0,0x9e,0x3c,0x7e,0x0f,0xc9,0x78,0xc7,0xf7,0xb3,0x90,0x94,0xd0,0x69,0x25,0x5c,0xc5,0x66,0xf5,0xb4,0x85,0x36,0x54,0xe0,0x02,0x2b }, { 0x83,0x4d,0xdf,0x49,0x28,0xff,0xc8,0x79,0x46,0xfa,0x61,0xf2,0x99,0x90,0x90,0x81,0x1a,0x34,0x14,0x45,0xf7,0xa4,0xdf,0x47,0x9d,0x03,0xc6,0xe5,0x84,0xd1,0x43,0x1c }, { 0xbf,0xa8,0xbf,0x95,0xbe,0xfd,0x36,0x2f,0x42,0xc4,0xa0,0x81,0x24,0xdb,0xcb,0x35,0x01,0xeb,0xd6,0xcc,0x65,0x01,0x7e,0xf9,0x83,0x2a,0x2c,0x4b,0x86,0xa8,0xbc,0x10 }, { 0xba,0x11,0xd6,0xc0,0xad,0x11,0x75,0xf7,0xfe,0x4c,0xf0,0x94,0xfc,0xd9,0x62,0xd3,0x7c,0xb0,0x79,0x09,0x8c,0x9f,0xd6,0x6f,0xfc,0x9a,0xcc,0xdc,0xf9,0xaa,0x71,0x70 }, { 0x7e,0xbc,0x10,0x2a,0xc2,0x33,0x7a,0x7f,0x95,0x2d,0x5b,0x73,0xee,0xfd,0xd9,0x22,0x3b,0x5d,0x94,0x83,0xd0,0xe2,0x13,0xf9,0xa8,0xfc,0x2f,0x94,0x0e,0x30,0x26,0x23 }, { 0x39,0x86,0xec,0x1f,0x57,0xae,0x8d,0xfc,0x40,0xb9,0x00,0xaa,0x59,0xb0,0x38,0x52,0x98,0xa6,0x63,0x7a,0xdd,0x35,0xef,0x52,0x1b,0x74,0x68,0xb0,0xff,0x38,0x16,0x49 }, { 0x0e,0x1d,0x6f,0x15,0xfb,0x3b,0x4d,0xc4,0xb4,0xf9,0x8d,0xe1,0x9e,0xac,0xca,0x65,0xa4,0xc0,0x8f,0x7e,0xd7,0x43,0xfa,0xb0,0x49,0xb2,0x84,0xec,0x06,0xd2,0xc3,0x3c }, { 0xee,0x0a,0xf8,0x9e,0x9a,0xdb,0xbd,0xde,0xc2,0x71,0x3f,0x2f,0xbc,0xf8,0x08,0x33,0x58,0x33,0x1f,0x96,0x3f,0x50,0xe8,0x6f,0x7a,0xbd,0x89,0x67,0x06,0xc2,0x96,0x50 }, { 0xce,0x12,0x7b,0x99,0x3d,0xec,0x3c,0xfb,0xa5,0x45,0xf6,0x94,0x2c,0xd5,0x19,0x20,0x1c,0x1b,0x95,0x99,0xaf,0x10,0xa7,0x1a,0x59,0x1a,0xb8,0xd8,0xbe,0xb6,0x15,0x5b }, { 0x28,0x09,0xed,0x72,0x48,0xa6,0x99,0xd7,0x39,0xe2,0xcb,0x8a,0x8b,0xec,0xb7,0xc6,0x7b,0x2a,0xfa,0x93,0x3c,0x7b,0x12,0x28,0x10,0x26,0x3b,0x9a,0xdc,0x75,0xac,0x09 }, { 0x9f,0xae,0x13,0x65,0x29,0x1e,0xf8,0xc2,0x66,0x2b,0xfb,0x7f,0x8f,0x30,0xf0,0x8d,0x73,0x74,0xb2,0xcf,0xaf,0xea,0xc9,0xcb,0x94,0x6c,0xc9,0x3a,0x1a,0xb9,0x98,0x68 }, { 0x11,0x73,0xce,0xf0,0x59,0x9a,0xe1,0x20,0xde,0x0d,0x18,0x06,0x90,0xab,0x49,0x90,0x56,0x7c,0x41,0x51,0xbe,0x47,0xd9,0x69,0xac,0x84,0xed,0xc2,0x6c,0x15,0xf2,0x61 }, { 0x11,0xb6,0x23,0xd5,0xf6,0xb9,0x9b,0xc5,0xf2,0x3b,0x4d,0x87,0x19,0x0c,0xec,0x89,0xc2,0xfc,0x6d,0x57,0x41,0x89,0x9e,0x9d,0xc7,0x89,0x6a,0x9d,0x77,0x7e,0x67,0x35 }, { 0xb1,0xe8,0x23,0x6b,0x63,0x1e,0x19,0xd8,0x6b,0x28,0xa6,0xff,0x4d,0x5f,0x4b,0x39,0xd4,0x1e,0xdd,0xf4,0x7a,0xb7,0xd3,0xa9,0x57,0x95,0x06,0xde,0xc3,0xda,0x27,0x2a }, { 0x29,0x6d,0x79,0x1b,0x69,0x24,0xe5,0x41,0x1d,0xb5,0xbe,0xe0,0x3d,0x97,0xa1,0x76,0xe6,0x24,0x1f,0x23,0x8a,0xe3,0x53,0xa8,0x1b,0xe0,0xbb,0xcd,0x74,0x9f,0x34,0x21 }, { 0x88,0xa6,0x21,0x6b,0x63,0x71,0x04,0xa2,0x66,0xef,0xb1,0x3f,0x6f,0xee,0xfa,0xa1,0xd3,0xce,0x75,0x86,0xff,0xc9,0xb3,0x8c,0xf8,0x42,0xca,0x0f,0x83,0x02,0xaa,0x50 }, { 0xdc,0x73,0x4f,0xf9,0xf9,0xee,0x7f,0x52,0x33,0x48,0x18,0xfd,0x49,0x45,0x65,0xea,0xb7,0x31,0xaf,0x79,0xdc,0xfb,0x47,0x72,0x65,0x2a,0xc8,0x18,0x3f,0x6b,0x34,0x76 }, { 0x94,0xc6,0xae,0xa0,0x73,0xdb,0x2e,0x35,0x24,0x25,0x3c,0x1a,0x2f,0x71,0x5f,0x65,0x43,0xd0,0xb2,0x6d,0x1a,0x85,0x39,0x4d,0x0b,0xd9,0xcf,0x2e,0xbf,0xc4,0x77,0x27 }, { 0xb3,0x8d,0x0f,0xa4,0x0a,0x6a,0x90,0x78,0x85,0x94,0xec,0x6d,0xbd,0x56,0xf5,0x37,0x39,0xe0,0xc3,0xdc,0xb2,0xd8,0x80,0x30,0x03,0x85,0xfb,0x86,0x91,0x1c,0x95,0x2c }, { 0xd6,0xc8,0x42,0x69,0xe4,0xb0,0x77,0x1d,0x1b,0xb4,0x45,0x74,0xcd,0xee,0xbf,0x00,0x7a,0x3b,0xab,0xe0,0x2a,0xfb,0x9f,0x4b,0x5e,0xa3,0xd0,0x16,0x09,0x80,0xe1,0x03 }, { 0x89,0x74,0xb4,0xa0,0x88,0xf1,0x10,0xe4,0x85,0xcc,0x9e,0x0b,0x5e,0x8e,0xab,0xc3,0x39,0x26,0xc7,0x00,0x7b,0x18,0xef,0xd0,0xc4,0xc4,0xcb,0x4e,0xdf,0x16,0xc6,0x35 }, { 0x26,0xc6,0x66,0x4f,0x0f,0x9a,0xb9,0x49,0x12,0x39,0x83,0x88,0x15,0x4f,0xaf,0xd4,0xe5,0x5c,0x9f,0xbc,0xfe,0x94,0x77,0x29,0x13,0xcd,0x03,0xee,0x64,0xbf,0xe3,0x57 }, { 0x46,0xaa,0xa2,0x16,0xd4,0x9f,0x74,0x7c,0xdf,0x29,0x4c,0xa8,0x64,0x09,0xb5,0x83,0x69,0xc6,0xd2,0x3b,0x7e,0xec,0x2b,0x12,0x3d,0x13,0x30,0xa6,0x33,0x20,0xe4,0x36 }, { 0x05,0x79,0x56,0x30,0x04,0x27,0x4d,0xc0,0xbd,0x8a,0xde,0x46,0x5f,0xf9,0xae,0x9d,0x23,0x61,0x7e,0x67,0xa9,0xb4,0xbe,0x0d,0xd4,0x97,0xa6,0x4a,0xfc,0x04,0xc2,0x65 }, { 0x48,0x28,0x2a,0xf7,0xe3,0x92,0x34,0xdb,0x40,0xb8,0x2c,0x62,0x2b,0xb9,0xfe,0x31,0x3b,0xc0,0x0f,0x60,0x61,0xdb,0x48,0x14,0x49,0x77,0x6f,0x62,0x97,0x67,0x0c,0x31 }, { 0x4e,0x8b,0x52,0x0f,0xdf,0x4a,0xdc,0x43,0x6f,0x12,0xbb,0x12,0x1d,0xcb,0x20,0x44,0x3e,0xc3,0x30,0x81,0x7b,0xba,0x31,0xfe,0x7e,0x25,0xaa,0x88,0x7c,0x78,0x8c,0x3a }, { 0xdd,0xf2,0xe7,0x31,0xe7,0x3c,0x26,0xbb,0xee,0x76,0xc7,0x32,0xfb,0x89,0x94,0xf7,0x60,0x72,0xf5,0x48,0x8b,0x9b,0x34,0x18,0x69,0x86,0xe2,0x3a,0xe5,0xb8,0x12,0x58 }, { 0xa4,0xe4,0x68,0x6a,0xd2,0x86,0xa7,0x4a,0xe8,0xcd,0x5f,0x96,0x28,0xf0,0x45,0x3f,0x58,0xf9,0x5e,0x08,0x6a,0xe6,0x00,0xbc,0xba,0x2f,0x76,0x10,0x9b,0xad,0x07,0x46 }, { 0xf7,0x53,0x8e,0xb1,0xaa,0xbf,0xba,0x8c,0xa3,0x1c,0x0e,0x63,0x60,0x9f,0x9b,0x54,0x56,0x6f,0xda,0x68,0x19,0xb1,0x2d,0xb5,0x8e,0x4e,0x82,0xce,0xc3,0x79,0x44,0x5d }, { 0x02,0x75,0x91,0x27,0x08,0x9c,0x40,0xe1,0xf2,0x7c,0xde,0xa7,0xbe,0x8d,0xb0,0xa5,0xda,0x4f,0x00,0x3c,0x6a,0x8d,0x95,0x5d,0x91,0xeb,0x16,0xcb,0xbf,0x97,0x21,0x3d }, { 0xba,0xa1,0x40,0x3f,0x9d,0xa4,0xac,0xa2,0x4e,0x31,0xb0,0x53,0x10,0x1c,0x0a,0x8e,0x63,0x2b,0xf2,0x23,0x0e,0x5d,0x2a,0x2a,0x7c,0x37,0x97,0xac,0x56,0x31,0x36,0x0f }, { 0x1b,0xf6,0xbf,0x46,0xc7,0x04,0x26,0xa1,0x23,0xbf,0x3e,0xfe,0x06,0x02,0xd8,0x40,0x32,0x53,0xeb,0x84,0xff,0xa0,0x94,0x54,0x78,0xa0,0x83,0xd5,0xef,0xb5,0x26,0x7c }, { 0xe6,0xe3,0x9f,0x90,0x59,0x46,0xf1,0xd6,0x30,0x53,0x9b,0xb1,0xb3,0x3f,0x70,0x52,0x69,0x2a,0x44,0x5a,0xe8,0x92,0xea,0xf3,0x67,0x32,0xde,0x2a,0x33,0x66,0x9b,0x47 }, { 0x99,0x11,0x0e,0x20,0xf7,0x6a,0x53,0xd4,0xfa,0xc1,0x97,0xa7,0x20,0x8a,0x6c,0xc7,0xd4,0xe7,0x61,0x11,0xfe,0xfc,0x68,0x84,0x01,0x69,0x72,0x2e,0x54,0x9b,0xd0,0x31 }, { 0x97,0xd2,0x1b,0x14,0x25,0x1d,0x43,0x0e,0x49,0xb6,0x63,0xa7,0x1d,0xf0,0x2d,0xd8,0xb7,0x31,0x54,0x14,0x13,0xdb,0x62,0x43,0x27,0x3e,0xbd,0xf0,0x01,0x61,0xa6,0x70 }, { 0xdd,0x16,0x8d,0x2f,0x34,0x42,0x74,0xaf,0x50,0x07,0x83,0xbc,0x3d,0x9f,0x91,0x59,0xde,0xd0,0x86,0x48,0x27,0x7c,0x0a,0x4a,0xb2,0x76,0xe6,0x25,0xe5,0x90,0xde,0x55 }, { 0xe4,0xee,0xc7,0xe7,0x58,0x95,0x5b,0xb8,0x0d,0x43,0xe2,0xf2,0x3e,0x64,0xa8,0xe2,0x06,0xa6,0x64,0xd4,0x4c,0x09,0xea,0x72,0x9f,0x48,0x50,0xa2,0x72,0x9a,0x02,0x20 }, { 0x84,0xcd,0x2c,0xf9,0xcc,0x1a,0x4f,0x1c,0x97,0x8e,0xa9,0x2e,0x0c,0x4b,0x23,0xe2,0x3c,0x84,0x21,0xa7,0x78,0x98,0x1f,0x4a,0x72,0x41,0xd1,0x4e,0x83,0x63,0xd1,0x7b }, { 0xb9,0xd9,0x05,0xef,0xf5,0x1a,0xf1,0xba,0x11,0x21,0x36,0xf8,0x06,0x38,0xb9,0xb9,0xfb,0x2f,0x44,0xd9,0xf4,0x09,0x19,0x9a,0xeb,0xb6,0xd4,0xd3,0x18,0x40,0x97,0x77 }, { 0x0f,0x34,0x6e,0x25,0xa5,0x1e,0x73,0x9b,0x98,0x04,0xb7,0xcb,0x27,0xfb,0x16,0xfb,0xcf,0x74,0xb5,0x90,0x2f,0xf2,0x1a,0xe8,0xff,0x63,0x1b,0x29,0x9d,0xe8,0x8a,0x7f }, { 0x5a,0xf4,0xcd,0xd7,0x50,0xab,0x46,0x03,0xdc,0x53,0xad,0xf5,0xb8,0x17,0x5e,0x33,0xf3,0xe5,0xa8,0x7b,0x27,0x62,0x90,0x6d,0x5d,0xaf,0x4b,0x2f,0x71,0xd3,0xb7,0x4f }, { 0xaf,0x1d,0xf4,0xeb,0x33,0x45,0xf8,0x75,0x48,0x1d,0x30,0x80,0xf8,0x1c,0x93,0x67,0xf7,0x3a,0x84,0x21,0xa0,0xbb,0x4a,0x22,0x66,0x43,0x44,0x8a,0xa9,0xa5,0xef,0x09 }, { 0xde,0x5b,0x8d,0x4e,0x61,0x24,0x30,0xc8,0xfc,0xd9,0xe2,0xbc,0xa4,0x89,0x32,0xc7,0x9f,0x11,0x05,0x00,0xc0,0x5a,0x68,0x77,0x36,0x23,0x63,0x50,0x1e,0x10,0x07,0x6b }, { 0x17,0x45,0x2b,0xfb,0xae,0x2c,0x81,0xff,0x0b,0xaf,0x6b,0xaf,0xcd,0x6d,0xd6,0xf4,0x96,0x43,0x7c,0x34,0x43,0xf5,0xeb,0x16,0x98,0x2a,0xb3,0xec,0xb5,0xd2,0x94,0x46 }, { 0x30,0x95,0xa9,0x14,0x0d,0x84,0xad,0xee,0x88,0x77,0x95,0xf6,0x96,0x6a,0xa9,0x90,0xc3,0xed,0xca,0xbb,0x65,0x8f,0xd4,0xd2,0x17,0xba,0x86,0x33,0x6c,0x99,0x9a,0x30 }, { 0x70,0x24,0x40,0x73,0x33,0x0a,0xe9,0x47,0x65,0xe1,0x6c,0xda,0xb7,0x0c,0x0b,0x94,0x4c,0x12,0x12,0xe9,0x16,0x88,0x56,0x64,0xca,0xbb,0x18,0x41,0x99,0xda,0xbc,0x29 }, { 0xf7,0x9c,0xce,0xc7,0x5d,0x66,0xa5,0x6e,0x4e,0xd6,0x30,0x1b,0x63,0x7e,0xb4,0x49,0xee,0x01,0xa6,0x65,0xdd,0x2c,0x78,0xf8,0xd4,0x3e,0x37,0x9f,0xce,0x65,0xe0,0x34 }, { 0xb1,0xc4,0x94,0xd9,0x2e,0x93,0x33,0x6e,0x8b,0xab,0xda,0x55,0x58,0xf1,0x1b,0x8b,0x83,0x2c,0x93,0xb6,0x8f,0xb8,0xa6,0x91,0x8c,0x8f,0x0b,0x86,0xc1,0xe8,0x85,0x1d }, { 0xe9,0x1c,0x16,0x22,0x39,0xb1,0xd2,0x1f,0x70,0xd9,0x81,0x43,0xac,0x9b,0xa1,0x5d,0xbd,0x8d,0xe0,0x89,0xba,0x24,0x8f,0xbf,0x45,0xee,0xe5,0x2c,0xfe,0xe0,0xc2,0x2b }, { 0x89,0xfa,0xb4,0x3f,0xc4,0x56,0xea,0x75,0x14,0x96,0x4e,0x79,0x4c,0x01,0x16,0xd7,0x55,0x35,0xf0,0xb3,0xfb,0xc6,0xdf,0x61,0xb5,0xbf,0x07,0xa5,0xc4,0x76,0x5e,0x05 }, { 0xed,0x0d,0xe3,0x31,0x92,0xf9,0x11,0x0a,0xb2,0xed,0x5d,0x8d,0x96,0xfc,0x1e,0x53,0x5b,0xb2,0xc5,0xd1,0x6f,0x60,0xdd,0xc6,0x1c,0xfe,0xef,0xf8,0x9b,0x8d,0x79,0x17 }, { 0x40,0x1c,0x21,0x1c,0xda,0xb2,0x81,0x57,0x4c,0xe7,0xe7,0x6c,0xde,0x69,0x71,0x8b,0x0a,0x23,0xbb,0x39,0xd8,0x99,0x12,0x4e,0xb8,0xdf,0x09,0x4e,0xe8,0x95,0x2e,0x57 }, { 0xc8,0xb3,0xa6,0xee,0x15,0xb2,0x9a,0x62,0xe3,0xcd,0xd5,0x3f,0xb9,0x4c,0x6f,0x06,0x79,0x1f,0xff,0x21,0xa4,0x36,0xb6,0xdb,0x52,0x88,0x0f,0x1b,0x68,0x24,0x69,0x3c }, { 0x2f,0x1e,0xf0,0x78,0x2d,0x60,0x8b,0x6d,0x99,0x07,0xac,0x6b,0x53,0x3d,0x5e,0x0c,0x92,0x03,0x02,0xe1,0x02,0xd0,0x68,0xe0,0xac,0xb6,0x27,0x60,0x2c,0xaa,0x3b,0x71 }, { 0x4c,0x8d,0x11,0xca,0xea,0x52,0xe8,0xdf,0x4f,0xa8,0x6b,0x39,0xc7,0xd4,0x20,0xa8,0xb3,0xd4,0x60,0x8d,0x50,0x15,0xb3,0x82,0x34,0xcb,0x38,0xa4,0xd3,0x84,0x0e,0x2d }, { 0xc7,0x19,0x36,0xf3,0x78,0xc8,0xb8,0xa0,0x52,0x1f,0x4a,0xc2,0x30,0x99,0x9e,0x18,0x56,0x16,0xdd,0xaf,0x46,0x37,0x99,0xde,0xce,0x6b,0x85,0xaa,0x1c,0x80,0x3d,0x35 }, { 0x07,0x01,0x88,0xfe,0xc1,0xe6,0xc3,0x12,0xa6,0x6e,0x97,0x96,0x4c,0xd4,0x98,0x10,0x84,0xd3,0x97,0xe3,0x83,0x21,0xbe,0x75,0x10,0x50,0x9f,0xf9,0x10,0x31,0xe7,0x3b }, { 0x72,0xef,0x9f,0x61,0x99,0x60,0x1f,0x5a,0x3d,0x2d,0x0b,0x7f,0x71,0x25,0xcf,0x30,0xd3,0x23,0xbd,0x3e,0xc7,0x3e,0xe1,0x67,0xcf,0x66,0x17,0xf4,0xf0,0x06,0xd9,0x55 }, { 0x09,0x96,0x30,0xa6,0x3c,0xfc,0x6c,0x53,0xb6,0x02,0xb7,0xbd,0xa5,0x97,0x28,0xbc,0x43,0xac,0x65,0x85,0xcc,0x56,0x4d,0x0b,0x62,0xb5,0xf0,0xaf,0x8b,0xe9,0x67,0x15 }, { 0xda,0x50,0x19,0xcc,0x8f,0x78,0x64,0xbd,0x1c,0xaa,0xb6,0xa7,0xc0,0xb8,0xd4,0xcb,0x6d,0xe6,0xc8,0x1f,0xd7,0x67,0x04,0x08,0xd1,0xe7,0xf6,0x9a,0xbd,0xf1,0xde,0x15 }, { 0xfa,0xbc,0xaa,0xef,0x7c,0xeb,0xfc,0xa7,0x4d,0xf1,0x89,0xed,0x7e,0xd4,0x4a,0xe9,0x7a,0xfb,0xb3,0x91,0xbd,0xf2,0xed,0xd4,0x3f,0xdc,0x7f,0x19,0xa0,0x5f,0x3f,0x0d }, { 0xdb,0x26,0x78,0xcd,0xc3,0x31,0xc1,0x74,0x65,0x9c,0xea,0x36,0x5b,0x0a,0xa6,0x02,0xcb,0x79,0xe8,0x30,0x83,0xb0,0x89,0x1b,0xc8,0x1a,0x87,0x92,0x78,0x53,0xcf,0x35 }, { 0x45,0x46,0x47,0x0d,0x8e,0x5a,0x50,0xf8,0x3c,0x69,0x80,0xf5,0x23,0x34,0x58,0x12,0x52,0x7f,0x0d,0xbf,0xf1,0x34,0x34,0x75,0x97,0xf9,0x02,0x9f,0xec,0x47,0xf9,0x30 }, { 0xd1,0xeb,0x0d,0x89,0x7f,0x2d,0x4e,0xcb,0xc6,0x1c,0xc4,0x84,0x4e,0xe8,0xb3,0xe0,0x15,0xe7,0x48,0x8d,0x96,0xa5,0xd1,0x28,0x60,0xbf,0x22,0xe7,0xd9,0x8c,0x61,0x78 }, { 0x0b,0xc0,0x3a,0xf2,0x3d,0x79,0x20,0xc3,0xa2,0x1e,0xe4,0x96,0xcc,0x02,0xf9,0x7e,0x20,0x7a,0x60,0xba,0x63,0x3e,0x51,0x8b,0x69,0xdd,0x51,0xf4,0x31,0xe7,0xde,0x28 }, { 0x68,0x25,0x64,0x37,0x26,0xb6,0x71,0xaa,0xfd,0x80,0xf8,0x72,0xaf,0xbb,0xd6,0x34,0xf8,0xce,0x19,0x57,0x6b,0xba,0x3e,0x47,0x5f,0x4d,0x5c,0x91,0x5b,0xbc,0x35,0x05 }, { 0x23,0x3a,0xd4,0xad,0x0c,0xde,0x95,0x8f,0x8e,0xa7,0xbd,0x99,0x60,0x18,0x8e,0xa3,0x14,0x55,0x2b,0xbe,0x8e,0x56,0x44,0x27,0xfc,0xe8,0x85,0x28,0xec,0xe4,0xc3,0x48 }, { 0x21,0xdf,0x6a,0xda,0xbf,0xc4,0xb9,0x01,0x7e,0xc9,0x36,0x93,0xfd,0x63,0xc5,0x34,0x01,0xc7,0x65,0xad,0x4a,0x97,0xcd,0xec,0x3e,0x03,0x62,0x55,0x3a,0xcf,0x03,0x70 }, { 0x6f,0x8e,0x4a,0x5d,0x95,0xd5,0x70,0x91,0x38,0x8d,0xff,0x62,0x9d,0xb3,0x09,0x33,0x39,0x8a,0x4d,0x21,0xa6,0xfb,0xd0,0x78,0xe2,0x96,0x7a,0xc8,0x49,0x9a,0x88,0x28 }, { 0x63,0x43,0x34,0x4a,0x05,0x39,0x6e,0xf7,0xeb,0x08,0x24,0x58,0x1d,0x44,0x76,0x16,0x59,0x38,0x1b,0xe0,0xab,0xcd,0x88,0x98,0x98,0x71,0xca,0x53,0x1a,0x89,0x81,0x62 }, { 0x5d,0x96,0xab,0xee,0x95,0x2c,0x79,0x92,0xe2,0x59,0x2c,0x08,0xdb,0xf7,0x04,0x83,0xc6,0x17,0x8a,0xb9,0x88,0x7e,0x1e,0x88,0xd1,0x9c,0xb2,0x5e,0x22,0x25,0x07,0x6c }, { 0x01,0x4a,0x91,0xef,0x0b,0x3c,0xa1,0x8f,0xab,0x94,0xd4,0x0f,0x82,0x80,0x11,0x51,0xc7,0x36,0x21,0xc4,0x5c,0x24,0xa8,0x3f,0x51,0xf0,0x98,0xb2,0x3f,0xd1,0x19,0x17 }, { 0xab,0x7a,0x4f,0x4c,0x96,0xd5,0xdf,0x9c,0x52,0xe7,0x4b,0x7d,0x67,0x41,0xc9,0xc8,0xf3,0x04,0xc0,0x70,0x74,0x42,0x78,0xed,0x93,0x8b,0x73,0x34,0x97,0x7b,0x09,0x27 }, { 0x6e,0xc3,0xba,0x59,0xfe,0x61,0x73,0xd0,0x2a,0x82,0x9f,0x13,0x2a,0x90,0x9e,0xdc,0x20,0x6a,0x97,0x83,0xa6,0x83,0x3d,0xa9,0xc1,0x35,0x32,0x61,0xbb,0x13,0x70,0x58 }, { 0xf1,0x91,0x4e,0x81,0xfe,0xb9,0x91,0xdc,0x5b,0xce,0xde,0x23,0xdd,0x26,0xaf,0xb6,0x3b,0x0e,0xc0,0x78,0xe9,0x54,0x31,0x53,0x7d,0x86,0x77,0x13,0xfe,0x14,0x48,0x2b }, { 0x44,0x13,0xf1,0xe1,0x2b,0x3d,0xaa,0x9a,0x6b,0x68,0x5d,0xe5,0x93,0xc6,0x46,0xd0,0x30,0xf3,0x41,0xd2,0x86,0x8b,0x05,0xd1,0x6a,0xdf,0xbb,0xe4,0x09,0x75,0x8e,0x2b }, { 0x99,0x0f,0xd6,0xa8,0xb9,0xc7,0xa0,0xc7,0x9a,0xd6,0x20,0xb5,0xe7,0x77,0x75,0x07,0x6c,0x3d,0xe2,0x2b,0x73,0xae,0xde,0x22,0x2e,0x1e,0xe0,0x78,0xa9,0xe5,0x12,0x5b }, { 0x01,0xdf,0xe9,0x65,0xa0,0x89,0xa4,0xee,0x95,0x42,0xdd,0xc2,0xc9,0xb5,0x56,0xd2,0x3b,0x43,0x85,0xe6,0x04,0x93,0x88,0x23,0x56,0x1c,0x70,0x27,0xf1,0x54,0x73,0x22 }, { 0x6d,0x74,0x93,0xe0,0x57,0x52,0x62,0x75,0x46,0xf8,0x3a,0x6a,0xa4,0x1d,0x23,0xd8,0x84,0xae,0x10,0x91,0xde,0x49,0x02,0xb5,0xdd,0x1b,0x43,0xfd,0xd5,0x08,0x19,0x6b }, { 0x32,0x52,0x3d,0x98,0xab,0x15,0x4a,0x44,0x6d,0x15,0xc8,0x31,0x8c,0x7a,0x2e,0xd6,0x6b,0x7e,0x9d,0x5f,0xf9,0xfb,0xe8,0xb4,0xa6,0x44,0x3c,0x01,0x6d,0x58,0x8b,0x17 }, { 0x34,0xa6,0x2b,0x13,0x67,0x80,0xa0,0x53,0x8a,0xd2,0x9b,0x9e,0x3c,0xa5,0x32,0x59,0x94,0xd2,0x1e,0xca,0xe3,0xee,0x67,0x11,0xef,0xd1,0x34,0x33,0x6a,0xf6,0x44,0x51 }, { 0x33,0xb3,0x35,0x92,0xd1,0xb1,0x86,0x27,0xf6,0xaf,0x1b,0x6a,0x3d,0x9b,0xe2,0x15,0xd9,0xbe,0x39,0xd3,0xd1,0x7b,0xbe,0x90,0x57,0xae,0x42,0xea,0x92,0x54,0x0a,0x61 }, { 0x81,0xcd,0x54,0xa4,0x49,0xdd,0x3f,0xda,0xbe,0x18,0xc4,0x3f,0x7d,0x6f,0xa9,0x53,0xb8,0x32,0xca,0xab,0xac,0xf5,0x3f,0x68,0xfa,0x3d,0xde,0x1f,0x8c,0xb5,0x03,0x4a }, { 0xd2,0xf5,0x34,0xbb,0xfa,0x41,0x87,0x41,0xae,0x8a,0x15,0xb2,0xd7,0x5a,0x80,0xed,0xba,0xf7,0xeb,0xc1,0xff,0x63,0xec,0x68,0x2f,0x85,0x14,0x91,0x11,0x34,0x29,0x65 }, { 0x66,0x08,0x12,0xb4,0xf7,0x02,0x52,0xbf,0x86,0x6a,0x0f,0x11,0xf4,0x4b,0xe1,0x59,0x0e,0x6a,0x56,0x56,0xe5,0x19,0x94,0x32,0x3c,0x9a,0x70,0x2f,0xed,0x9a,0xbb,0x10 }, { 0x7a,0x05,0x29,0x73,0x40,0x78,0x68,0x4c,0x03,0xa5,0xde,0xf9,0x80,0x97,0x6e,0x8c,0x2b,0xa1,0x23,0xd6,0xca,0x74,0x56,0xdb,0x35,0xbe,0xb5,0x35,0x24,0xa9,0x06,0x54 }, { 0xf0,0xc0,0x64,0xd1,0x9d,0xe8,0x60,0x2b,0x60,0xe7,0x3e,0xea,0xfe,0x32,0xb8,0x6f,0xf9,0x54,0x8d,0x2d,0xf8,0x0a,0x2d,0x70,0x69,0xd4,0x5a,0xc9,0x85,0x97,0x8e,0x36 }, { 0xf5,0x2d,0xba,0x28,0x58,0x64,0x2c,0xb3,0x51,0x5f,0xa5,0x90,0x16,0x5c,0x9c,0x8b,0x15,0x29,0xb3,0x6c,0x70,0xcb,0x09,0xd1,0xdc,0x5c,0x94,0xec,0x46,0x53,0xc6,0x42 }, { 0x75,0x09,0x0f,0xa5,0xad,0xe1,0xc5,0x56,0x47,0xee,0xff,0x18,0xae,0xbf,0xc8,0x0f,0xbb,0xab,0xc8,0xdc,0x04,0xf9,0x6c,0x57,0xcb,0xbd,0x42,0xbc,0x43,0x78,0xb6,0x3b }, { 0xba,0x39,0x7a,0x11,0x0e,0x55,0x02,0xdd,0x75,0x69,0x4d,0xf8,0x4c,0xbd,0xac,0x21,0x6f,0x7d,0x74,0xc6,0xb3,0x51,0xf0,0x28,0x44,0xcf,0xb5,0x62,0x8f,0xf7,0x36,0x1e }, { 0xbd,0xfe,0x4c,0x01,0xd6,0xd9,0x7c,0xc5,0x90,0x8b,0x63,0x3a,0x57,0xac,0x52,0x32,0x4f,0x48,0xe5,0x1c,0xcb,0x9b,0x80,0x05,0x63,0xcf,0x3e,0xc2,0x30,0x35,0x92,0x30 }, { 0x1c,0x4e,0xe8,0xaf,0xfb,0x88,0x2c,0xe8,0x61,0xe1,0xaa,0xbb,0x54,0x38,0xb1,0xc6,0x43,0x9b,0x84,0x84,0x99,0x26,0x87,0xdf,0x62,0x49,0x4e,0xdd,0x2a,0x9e,0x5e,0x15 }, { 0x58,0x0a,0xd8,0x02,0xda,0xeb,0x21,0x58,0x35,0x1e,0x2e,0x5f,0xc6,0x3e,0xcd,0xfc,0x9f,0xfe,0x72,0x8c,0xe7,0x15,0x9b,0xf3,0x29,0x7b,0x77,0xbf,0x55,0x35,0x94,0x78 }, { 0x9a,0x96,0xd4,0xec,0x2a,0x9c,0xe7,0xe3,0xb6,0x71,0x5d,0xf0,0xd3,0xec,0xf9,0x75,0x88,0xe2,0x9b,0xfc,0x3f,0x2e,0xad,0x24,0xe6,0xae,0xba,0x30,0xe3,0x89,0x32,0x36 }, { 0xfb,0xa4,0xdb,0x97,0x00,0x35,0xe5,0x91,0xe0,0x06,0x14,0x78,0x39,0xac,0x32,0xb2,0xd7,0xeb,0x3d,0x9d,0x87,0x08,0x37,0xcb,0x75,0x16,0xda,0xae,0x9e,0x60,0xdd,0x2f }, { 0xfc,0x27,0x3c,0x86,0xd5,0xdb,0x2e,0x42,0xd9,0x78,0x2d,0xc4,0x93,0xaa,0x4b,0x6e,0x82,0xc4,0xba,0x27,0x3e,0x51,0x2d,0xc3,0x3a,0xbd,0x49,0xfc,0xab,0xc8,0x71,0x0c }, { 0x69,0xaf,0xdb,0xf5,0x99,0xc6,0xa3,0xb7,0x15,0x4d,0x8b,0x6d,0x74,0xf4,0xe7,0x97,0x13,0xf4,0x4e,0x55,0xcb,0x56,0xe2,0xdb,0x1b,0x4d,0x20,0x78,0xcf,0x16,0xdd,0x36 }, { 0xe3,0x22,0x42,0xf5,0x18,0x27,0xd8,0x60,0x5f,0x85,0x08,0xa0,0x24,0xc1,0xd0,0x6e,0x7d,0x5f,0xda,0x94,0xb9,0x2d,0xc8,0x9d,0x94,0xf0,0x82,0xd0,0x4f,0x4f,0x5b,0x69 }, { 0xb3,0x4a,0x83,0x5a,0x97,0x33,0xd4,0x84,0xdf,0xb4,0x73,0x65,0x64,0x9e,0x14,0xdc,0x96,0x12,0x39,0x48,0x9e,0xc2,0x62,0x07,0x1f,0x8e,0x4d,0x8e,0xbc,0x93,0xee,0x7a }, { 0x3b,0x00,0x96,0x02,0x5e,0x00,0x22,0x44,0xc6,0x90,0x06,0x41,0xb4,0xde,0x39,0xe8,0xff,0x05,0xcf,0xb3,0xdf,0x99,0xe7,0x53,0xf1,0x3c,0x14,0x42,0xd5,0xaa,0xfd,0x79 }, { 0x58,0x0e,0xe1,0x30,0x1a,0x83,0x10,0xdd,0x3d,0xd3,0xa6,0xe4,0xbc,0xf8,0x1d,0x32,0x57,0xde,0xd5,0xde,0xb8,0x63,0x5a,0xb5,0x18,0x50,0x90,0x4a,0x96,0x3e,0x44,0x20 }, { 0xbe,0x13,0x59,0x56,0xa9,0x62,0x07,0x90,0xaa,0xa9,0x54,0xd9,0x26,0x34,0x8b,0xad,0x6b,0x99,0xbf,0x5d,0x6a,0x07,0xdc,0x9a,0xd8,0x18,0x39,0xac,0xde,0x56,0x5c,0x2a }, { 0xfc,0xff,0x60,0x5a,0xe9,0x8b,0x03,0xea,0xda,0xeb,0x87,0x52,0xad,0xf5,0xd9,0x59,0x72,0xf9,0xfa,0x89,0xed,0x06,0x3d,0xd3,0xd9,0xf1,0xb2,0xba,0xb1,0x9c,0x11,0x0e }, { 0x40,0x81,0xa0,0xef,0x74,0x4f,0x6c,0x9b,0x01,0xdf,0xd7,0x8f,0x5b,0x5b,0x18,0x38,0x6a,0xa4,0x58,0xd1,0xaa,0x63,0xe9,0x36,0x7d,0x01,0x97,0x44,0xa5,0x4e,0x52,0x46 }, { 0x67,0x93,0xc5,0x68,0x12,0xa6,0x6b,0x01,0xad,0xd7,0x7d,0xbc,0x98,0x33,0xe8,0x61,0xd6,0x22,0x7e,0x83,0x2c,0xe3,0x01,0xed,0x40,0x86,0x0e,0x77,0xc7,0xa2,0x80,0x3f }, { 0x9c,0x3c,0xb1,0x17,0x60,0x97,0x75,0x88,0xdd,0xe4,0x66,0x35,0x35,0xc3,0xb7,0x47,0x65,0x3f,0x58,0x46,0x31,0x7a,0xb2,0xed,0xdc,0x26,0x66,0x07,0xb4,0xe3,0xc2,0x33 }, { 0x5c,0x14,0xe3,0x22,0x24,0xfb,0x92,0x6b,0xa4,0x46,0x95,0x5d,0x85,0x4a,0xaa,0xab,0x51,0xe4,0xf5,0xa6,0x16,0xb7,0x4e,0x85,0x32,0xbd,0x42,0xaf,0x3c,0x07,0x77,0x4e }, { 0x57,0x62,0x0c,0xf1,0x06,0xb8,0x6e,0x88,0x74,0x22,0x77,0xcf,0xd7,0x79,0xd5,0xf2,0x2f,0x4d,0xb0,0xe9,0x14,0x80,0x46,0xdc,0x92,0xd5,0x0c,0xe8,0xd2,0xd5,0x19,0x42 }, { 0x50,0x78,0x5d,0xc6,0xab,0x78,0x82,0xc3,0xd6,0x5a,0x42,0x93,0xa9,0x03,0x1b,0x10,0x0b,0xc7,0x0b,0xf7,0xe7,0xc9,0x0b,0x54,0x0e,0xca,0xb5,0x0b,0x06,0xe4,0xd9,0x03 }, { 0xe3,0x61,0x31,0x92,0xb8,0xad,0xf9,0x49,0xf2,0x14,0xa4,0x72,0xb2,0x8f,0x2e,0x6b,0x4b,0x42,0x4b,0xf0,0x29,0x3e,0x7b,0xcf,0x7b,0x09,0x4e,0x83,0xe5,0x8b,0xff,0x0f }, { 0x2e,0x44,0xbb,0xb2,0xa4,0x22,0xb2,0xf9,0x46,0x74,0x67,0x89,0x8b,0x41,0x71,0xd9,0x75,0xa2,0x5c,0xa5,0xf6,0x80,0xed,0x56,0xd5,0x6e,0x05,0xc8,0xce,0xdf,0x43,0x79 }, { 0x4d,0x3b,0x90,0x6a,0x89,0xf1,0xab,0x5c,0x60,0xd3,0xb3,0x2f,0x0e,0x98,0xeb,0x82,0xeb,0x9d,0x81,0xf5,0x22,0x42,0x3c,0x7e,0xfe,0x31,0x33,0x61,0x4e,0xc8,0xee,0x51 }, { 0x25,0xe8,0xac,0xfd,0x85,0x33,0x6e,0x8f,0x78,0x4d,0xba,0x7f,0xfd,0x8a,0xf9,0x0d,0x4e,0xe4,0x5e,0x00,0xa6,0xab,0x07,0x0b,0x51,0x1f,0xa5,0xba,0x4f,0x43,0x54,0x7f }, { 0x69,0x91,0x59,0x31,0xdb,0x58,0x7b,0x44,0x20,0x93,0xd7,0x8a,0xce,0x4d,0x8e,0xa8,0x02,0x6f,0x57,0xaf,0xa8,0xf6,0x8d,0x1c,0xbe,0x66,0x72,0xbe,0x60,0x92,0xb9,0x39 }, { 0xb3,0x91,0xf9,0xa2,0xc4,0x9b,0x06,0x01,0xf7,0x15,0xeb,0xbe,0x4b,0xba,0xe0,0xc2,0x44,0xe4,0x06,0xf8,0xd7,0x9d,0x47,0xd1,0x41,0x90,0x49,0xe2,0xb4,0xcb,0x73,0x30 }, { 0xeb,0xf8,0xaf,0xb1,0x88,0x33,0x12,0x1a,0x58,0xc2,0xc4,0xb8,0x91,0xda,0xb3,0x67,0x7f,0x6c,0xe2,0xb5,0x57,0x37,0x89,0x5f,0x66,0xff,0x93,0x9a,0xc6,0xcc,0x89,0x44 }, { 0xe7,0x35,0x1d,0x0a,0x3e,0x30,0x0f,0xa0,0x14,0x13,0x43,0x73,0xd4,0xc9,0xd9,0xb8,0xac,0xf5,0x77,0x4c,0xd2,0xe3,0xf7,0xe3,0xef,0x80,0x16,0xfc,0x06,0x52,0x6c,0x5c }, { 0xec,0x1f,0x26,0xc5,0xf8,0x5c,0xda,0xf2,0x49,0xc9,0x4a,0x5a,0x36,0x63,0x69,0xd0,0xce,0xb3,0xbb,0x68,0xb2,0xa5,0x35,0xc1,0x14,0x6f,0xf4,0x94,0x98,0xf2,0x53,0x02 }, { 0xab,0x3b,0x52,0x18,0xf4,0x30,0x5d,0x5f,0x6b,0x1d,0x62,0x82,0x3d,0xbe,0x1c,0x5f,0x35,0xd5,0x0e,0x34,0x37,0x52,0x5b,0x7a,0x96,0xf8,0xf1,0x2a,0x5b,0x0e,0xe6,0x3e }, { 0x1c,0xba,0x70,0x12,0xe7,0xe5,0x8e,0xe3,0x4c,0x12,0x9c,0x64,0x0c,0x65,0xaf,0x00,0x0a,0x8c,0xc0,0x9f,0xbe,0x7e,0x02,0xbe,0x27,0x46,0x9b,0xc2,0xdf,0x18,0xfe,0x37 }, { 0x27,0x20,0x50,0xde,0xf9,0x22,0xf5,0xb2,0xc6,0x81,0x42,0x87,0x7a,0x19,0x1c,0xe7,0xaa,0x91,0x43,0xc2,0x62,0x08,0x72,0x41,0x94,0xa6,0x31,0x92,0x8c,0x09,0xa4,0x50 }, { 0xf6,0x86,0x62,0x0b,0xb4,0x6e,0x33,0xbc,0xc4,0xb9,0x58,0xc5,0x6c,0x5f,0xea,0x3a,0x01,0x06,0xdc,0x71,0x10,0xb9,0xf9,0x18,0xef,0xaf,0xdd,0xb2,0x07,0xc3,0xde,0x42 }, { 0x18,0x48,0x93,0x9a,0xae,0x94,0x37,0xbc,0x19,0x9d,0x45,0xbf,0x85,0x66,0x80,0xdd,0x81,0xac,0xa5,0xbe,0x19,0x19,0x7c,0xbc,0xd9,0x5f,0x61,0x84,0x03,0x17,0xaf,0x5a }, { 0x24,0xff,0x9d,0x0f,0xd4,0x94,0x86,0xf6,0x71,0x5b,0x73,0x5f,0x19,0x37,0xdd,0x9c,0xa7,0x32,0x51,0x85,0x2d,0x0b,0x89,0xeb,0x5a,0x99,0x07,0x6d,0x1c,0xda,0xe0,0x72 }, { 0x17,0x72,0x33,0xca,0x99,0x7b,0x1d,0x26,0xb7,0x1d,0xdd,0x42,0x75,0xbe,0xe4,0x05,0x43,0x9f,0xcd,0x9d,0xcd,0x6e,0xe0,0x4b,0x67,0x1a,0x98,0xf6,0xa1,0x5a,0x97,0x05 }, { 0xc5,0x43,0xb6,0x10,0x62,0x4c,0x80,0x66,0x89,0x73,0x93,0x41,0x23,0xbe,0x11,0x64,0x4b,0xc0,0x9e,0x49,0x8d,0xc1,0x4c,0x22,0x31,0x4a,0x3d,0xfc,0xf5,0x7d,0xac,0x7e }, { 0xa0,0xec,0x00,0x94,0x45,0xac,0x6e,0xe6,0xb2,0xcd,0x72,0x07,0xf5,0x67,0x34,0xe7,0x26,0x42,0x35,0x8d,0x19,0x78,0x8d,0xcc,0x61,0x18,0x5b,0x0a,0x29,0x1f,0xce,0x42 }, { 0x10,0x43,0x48,0x0e,0x0c,0x83,0xba,0x61,0xee,0x97,0x93,0x88,0x5d,0xd2,0xf0,0x48,0xab,0x88,0xd1,0x18,0xd6,0x47,0x20,0xd1,0xd0,0x2a,0x07,0x99,0x78,0x48,0xc0,0x2f }, { 0x28,0xce,0x29,0x46,0x46,0x4b,0x58,0xb0,0x72,0x88,0x8a,0x9c,0xc5,0x49,0x19,0xf9,0xac,0xf9,0x25,0x66,0x21,0xce,0xa6,0x15,0x16,0x05,0x07,0xba,0xf9,0xf1,0x64,0x45 }, { 0xb3,0xbb,0xa4,0xa1,0x76,0x91,0x0a,0xf5,0xd0,0x40,0x09,0xa4,0x82,0xaa,0x87,0x3d,0x5b,0x0b,0x50,0x39,0x0d,0x2b,0x45,0x79,0x97,0x8c,0xff,0x51,0x25,0x98,0xcf,0x38 }, { 0x5f,0x53,0x61,0x36,0x87,0xc5,0xff,0x87,0x6a,0xee,0xb4,0xe9,0x09,0x99,0x1e,0x87,0x99,0x4c,0xcc,0x02,0x5c,0x15,0xd6,0x59,0x84,0x91,0xbe,0x3c,0x69,0x4a,0x55,0x31 }, { 0xf8,0x88,0xcf,0x9a,0x88,0xf3,0x02,0xb3,0x97,0x4d,0x7f,0x57,0x21,0xcd,0x9d,0xe1,0x0d,0x98,0xe4,0x81,0xbc,0x21,0x3d,0xf1,0xbe,0x1e,0x3b,0x4d,0xc6,0xda,0xd7,0x50 }, { 0x2b,0x76,0x2e,0x7d,0x28,0x0d,0x89,0xfa,0xcf,0xea,0x49,0xd7,0xcb,0x81,0x06,0x69,0x92,0x50,0xae,0x1b,0x3a,0x8c,0xb4,0x24,0x50,0x9e,0xfc,0xed,0x72,0xf1,0x26,0x3d }, { 0x83,0x90,0x63,0xf2,0x49,0x98,0x37,0x20,0x13,0x43,0xc9,0x00,0x2d,0xa6,0xab,0x4a,0x96,0x8c,0x8f,0x09,0x76,0x37,0x11,0x91,0xfb,0x92,0x00,0xb9,0x35,0x54,0xfc,0x14 }, { 0x60,0xea,0x1c,0x43,0x76,0x57,0x5f,0xcd,0x8b,0xdc,0xc7,0xb8,0xec,0x88,0xb1,0x27,0xc9,0x36,0x86,0xdd,0xe7,0x00,0x5a,0xc7,0x20,0x45,0x4e,0xc8,0x28,0x26,0x65,0x2e }, { 0x38,0xa2,0xbb,0xf6,0xc6,0x3b,0xfe,0xe5,0x5c,0x7e,0x9a,0x73,0xaa,0xc1,0x4e,0x53,0x24,0x48,0x18,0xee,0x00,0x87,0x40,0x87,0xdb,0x51,0x95,0xfc,0x20,0x70,0x2a,0x18 }, { 0xb0,0x31,0xd5,0x9b,0xbb,0x08,0x42,0xcc,0xf7,0x6a,0xdc,0xcc,0x15,0x51,0x0d,0x26,0xe0,0x2e,0xbf,0x45,0x85,0x47,0xe4,0x12,0x29,0xad,0x06,0x7a,0x84,0x6f,0x46,0x05 }, { 0x30,0xb8,0x12,0x14,0x53,0xcc,0x1d,0xf0,0x2c,0x6e,0x80,0xa4,0x18,0xb8,0xc6,0x4a,0xe4,0x1e,0x62,0xd3,0xd1,0x20,0x8b,0x90,0x62,0xdf,0x40,0x46,0xa2,0x0a,0xd2,0x51 }, { 0xd6,0xeb,0x6a,0x63,0xe5,0xff,0xa5,0x24,0x7e,0xc6,0x36,0x5f,0xf5,0x71,0x02,0xfc,0xbe,0xed,0x3b,0xe1,0xb2,0xdd,0xa2,0x31,0xce,0x53,0x1d,0xbd,0x65,0x6f,0xc7,0x4b }, { 0x56,0xd1,0x53,0xfe,0x49,0x3d,0xae,0x27,0xf4,0x7e,0xc7,0x74,0x61,0x13,0x33,0x7a,0x80,0x38,0x5d,0x72,0xa8,0x33,0xd4,0x8e,0x4f,0xa0,0xb3,0x55,0x2f,0x90,0xc4,0x49 }, { 0x75,0x0d,0x01,0x35,0x40,0x65,0xd8,0x7b,0x6d,0xf7,0xe6,0xeb,0x82,0x53,0x3d,0x68,0x2a,0xfa,0x9b,0x6a,0x54,0xda,0x1b,0xf8,0x0b,0x4c,0x49,0xcc,0xb7,0x6e,0xb9,0x1f }, { 0x15,0xa5,0x12,0x0d,0xac,0x08,0x1d,0x01,0xc3,0x16,0x34,0xab,0x01,0x94,0x97,0xcb,0xb5,0x4c,0xee,0xa9,0xc7,0x76,0xf7,0xea,0xa1,0xd7,0xf9,0x1c,0x97,0xc0,0x7b,0x49 }, { 0xef,0x7d,0xa3,0x73,0x97,0x69,0x97,0xf3,0x22,0xc1,0xac,0x9e,0xe0,0xd5,0x32,0x92,0x40,0xe9,0xa0,0x0d,0xd1,0xce,0xe4,0x58,0x5b,0x92,0x2e,0xfe,0x4b,0x00,0xe6,0x7b }, { 0x50,0xd8,0xf4,0x18,0x00,0x42,0xc2,0x8c,0xe9,0xe6,0x61,0x1b,0x87,0x90,0xe4,0xb1,0xa6,0x17,0xb5,0x60,0x51,0x9b,0x58,0xab,0x17,0xd9,0x36,0xb9,0x0e,0xa7,0x23,0x05 }, { 0x6f,0xb0,0x47,0xe6,0xee,0x6c,0x97,0x6e,0xbb,0xf1,0x1d,0x32,0x89,0x80,0x17,0xcd,0xc9,0xb5,0x04,0x10,0x67,0xe8,0xb3,0x5a,0x05,0xbf,0xff,0x5d,0x0f,0xe4,0x51,0x78 }, { 0x13,0x1c,0x00,0x4d,0x4b,0x03,0x5a,0x0c,0x13,0x35,0x36,0xa7,0x74,0x3f,0x5a,0x4a,0xe9,0xa2,0xa4,0xd9,0x43,0x02,0x37,0x6b,0xf0,0x61,0x0c,0xa8,0xd1,0x08,0x12,0x37 }, { 0xeb,0x1d,0x39,0x2f,0xe4,0xc7,0xa3,0x9b,0x81,0x04,0xde,0x6c,0xa5,0xa9,0x64,0xe2,0x17,0xf9,0x36,0x7a,0x7c,0x19,0xfb,0x4a,0x71,0xd0,0x57,0xb9,0x93,0x29,0x30,0x10 }, { 0xbc,0x04,0x7b,0xcf,0x06,0x8b,0xb0,0x94,0x94,0x5b,0xbc,0x63,0x09,0xc8,0x81,0xd4,0xd0,0x4a,0x76,0x30,0x23,0xfc,0xb1,0x8c,0x41,0x96,0x96,0xa8,0x9c,0xba,0xef,0x70 }, { 0x7a,0xbb,0xb2,0x07,0x26,0xa2,0x48,0x98,0xe4,0xa4,0x1d,0xb8,0x62,0x6f,0x77,0x86,0x5c,0x12,0x91,0x51,0x76,0xbf,0x72,0x3a,0xdf,0x0a,0x00,0x86,0x45,0xc9,0xc4,0x37 }, { 0xf7,0xe2,0x0f,0xc7,0x61,0x11,0xd7,0x70,0xdd,0xba,0x05,0x00,0xdb,0x3d,0x35,0x3a,0x75,0xd7,0xc3,0x0b,0x8c,0x6d,0x18,0xe5,0xd6,0xf8,0x6b,0xd4,0x84,0x3f,0xaf,0x7b }, { 0x63,0x6d,0x06,0x76,0xf5,0x9e,0x0b,0x65,0xd5,0xf8,0xfb,0xc7,0x28,0xe9,0x30,0x24,0x77,0x23,0xed,0x46,0xbc,0xf4,0x3b,0xdf,0xd3,0x0f,0x0d,0x0a,0x22,0x3c,0x16,0x2e }, { 0xaa,0x10,0x7a,0x84,0xcc,0xce,0x7d,0x1e,0x3f,0x49,0xb8,0x9c,0xaa,0xd9,0xad,0xe3,0x34,0x1a,0xdc,0x4c,0x8a,0x63,0xd3,0xed,0x06,0x1a,0x68,0xe7,0x51,0xc4,0xa9,0x7b }, { 0xaa,0x85,0x14,0x5e,0xab,0x0e,0x07,0xc4,0x39,0x65,0x84,0xaf,0xe3,0x41,0x40,0x5a,0x61,0x26,0x75,0x6a,0xfc,0x9f,0x28,0x2b,0xf7,0x12,0x46,0x1b,0xaf,0xf9,0xa7,0x7b }, { 0x6d,0x17,0x40,0x89,0x91,0xec,0xe7,0x17,0x3f,0xb9,0x9c,0xe7,0x13,0x10,0xbc,0x9b,0x8f,0x73,0xdf,0x0a,0x0e,0x35,0x38,0x92,0x26,0x84,0x8e,0x4f,0xf3,0x89,0xca,0x6d }, { 0x4b,0x3f,0x92,0x21,0x29,0x74,0xb4,0x2c,0xf7,0xc2,0x25,0xdf,0x2f,0x06,0x5d,0xfa,0xae,0xcc,0x2b,0xdc,0x82,0x7e,0x32,0x10,0x11,0x87,0xde,0xaa,0xf1,0xef,0x24,0x6f }, { 0x81,0x14,0xb5,0x79,0x9f,0x3c,0xb2,0x30,0xb8,0xd2,0x8b,0x5d,0x7a,0x31,0xae,0xd5,0xb3,0x3a,0xf1,0xd0,0x1c,0x56,0x0f,0x7d,0xbc,0x7c,0x80,0xae,0x4d,0x1d,0x4f,0x3b }, { 0x9b,0x76,0x43,0xff,0xbd,0x62,0x3e,0xa1,0xd1,0x2a,0xc5,0x47,0xf9,0xe7,0xbe,0x01,0xeb,0xac,0x81,0x74,0xfc,0x9f,0x25,0x02,0x8d,0x37,0x92,0xd8,0x62,0xb3,0x3f,0x65 }, { 0xe4,0x6e,0x66,0xbb,0x7b,0x3c,0x72,0x3d,0xf3,0x30,0x35,0x70,0xe0,0xa7,0xf2,0x46,0x6a,0x77,0x02,0x1d,0x84,0x34,0xf5,0x22,0x21,0x6b,0x98,0xf5,0x34,0x88,0x11,0x0e }, { 0x0f,0xab,0xf6,0x0e,0x13,0xdd,0x78,0x25,0x0f,0xbe,0x70,0xc6,0xc8,0x90,0x04,0xbe,0x56,0xce,0x50,0xf7,0x0f,0x4a,0x05,0x45,0x64,0xa5,0x02,0x6b,0xb1,0xdf,0x9b,0x33 }, { 0xc0,0x63,0x8b,0xd5,0xd2,0x60,0x42,0xaf,0xbf,0xc5,0x87,0x89,0x61,0x63,0xcd,0xd2,0x23,0x02,0x52,0x9b,0x87,0xb8,0xd4,0xa8,0x49,0x58,0xc2,0x53,0x26,0x73,0x63,0x62 }, { 0x3e,0xfd,0x16,0x1e,0xb6,0xb2,0x91,0x95,0x04,0x5a,0xe3,0x32,0xdd,0xac,0x20,0xd8,0x3c,0xa8,0x5c,0xca,0x3b,0xbc,0x4b,0x6b,0x9b,0x80,0xa5,0x28,0x6c,0x7c,0x63,0x7e }, { 0x6e,0x6f,0x2d,0xba,0x61,0x68,0xfa,0xe4,0x1d,0xcf,0x69,0x3d,0x90,0x3c,0xe0,0x03,0xe2,0xdc,0x19,0xd8,0xc5,0xb1,0xa6,0x0e,0x9c,0x53,0x2f,0xb5,0xa0,0x89,0x87,0x0a }, { 0xc6,0xea,0xcf,0xd6,0xa5,0x0d,0x90,0xca,0x6b,0x54,0xd2,0x16,0x01,0x97,0xca,0xdd,0xcd,0xf2,0xfc,0xed,0x2f,0x3f,0x1f,0x8c,0xd0,0xed,0xc2,0x07,0x0f,0x9e,0x51,0x39 }, { 0x62,0xed,0x46,0x08,0x21,0x33,0x9b,0xd9,0xf2,0x17,0x12,0x7a,0x85,0xb7,0x78,0x2e,0x8b,0x30,0xab,0xa5,0x68,0x33,0xbb,0x16,0x1e,0x9d,0xc1,0x0e,0x1e,0x06,0x85,0x18 }, { 0x9a,0xba,0x36,0xeb,0xe4,0xc7,0x81,0x26,0x5d,0x19,0x2e,0x16,0x65,0x56,0x87,0xfb,0xcc,0xa0,0x3b,0x1d,0xa2,0x25,0xb2,0x02,0x43,0x49,0x1f,0x7a,0xb6,0x87,0x1e,0x72 }, { 0x73,0xb2,0xae,0x02,0x28,0x78,0xef,0x68,0x8f,0xe6,0x68,0xb7,0x3e,0x8b,0x38,0x48,0x6d,0xbb,0x3e,0x7f,0xeb,0x56,0xf1,0xd7,0x1c,0x7f,0x7d,0x75,0xca,0xb1,0xc9,0x78 }, { 0x34,0x5e,0xef,0xc1,0x61,0x0e,0xbf,0x99,0x4f,0xfe,0x69,0xa5,0xe4,0x3a,0x41,0xc9,0x8e,0xc9,0x2b,0x80,0x84,0x10,0x2b,0x95,0x91,0xdb,0x24,0xd1,0xd2,0x34,0xa6,0x62 }, { 0x9c,0x57,0xeb,0xb2,0xe8,0x58,0xc1,0xda,0x0b,0xf8,0xe7,0x96,0x6c,0xd5,0xd2,0x49,0x4e,0xe4,0x7d,0x06,0x9d,0x42,0x79,0x12,0x42,0xe8,0x2a,0xa5,0xcf,0x95,0xb8,0x5f }, { 0x58,0x7d,0x13,0x06,0x3a,0xd4,0xd1,0x59,0x21,0x6c,0x10,0x35,0x0b,0x76,0x02,0x8e,0x99,0xdb,0xc5,0x53,0xa3,0xeb,0x1a,0xa8,0x4e,0x49,0x54,0xa6,0x65,0x8b,0xfc,0x43 }, { 0x9a,0x52,0xd8,0x40,0x02,0xc9,0x39,0x21,0x5b,0xe1,0xbd,0x24,0x3c,0x4a,0xb0,0x95,0x14,0x6a,0x9b,0xa1,0x7e,0xa1,0x82,0x3c,0x99,0x36,0x2b,0xf6,0x62,0x9a,0x86,0x51 }, { 0xc5,0x6a,0x76,0x7f,0xe4,0x7e,0x54,0x38,0xda,0x8e,0x8b,0x18,0x62,0x32,0x00,0x5e,0xa9,0xbe,0x73,0x87,0x9e,0xac,0x6b,0xf0,0xea,0xc5,0xb0,0x7b,0x43,0x7d,0xee,0x75 }, { 0x1c,0x54,0x53,0x53,0x2a,0x17,0x21,0x5c,0xdd,0xb4,0x06,0x20,0x8b,0x70,0x5f,0x15,0x6a,0xf4,0x31,0xd2,0xfd,0x38,0x1b,0xbe,0x1f,0xe7,0x0f,0x60,0x8e,0x63,0x3e,0x5d }, { 0xe2,0x6a,0x8c,0x39,0x47,0xf8,0xa5,0xa1,0xb8,0x60,0x27,0xfa,0x1a,0xa5,0x9d,0xc5,0xf6,0xb1,0x14,0x40,0xc9,0xe4,0x11,0x6f,0x4f,0xc4,0x88,0xb3,0x68,0xd8,0x83,0x41 }, { 0x28,0x1b,0xb0,0x84,0xbc,0xab,0x7d,0x14,0x6d,0xe0,0xc3,0x9c,0x14,0xec,0x63,0x0a,0x43,0x2a,0x39,0x61,0x3e,0x4f,0xf9,0xd8,0xc3,0x06,0x2b,0xa1,0x67,0x2b,0xdb,0x30 }, { 0xbc,0x7c,0x5f,0xd4,0xee,0x39,0xd1,0xe9,0xe7,0x52,0xc6,0x6b,0x2e,0xfb,0x91,0x37,0x84,0x9b,0x88,0xd5,0xd7,0xc7,0xa3,0xbf,0x37,0xb3,0x32,0xb1,0x31,0xbf,0x56,0x1c }, { 0xda,0x27,0xf1,0x4a,0x43,0x51,0xa8,0x60,0x6e,0xae,0xac,0x0d,0x63,0x9a,0x74,0x4e,0xb9,0x38,0x6c,0x76,0x10,0x51,0xef,0x11,0x57,0xd6,0xd6,0x1f,0xb5,0x6d,0x83,0x73 }, { 0xc0,0xb3,0x5b,0x3d,0x31,0x8f,0x85,0x01,0x67,0x85,0xf6,0xe7,0x5a,0xfb,0xbb,0xb9,0x0d,0x61,0x6b,0xe8,0x37,0x81,0x7e,0x66,0x8f,0x3a,0xcd,0xff,0x6c,0xf7,0x0d,0x16 }, { 0xb7,0x7a,0x77,0xf8,0x85,0x2e,0x0a,0x82,0x52,0xc8,0x0d,0xb5,0x22,0x82,0xc2,0x0f,0x0f,0x44,0x1f,0xf1,0x98,0x76,0x30,0xc1,0xa5,0xe3,0x31,0xec,0xa6,0x01,0x08,0x54 }, { 0x8c,0x0e,0xe2,0x63,0x08,0x13,0xca,0x0f,0xa1,0x56,0x03,0xa3,0x76,0x0f,0xca,0x79,0xc0,0xe0,0x8c,0xa5,0x0f,0xb7,0x5a,0x43,0x48,0x3b,0xdb,0xe3,0x8f,0xcb,0x07,0x5f }, { 0xcb,0x66,0x6f,0xd3,0x0c,0x3b,0x93,0x57,0x65,0x3e,0x03,0x33,0xc1,0x3b,0xc7,0x2b,0xca,0x9b,0xc8,0xf9,0xea,0x0e,0x97,0x81,0xe6,0x12,0x0f,0xfb,0x00,0x4f,0x2a,0x17 }, { 0x91,0x3d,0xff,0x4b,0x24,0x28,0xc9,0x3c,0x2a,0x3e,0x3c,0x23,0xd3,0x6b,0x3c,0x71,0x50,0x58,0x06,0x8b,0x4a,0xa8,0xbd,0x27,0xe9,0x77,0x8d,0x06,0x27,0x8b,0xda,0x3f }, { 0x48,0x44,0xb7,0x36,0x90,0xf5,0x4f,0xa7,0x78,0xba,0x7a,0xb7,0x94,0xac,0x8d,0x97,0x5f,0xd4,0xf8,0x34,0x4a,0xa6,0x3c,0xff,0x13,0xa9,0x9c,0x8b,0xb8,0xf4,0x01,0x1f }, { 0xf5,0xc6,0x76,0xdb,0xdb,0x88,0x5a,0x94,0x13,0x8a,0x1a,0x5f,0x6d,0x46,0x29,0xee,0xc5,0xa0,0xc3,0xbd,0xfd,0xde,0x08,0x80,0xc9,0xc9,0x99,0x2f,0x5f,0x4e,0x34,0x44 }, { 0x27,0x75,0x16,0xb2,0xe2,0x10,0x00,0x48,0x03,0x7b,0x22,0x96,0xfb,0x2d,0x93,0x6e,0x72,0x7f,0xba,0x9d,0xf8,0x99,0xdc,0x98,0xe7,0xb4,0x99,0x9a,0x5c,0xa6,0x8f,0x43 }, { 0x1e,0xad,0x26,0xd6,0x05,0xdd,0xb9,0xb0,0x26,0x72,0x23,0x82,0x0a,0x39,0xe3,0xe1,0x8e,0xaa,0x47,0xdb,0xa3,0xff,0x86,0xc2,0xaf,0xdc,0xce,0x80,0x8d,0xab,0x80,0x49 }, { 0x59,0xb8,0x2c,0xd6,0x51,0x72,0x7b,0x35,0x57,0x54,0x20,0x29,0x2a,0x61,0xb5,0x85,0x6b,0xd7,0x02,0xfc,0x83,0xeb,0x10,0xbf,0x5d,0xb6,0x5e,0x5e,0x85,0x89,0x00,0x78 }, { 0xa0,0x9e,0x63,0x79,0x2e,0xa5,0x54,0x5a,0x36,0x30,0x11,0x04,0xf9,0xc9,0x82,0x0d,0x2e,0x1c,0x6c,0x0a,0x58,0x0f,0xbc,0x0d,0x46,0x61,0xa9,0x10,0x5f,0x81,0xcc,0x0a }, { 0x63,0x92,0x77,0xb6,0x6a,0xdd,0xf0,0x4e,0xc4,0x11,0xd4,0x4f,0x92,0x11,0x98,0x0b,0xeb,0x32,0x7a,0xf2,0xc6,0x79,0x38,0xe0,0x26,0x90,0x0b,0x6d,0xf7,0x3d,0x41,0x24 }, { 0xf0,0x3b,0xfd,0x64,0x94,0x29,0x9b,0x43,0x8e,0x0d,0x9f,0x52,0xfc,0x6f,0xf1,0x87,0x26,0xdd,0x4b,0x14,0xd9,0x68,0xad,0x94,0x4b,0x5e,0x59,0x35,0x91,0xa3,0x53,0x05 }, { 0x1b,0x41,0x5f,0xaf,0x1d,0xbb,0xda,0x5d,0x5d,0x93,0xd5,0x52,0xe6,0x60,0x1f,0xfe,0xe3,0x53,0xed,0x76,0x90,0x41,0x72,0xd1,0xda,0xcb,0xd2,0xc4,0xc1,0xad,0xfa,0x19 }, { 0x09,0x2a,0x46,0xc0,0x45,0x57,0x5e,0xe1,0xf6,0xc8,0x64,0xae,0xdc,0x3d,0x63,0xfc,0x71,0x06,0xf8,0x46,0xa9,0x13,0xb4,0x4e,0x94,0x54,0x0a,0x73,0xa8,0x64,0x33,0x4c }, { 0x8e,0xc3,0x40,0xc1,0x46,0x9f,0x0d,0x3c,0xb3,0x94,0xce,0xc0,0x19,0x2a,0x15,0x98,0x42,0x25,0xf4,0x87,0x00,0x44,0x09,0x52,0x22,0x4f,0xb1,0x8c,0x4a,0x83,0xbf,0x72 }, { 0xa1,0x67,0x46,0x58,0x61,0xb1,0xee,0x6e,0x42,0x59,0x52,0xd5,0xbf,0xbb,0xb0,0xd4,0x8c,0xe9,0x64,0xfb,0x13,0xf2,0xbb,0x63,0x74,0xf2,0xd1,0xcf,0x70,0xf6,0x22,0x54 }, { 0x63,0xcc,0x30,0x3e,0xea,0x0c,0x6b,0x7b,0xd8,0xc4,0x68,0x6b,0x03,0x92,0xe9,0x37,0xff,0x8c,0xb6,0x99,0x7e,0xa8,0x7d,0xe5,0xd6,0xbd,0xb3,0x9a,0xce,0x17,0x70,0x2c }, { 0x1a,0xbe,0xfc,0x15,0x6b,0x0c,0x95,0x30,0xe7,0x22,0xdc,0x84,0x91,0xd7,0xcb,0xbe,0x97,0x2f,0x85,0x8d,0x1a,0x72,0x69,0xd3,0xcc,0x78,0xc1,0x7b,0x14,0xe3,0x84,0x27 }, { 0x32,0xc6,0xc4,0xe0,0xd3,0x24,0xe2,0x5e,0xed,0x4f,0xe0,0x8f,0xd9,0xe0,0x01,0xb8,0x75,0x53,0x9a,0xb5,0xd7,0x03,0x25,0x7b,0x06,0xdd,0x58,0xcd,0x0e,0x1f,0x45,0x49 }, { 0xa0,0x44,0xa0,0x03,0x9b,0xd8,0x04,0x03,0x69,0x5f,0xf4,0x6d,0xc5,0xc5,0x00,0x15,0xf1,0x35,0xa8,0xc3,0xd0,0x5d,0x71,0x6e,0xa6,0xb6,0x43,0x2a,0x68,0xf0,0x04,0x43 }, { 0xe8,0x0b,0x7e,0xc9,0xa1,0xc2,0x0b,0x24,0x38,0x94,0x92,0x39,0xf5,0x22,0xcb,0x2b,0xae,0x5e,0x66,0x65,0xd5,0x27,0x40,0xa0,0xdf,0x10,0xae,0xd1,0x70,0x70,0x79,0x48 }, { 0x8b,0x0e,0xaf,0x61,0x87,0x93,0xfd,0xf5,0x50,0xf9,0x63,0xae,0x7e,0x88,0x73,0x73,0x29,0x87,0x1e,0x27,0xfa,0x13,0xc0,0x6e,0x0b,0xbd,0x3c,0xb7,0xdf,0x54,0x1e,0x4d }, { 0x9b,0x8b,0x00,0x94,0xac,0x6f,0x8e,0x91,0x9a,0x2f,0x33,0x38,0x2f,0x4d,0xb4,0x6c,0x88,0xe0,0xd3,0x43,0xd1,0xed,0x66,0xe1,0x33,0x96,0x1d,0xa7,0xaa,0x3f,0xfa,0x73 }, { 0xef,0xe0,0x90,0xfe,0xe4,0x48,0xef,0xf1,0x4d,0x48,0x2f,0x9d,0xbc,0xfc,0x8b,0x53,0xff,0xfa,0xe7,0xb0,0x31,0x7c,0x30,0x5a,0x05,0x4e,0xe1,0xdd,0x7d,0x08,0xed,0x56 }, { 0x94,0x74,0x24,0xd6,0xe6,0x67,0xb3,0xc7,0x9e,0x71,0xa7,0x8e,0xeb,0x35,0x67,0x66,0xdc,0x94,0x13,0x07,0x16,0x4a,0x79,0xe1,0x58,0x27,0x35,0xbd,0xb5,0x7b,0xda,0x6d }, { 0xc3,0x16,0x22,0xe6,0x2e,0x67,0x2a,0x51,0x12,0x24,0x0b,0x12,0xa8,0xb6,0xcc,0x6e,0x47,0x82,0x87,0x84,0x83,0x51,0x03,0x53,0x02,0x93,0xd8,0xe7,0xf6,0xe0,0x44,0x25 }, { 0xd4,0x1a,0xe2,0x5e,0x04,0x45,0x1e,0x66,0xf8,0xc7,0x50,0x4e,0x77,0x32,0x1c,0xd4,0x51,0xa2,0x41,0xdb,0x0d,0xeb,0xfb,0xd9,0xa5,0x4a,0xa5,0x33,0xba,0x9e,0xe4,0x42 }, { 0x70,0x34,0x5d,0xd1,0xa1,0xc8,0x82,0xab,0x8c,0x32,0xfd,0xf5,0x9d,0xe5,0xf2,0x64,0x23,0x13,0x45,0xbf,0x38,0x34,0x6e,0x18,0x6d,0xc0,0x7b,0xd2,0x63,0x5f,0x54,0x29 }, { 0x0b,0xa6,0x32,0xf6,0x67,0xb5,0x0c,0x18,0xfb,0x3f,0x65,0x73,0xd7,0x46,0x82,0x6c,0x48,0x59,0xf8,0x93,0x01,0xbf,0xaa,0x24,0xce,0xfe,0xec,0x83,0x16,0xe6,0xab,0x29 }, { 0x99,0x56,0xf4,0xbc,0xa6,0x6b,0xe9,0x2e,0x9a,0x1c,0xf5,0x94,0x43,0x25,0xf8,0xb8,0xe0,0xce,0x08,0xec,0x66,0x72,0xfe,0xf2,0xd3,0x9d,0x35,0xd3,0x14,0xd3,0x58,0x76 }, { 0xb0,0x40,0x71,0x14,0x25,0x0f,0xd7,0x6f,0xbf,0x98,0x24,0xf7,0xec,0xbf,0xd9,0xad,0x0a,0xa9,0x87,0xb4,0xf0,0x9d,0x15,0xbb,0xf7,0x43,0x7b,0xe7,0x0f,0x1f,0xbc,0x4e }, { 0x16,0x69,0x29,0xce,0xdf,0x6d,0x8a,0x07,0x7f,0x22,0x54,0x0f,0xa5,0xa2,0x6c,0xdc,0x62,0xac,0xe4,0x3b,0x9b,0x11,0x4d,0x99,0xb6,0x9c,0x1c,0x8d,0x44,0xf4,0x5c,0x1a }, { 0xe2,0x89,0xea,0x78,0xa5,0x83,0x74,0xf5,0x1c,0x55,0x5d,0xb3,0x7e,0xe0,0x7a,0xe5,0x65,0xd6,0xf6,0x70,0xea,0x50,0x52,0xfd,0xea,0xac,0xdd,0x41,0xb8,0xbb,0x6d,0x1e }, { 0x96,0x61,0x80,0xac,0xbb,0x42,0xf5,0xcb,0x61,0x7f,0xfb,0x57,0x44,0x06,0xdd,0x8c,0xe0,0x73,0xc7,0x69,0xa3,0xba,0x21,0x40,0xf0,0x91,0x64,0x39,0xc6,0xfc,0x32,0x31 }, { 0x58,0x28,0xf5,0x95,0x73,0xba,0x6b,0x9e,0x30,0xe6,0x92,0x97,0xac,0xea,0x42,0xe1,0x2f,0xd7,0x65,0xbf,0x25,0x74,0x52,0xf5,0xc0,0x41,0x82,0x57,0x37,0x94,0x2e,0x3e }, { 0x7a,0xda,0x2b,0xa3,0xaf,0x7d,0x5e,0x17,0xb7,0xb0,0x3c,0xe0,0xbb,0xd1,0x4d,0xe3,0x1c,0xc0,0x16,0x2e,0xa4,0x24,0xd3,0xc2,0xc3,0x5f,0x33,0x59,0xca,0x7f,0x7e,0x50 }, { 0xb1,0xda,0xec,0x98,0x4b,0x4c,0x0e,0x13,0x88,0x47,0x11,0xc5,0x81,0x62,0xe9,0x94,0x19,0x0d,0x43,0x10,0x4c,0x44,0x43,0xc2,0x73,0xe8,0x21,0x8f,0xeb,0xe4,0x5f,0x1d }, { 0x41,0x45,0x68,0x8e,0xac,0x43,0x1b,0xa8,0x2b,0x01,0x4c,0xaa,0x99,0x2f,0xbd,0x70,0xab,0x0b,0xd2,0x2a,0xb8,0x85,0xf4,0x53,0xc0,0x23,0xf9,0xc3,0xe8,0xac,0x5f,0x02 }, { 0xd0,0xab,0x94,0xa6,0x3c,0xf0,0xf3,0x72,0x11,0xc4,0x7f,0x36,0x08,0x4f,0xde,0xe3,0x64,0xd4,0x72,0x16,0x2c,0x1e,0xc5,0x0c,0xa7,0x99,0xdd,0x95,0xef,0xe5,0x2f,0x1c }, { 0xbf,0xe1,0x45,0x68,0x7c,0xb3,0x4d,0x21,0x70,0x3a,0x44,0xbb,0xd8,0x84,0xe2,0x3d,0x63,0xb8,0xf9,0x02,0x86,0xb2,0x42,0xaf,0x15,0xeb,0x05,0x57,0xa6,0xe6,0x13,0x54 }, { 0x77,0x17,0xf4,0x53,0x41,0x49,0x35,0x74,0x7a,0x5d,0x73,0xc9,0xc5,0xb6,0x9f,0xb6,0xd8,0xb4,0xd6,0xd4,0x33,0xa6,0xb1,0x4c,0xf7,0x93,0x21,0xcb,0x89,0x58,0x4d,0x06 }, { 0x46,0xb6,0x93,0xf4,0x10,0x97,0x83,0xf5,0xd7,0x59,0x5a,0x90,0x53,0x9c,0x87,0x0a,0x2e,0xe5,0xb2,0x2c,0x5c,0xe7,0x79,0xf8,0x29,0xa0,0x72,0x51,0xe0,0xe9,0x2f,0x6d }, { 0x65,0xbe,0xa7,0x9b,0x20,0x02,0xbc,0xf1,0x4c,0x24,0x6f,0x30,0x68,0x4f,0xf3,0x96,0x3b,0x51,0x54,0x82,0x3c,0xe5,0x77,0x9f,0xe1,0xd0,0xd8,0x13,0x96,0xd7,0x92,0x5c }, { 0xe2,0x82,0xfe,0xdb,0x5d,0x53,0x3a,0x08,0x34,0x71,0xf6,0xa5,0x46,0x87,0x8f,0x6c,0x88,0xa5,0xdf,0x83,0x88,0x56,0xbe,0x50,0x75,0x0b,0xc2,0x28,0x41,0x65,0x49,0x39 }, { 0x6c,0x23,0x19,0xea,0x2c,0xde,0xc5,0x8c,0xee,0x96,0xce,0x5f,0xdd,0x2e,0x48,0xe4,0x56,0x8c,0x05,0x24,0x5c,0x68,0x42,0xc9,0x26,0xae,0x97,0xaf,0x0d,0x98,0xee,0x45 }, { 0x5a,0x57,0xeb,0x5a,0x64,0x81,0x7f,0xa5,0x54,0x78,0x94,0xd9,0xdc,0x6d,0x54,0x24,0x1a,0x89,0x93,0x42,0x86,0x52,0x04,0xe5,0x0f,0x87,0xa5,0xa6,0xf1,0x20,0x36,0x72 }, { 0x39,0x5a,0x32,0x4d,0x1e,0x57,0xe6,0x3f,0x9a,0xa9,0x9e,0x4f,0x2d,0x0b,0xd8,0xd2,0xd2,0xc9,0x48,0xb3,0xaf,0x46,0x00,0xa0,0xfd,0x16,0x76,0x3d,0xe3,0x4b,0x18,0x35 }, { 0x54,0x9a,0x41,0x66,0x4e,0x15,0x5e,0x82,0x4d,0x55,0xd5,0xf2,0x06,0xe1,0x5c,0x42,0x0f,0x3f,0xca,0x6e,0x1e,0x10,0x74,0xb9,0xc5,0xdf,0x3f,0xd4,0xa4,0xea,0x82,0x63 }, { 0xba,0x41,0x12,0xac,0xc6,0xbc,0x0d,0xa1,0xbf,0x6e,0x46,0x35,0xce,0xa3,0xc8,0x27,0xd5,0xc3,0xca,0x23,0xb4,0x7a,0x6e,0xa0,0xf5,0x12,0x85,0xba,0x68,0x21,0xd1,0x41 }, { 0x11,0x05,0x66,0xed,0x9e,0x34,0x2a,0x8f,0xcf,0x7a,0xfa,0xf9,0x1a,0xb1,0x53,0xda,0xa9,0x1f,0x6b,0x57,0x41,0x8d,0xd6,0xc7,0xfb,0x43,0x77,0x78,0x72,0x12,0x40,0x6e }, { 0x88,0x04,0xda,0xef,0xc3,0x2f,0xa9,0x6f,0xc5,0x1a,0x96,0xfe,0x79,0xe0,0xff,0xe8,0xc3,0xe3,0x2a,0xca,0xfe,0xc1,0x08,0x3a,0x84,0xdc,0xe2,0x5b,0xc9,0xe9,0xbd,0x13 }, { 0x22,0x10,0x47,0xe5,0x29,0x9a,0xe5,0xfb,0x78,0x8f,0xf8,0x62,0xb4,0xa5,0xcc,0x17,0xf8,0x79,0x3f,0x97,0xb1,0x10,0x99,0xb3,0x36,0x8f,0x77,0xe8,0x6c,0x96,0x19,0x72 }, { 0x0a,0xc2,0xe7,0xd2,0x55,0xe2,0x2e,0x63,0xe6,0xca,0xbf,0x71,0xfb,0x69,0x07,0xce,0xe5,0xe7,0xb3,0xe3,0xe1,0xb7,0x53,0x56,0xc5,0xa2,0x8c,0xbe,0x94,0x1f,0x9c,0x76 }, { 0x80,0x05,0x7b,0x53,0xce,0x7d,0xa3,0x10,0x77,0x23,0x71,0xd2,0x33,0xdf,0x39,0x78,0x88,0x87,0x42,0x5c,0xd1,0x5b,0x20,0x08,0x0e,0xa0,0xa7,0x4b,0x90,0x07,0x0e,0x2b }, { 0x33,0x79,0x18,0xcc,0x0d,0xcb,0x4f,0xd1,0x05,0x91,0x90,0xad,0x21,0xe8,0x74,0xbd,0x13,0x7f,0xb1,0x85,0x28,0xab,0xea,0x2e,0x24,0x32,0x3b,0x14,0xf5,0x2b,0x3d,0x08 }, { 0x7d,0x31,0xcd,0xd2,0xf1,0x14,0xcb,0x4a,0x7b,0x1d,0x93,0x1c,0x10,0xa9,0xef,0xb4,0x6c,0x18,0x00,0x45,0x04,0xbd,0x4c,0x13,0xde,0xa2,0xb3,0x84,0x8e,0xe6,0x86,0x34 }, { 0x04,0xbe,0xe7,0x7d,0x02,0xdc,0xc1,0x0c,0x41,0xc9,0x93,0x6c,0x18,0x71,0x79,0x7d,0x48,0x4f,0xee,0xe8,0x54,0xbf,0x88,0x74,0x47,0x58,0x98,0x95,0xbc,0x08,0x19,0x12 }, { 0xb3,0x66,0x4f,0xa5,0xe1,0x25,0xfd,0x47,0xd2,0xc9,0xf7,0x6a,0x20,0x93,0x49,0x22,0xba,0x85,0x12,0x4a,0xcc,0xcb,0x36,0xcb,0x30,0x30,0x07,0x83,0x0b,0x47,0x89,0x1b }, { 0x7a,0x2e,0x26,0xd3,0x1c,0x5c,0x08,0xd7,0x46,0x34,0x54,0xa7,0x51,0xd3,0x53,0xbf,0xa8,0x2c,0xa9,0x1e,0x92,0x1f,0xd0,0xc2,0x13,0xe1,0x1b,0x74,0x5e,0xf0,0x1b,0x44 }, { 0xce,0xe6,0x82,0xa5,0x9f,0x98,0x8d,0x6e,0xc5,0xb2,0x32,0xbe,0xa2,0xbd,0x8f,0x6d,0x4d,0x1e,0x71,0x59,0x01,0x3f,0xc8,0x76,0x36,0xcf,0x77,0x0a,0x9f,0xdb,0xb1,0x65 }, { 0x1d,0x39,0x81,0x29,0x6e,0xd6,0xe2,0xdb,0x29,0x1a,0x21,0x34,0xc5,0x9f,0xaa,0xd8,0xde,0x33,0x62,0xec,0x00,0xbe,0xf5,0x8f,0x89,0x9d,0xd9,0xf3,0x00,0x57,0xb5,0x60 }, { 0x96,0x02,0x12,0xff,0x43,0x17,0xda,0x3a,0x0b,0x81,0xa3,0xc0,0x8c,0x4a,0x55,0xb8,0x15,0xcb,0xfe,0x90,0x10,0x02,0x3d,0xfc,0x8d,0x47,0x02,0xbb,0xf8,0x17,0x75,0x72 }, { 0x94,0x65,0x14,0xda,0x30,0x50,0xb8,0x6c,0x6f,0xa4,0xcd,0xfc,0x2c,0xd5,0x3d,0xdd,0x59,0x4a,0x3f,0xd8,0xf6,0x0d,0x8d,0xf6,0x54,0x56,0x58,0xc6,0x42,0x53,0xbd,0x44 }, { 0x86,0x5c,0x86,0x83,0x9a,0xd4,0x1d,0xe4,0xa8,0x5d,0x6c,0x38,0xef,0xee,0xe4,0x40,0x94,0xcf,0x21,0x43,0x93,0x54,0x3f,0xb8,0xf8,0x3f,0x4d,0x26,0xf0,0x48,0xd1,0x25 }, { 0x10,0x9d,0xa2,0x2e,0xa2,0x67,0x16,0x7a,0xc7,0x23,0x64,0x50,0x1b,0x2d,0xef,0x7d,0x51,0xfc,0xd7,0x2a,0x34,0x7b,0x65,0x7e,0xae,0x66,0x01,0xb3,0xf4,0xb6,0x78,0x2f }, { 0x03,0x1a,0xbf,0x47,0xa2,0x50,0x33,0x86,0xe3,0xc4,0x06,0x9d,0xff,0x57,0x1a,0x5e,0x0d,0xe0,0xb7,0x73,0xdb,0x53,0x7e,0xc8,0x20,0xaf,0x74,0xbf,0x5d,0x90,0xca,0x5b }, { 0xd7,0x31,0xa8,0xfe,0x20,0x47,0x14,0xae,0x4f,0xbf,0x0d,0x77,0xae,0x97,0x32,0x5d,0xb5,0xc5,0x2c,0x87,0xa9,0xa6,0x4c,0x81,0x78,0xeb,0xb4,0x1f,0x40,0x96,0xeb,0x53 }, { 0x41,0x3e,0xf1,0x7c,0xa4,0xc9,0xb2,0x6e,0xaa,0xd8,0x58,0x84,0x06,0x4c,0xdb,0xcc,0x1a,0xdc,0xf2,0x07,0xbf,0xcd,0xc5,0xba,0x3c,0x58,0x67,0xd4,0xd8,0xbd,0x18,0x7e }, { 0x3f,0x0e,0x67,0x27,0x9f,0x5e,0xc5,0xd1,0x10,0x23,0xc9,0x97,0x5c,0xe7,0x41,0x98,0xcc,0xef,0x8a,0x84,0xf7,0x3f,0x44,0x24,0x6c,0x6a,0x31,0x74,0xb6,0x18,0x73,0x24 }, { 0x4c,0xfc,0x47,0x83,0x4f,0x90,0x31,0xf8,0x75,0x44,0x58,0x6d,0x79,0xb5,0x25,0xc4,0xd8,0x64,0xeb,0xf8,0x31,0xe8,0x08,0x25,0x1a,0x9f,0xaf,0xc1,0x39,0xc0,0x07,0x63 }, { 0xc6,0xc9,0x48,0xbd,0xd4,0x2b,0xee,0xec,0xb1,0x0c,0xbe,0xdc,0x69,0x4e,0x04,0xb4,0xd7,0xca,0x24,0x6e,0x8a,0x66,0x30,0x2f,0x1e,0x4c,0x94,0x8c,0xdb,0x77,0xa0,0x0c }, { 0xf5,0x99,0x3e,0x8d,0x54,0x54,0x4d,0x8a,0xae,0xf3,0x8e,0x72,0xdd,0xda,0xa3,0xc1,0x49,0x3e,0x47,0xd6,0x5e,0xef,0xc3,0x16,0x70,0xa3,0x18,0x86,0x57,0x86,0x3a,0x32 }, { 0xd6,0x62,0x45,0x9b,0x91,0x17,0x54,0xe9,0x6b,0xc3,0x06,0x8d,0xa0,0xba,0x1a,0xc8,0x78,0x4c,0xd1,0xce,0x49,0xa9,0x19,0x51,0xb0,0xcd,0x19,0x07,0x2b,0x03,0x97,0x51 }, { 0x69,0xdb,0x0d,0xb4,0x80,0x20,0xd2,0xfc,0x91,0x48,0x3e,0xea,0xa0,0x28,0xa9,0x45,0xec,0x0d,0xef,0x61,0x78,0x5a,0xaa,0xea,0x43,0xd6,0xe1,0x0a,0x86,0x59,0x3f,0x1a }, { 0x69,0xfa,0x46,0x1e,0xc4,0x92,0x82,0xf2,0x47,0x32,0x71,0xc9,0xbf,0x51,0xee,0x89,0xb5,0x46,0xb6,0x41,0x32,0x76,0x40,0xcc,0x98,0xd3,0x2e,0xec,0x06,0x36,0x5b,0x10 }, { 0xe0,0xd9,0x28,0xc9,0xf8,0x32,0x93,0xcf,0xc9,0x0b,0xc0,0x9c,0x77,0xea,0xb6,0x79,0xe5,0x5d,0x38,0x06,0x4c,0x32,0x31,0xee,0x9b,0xec,0x2a,0x31,0xf4,0x59,0xa4,0x13 }, { 0x7c,0xf8,0xf8,0xd4,0x2a,0x9c,0x23,0x9f,0xaf,0xfb,0xb2,0x94,0x2d,0xaf,0xb0,0xf2,0x79,0xf5,0x2c,0xb5,0x5c,0xad,0xce,0xaf,0xef,0xe5,0x5c,0x63,0xe1,0x5f,0x68,0x50 }, { 0xf3,0x9d,0xd0,0xb9,0x27,0xaa,0x2c,0x77,0x07,0xc8,0x29,0xa5,0x8c,0x7c,0xbe,0x70,0x6d,0xad,0xf6,0xf2,0xea,0xab,0x22,0x38,0x56,0x92,0xaa,0x89,0x58,0xd2,0x83,0x21 }, { 0x94,0xf6,0xce,0x64,0xe0,0x68,0x59,0x81,0xff,0xa9,0xa3,0xd0,0x16,0x62,0xe6,0xfa,0x5a,0x5f,0x8c,0x5a,0x1e,0xf0,0xf1,0x58,0x3e,0xb6,0x95,0x2f,0x3f,0x8a,0xb1,0x58 }, { 0x0d,0xf6,0xdf,0xe6,0x22,0xe4,0x39,0x17,0x49,0xbf,0xa7,0x83,0xf6,0x78,0xdd,0x31,0xd1,0xff,0xb5,0x8f,0xb7,0xe4,0xe8,0xe3,0xcc,0x32,0x3a,0x80,0xa9,0x9e,0x8f,0x78 }, { 0xe8,0x51,0xc7,0xfe,0x0c,0xad,0xe4,0x65,0x34,0x2e,0x2b,0x88,0xbf,0xaa,0x30,0x18,0x5e,0x56,0x1f,0xf3,0x48,0x71,0x21,0xa7,0x4d,0x55,0x4b,0x0b,0x05,0xc2,0x94,0x2a }, { 0x10,0x2d,0xa9,0xaf,0xad,0x92,0xec,0x34,0x6d,0x45,0x03,0xb7,0xca,0xa3,0xc2,0xa1,0x98,0xe2,0x89,0xb9,0x13,0x2a,0xbe,0x3a,0x46,0xf2,0xdc,0xed,0x06,0xdf,0xa5,0x36 }, { 0x49,0xc0,0x0a,0x84,0x13,0x70,0xd2,0xfe,0xa1,0x38,0xc4,0x0b,0x72,0x9a,0xac,0xfb,0x6c,0xb8,0x4a,0x00,0x1e,0xb4,0x90,0x3f,0xba,0x41,0x1c,0xd5,0x5d,0xcb,0x1e,0x1c }, { 0x7f,0xaa,0xac,0x89,0x5f,0x71,0xbc,0xa1,0x46,0xe4,0xff,0x63,0x59,0x94,0x59,0x40,0xe5,0x4e,0x69,0x08,0x53,0x07,0xf9,0x9c,0xf5,0xe4,0x8e,0x59,0x1c,0x88,0x64,0x07 }, { 0xc9,0xca,0xee,0xe1,0x1c,0x67,0xfa,0x50,0xf2,0x28,0x89,0x75,0x1f,0xcb,0x4b,0xdb,0x13,0xb3,0x0e,0x5b,0xec,0x39,0xf0,0x4c,0x22,0x93,0xfe,0x38,0xec,0x05,0x92,0x28 }, { 0x88,0x6d,0xe3,0x8d,0xea,0x38,0x28,0x0d,0x70,0x9a,0xd5,0x0a,0x85,0x00,0x4a,0x33,0x75,0x3e,0x93,0x7c,0x66,0x1b,0x18,0xa7,0x4d,0xf7,0x9e,0x09,0x1f,0xd7,0xb1,0x53 }, { 0xf1,0x39,0x62,0xbc,0x23,0x52,0x48,0x4e,0xe0,0x59,0xff,0x27,0x4d,0x74,0x30,0x20,0x8a,0xa2,0x38,0xe0,0x4d,0xc4,0x41,0x37,0x01,0x50,0xff,0xa6,0x2a,0x22,0x53,0x3f }, { 0x61,0xf2,0x66,0x78,0xe8,0x35,0x72,0xa9,0xe1,0x9f,0x74,0x00,0x1f,0x97,0xba,0xac,0xe3,0xa0,0xc8,0x20,0xe0,0xca,0x00,0xb5,0xcd,0xa8,0x12,0xf6,0xca,0xe4,0x26,0x24 }, { 0x1f,0x74,0xf1,0x59,0x71,0x8f,0x41,0x05,0x51,0x62,0xa3,0x6f,0xf5,0x98,0xdd,0x37,0xe5,0xff,0x5e,0x15,0x1b,0x0a,0x02,0xd9,0x34,0xe4,0xfb,0x2a,0xc3,0xf3,0xd5,0x72 }, { 0xad,0x7b,0xf1,0x0a,0x44,0xf2,0xbd,0xe1,0x94,0x36,0x7c,0x8b,0x6b,0x1e,0x94,0xd6,0x0d,0x3c,0xe1,0x4a,0xfb,0x1f,0x31,0x8f,0xf0,0x67,0x95,0x1e,0xec,0x01,0x7f,0x2e }, { 0x26,0xb5,0xe9,0x51,0x78,0xa5,0x1e,0x59,0x90,0xdd,0xc9,0x5d,0x75,0xe7,0x7b,0xfe,0x3f,0x32,0x39,0x14,0xcc,0x3b,0x68,0x20,0x6b,0x33,0x69,0x0b,0x5e,0x40,0x29,0x52 }, { 0xe9,0x0c,0xe6,0x6d,0xa6,0x8c,0x40,0x21,0xb3,0x3a,0x50,0x13,0x3d,0xf0,0xe7,0xbf,0xf9,0xf3,0x4d,0x2b,0x4a,0x3b,0x29,0xc4,0x0a,0x89,0x76,0x7c,0xe8,0x33,0xc6,0x75 }, { 0xf8,0x3c,0x9f,0x1e,0xca,0x7d,0x61,0x51,0x31,0xd6,0x3d,0xae,0x9f,0x87,0xb6,0x1e,0xdc,0x58,0xa9,0x70,0xad,0xd7,0x6f,0xbe,0xa7,0x2e,0xe1,0xfa,0x2f,0x4f,0xe4,0x3f }, { 0xb4,0xcd,0x51,0xc8,0xe7,0xa1,0x0a,0xe6,0x55,0x4c,0xfd,0xf7,0xb2,0xf2,0xac,0x0b,0x09,0x8d,0xed,0x5e,0xdb,0x52,0xf4,0x1f,0xe8,0x25,0x9b,0x37,0xc6,0x07,0xbe,0x06 }, { 0xe7,0x35,0x4e,0x3f,0xad,0x48,0x38,0xc0,0x1d,0xd3,0xdb,0xf0,0xb2,0xaf,0xc0,0x77,0x9c,0x21,0x79,0x31,0x93,0x7c,0x31,0x9b,0x19,0x36,0xaf,0xc2,0x53,0x00,0x32,0x36 }, { 0x00,0x75,0x23,0xdc,0xda,0x35,0x4d,0x9d,0x9a,0x84,0x92,0x08,0x37,0x66,0x18,0x16,0xf6,0xb8,0x34,0x4c,0xf3,0x14,0x2b,0xda,0xe9,0x94,0x7f,0xed,0x90,0x1a,0xcc,0x7e }, { 0xee,0x8a,0x05,0x95,0xf3,0x9d,0x3e,0x8e,0x8b,0xa2,0x3b,0x94,0x80,0xa7,0xab,0x92,0x38,0xf4,0x2a,0x37,0x2d,0xee,0x4a,0xc5,0xbe,0xb9,0x25,0x6e,0x24,0x5b,0xe1,0x79 }, { 0x9d,0x2c,0x86,0x1a,0x11,0x8e,0x98,0xb1,0xe1,0x58,0x5a,0xf7,0xa4,0x1f,0xaf,0x30,0x15,0xe3,0x00,0xbb,0x5a,0xce,0xd0,0x64,0x5a,0xaf,0x89,0x9c,0x21,0x95,0x04,0x0f }, { 0xe6,0x22,0x0f,0xab,0xcf,0x17,0x61,0x6d,0x4a,0x99,0x7d,0x0c,0x92,0x43,0xef,0xed,0xdb,0x4f,0x9d,0xe1,0xa8,0x54,0x3c,0x4a,0x42,0x26,0x19,0xc3,0xf6,0x69,0xca,0x12 }, { 0x17,0x24,0xff,0x37,0x41,0x36,0xa0,0x27,0xb9,0xc3,0x9f,0xea,0x4f,0xaa,0x3b,0x78,0x71,0xf1,0x6e,0x45,0xce,0xf0,0x6a,0x33,0xa8,0x21,0xd6,0x29,0x06,0xcc,0x7e,0x7d }, { 0x82,0xa1,0xc2,0xfd,0x2b,0x00,0xcb,0xaf,0xe0,0x74,0x62,0xef,0xad,0xf3,0xdc,0x86,0x12,0x20,0x67,0x5a,0xea,0x87,0x16,0x02,0xc9,0xa7,0xed,0x04,0xd9,0x17,0xee,0x28 }, { 0x2b,0x1f,0x06,0xab,0x4e,0xa2,0x55,0x83,0x75,0x6b,0x68,0x70,0x3b,0xbc,0x0f,0x10,0xc9,0xca,0x79,0x0a,0x78,0xba,0x9a,0xb9,0x22,0xd3,0x28,0x37,0xa4,0xcb,0x5b,0x01 }, { 0x30,0x16,0x4c,0xfc,0x55,0x87,0x7a,0xcf,0x33,0x01,0x0d,0xdc,0x0a,0x0d,0x7f,0xa3,0xca,0x72,0x3f,0xad,0x87,0x95,0xec,0xe1,0xa6,0x79,0x28,0xa1,0xaa,0x81,0x25,0x7e }, { 0x5e,0x6e,0xb2,0x07,0x0c,0x9b,0x47,0xbf,0xe5,0x9f,0xc3,0x66,0xe2,0xa5,0xca,0x62,0x12,0xd5,0x74,0xc9,0xac,0x3a,0x6d,0x1e,0xb7,0xa5,0xaf,0x03,0x29,0x9b,0x91,0x13 }, { 0xfd,0x0e,0x45,0x86,0x5d,0x42,0x5c,0xee,0xae,0x28,0xc1,0x3e,0xd0,0xa8,0xce,0x2d,0x98,0x62,0xbf,0x6c,0x46,0x85,0xda,0xd6,0xb5,0xf3,0xf9,0x61,0x4f,0x59,0x22,0x13 }, { 0x5a,0x91,0x60,0xe4,0xba,0x68,0x58,0x13,0xf0,0x34,0x1a,0xc9,0x4e,0x96,0xc4,0x54,0xd9,0xd1,0x5b,0x6d,0xfd,0x1f,0x1f,0xb0,0x10,0x45,0xc9,0x12,0xda,0x3c,0xde,0x00 }, { 0x67,0xc0,0x01,0xdb,0x4d,0x3c,0x2d,0xc4,0x8d,0x57,0x97,0xea,0x23,0x78,0x43,0x86,0xd9,0x60,0xf0,0xdc,0xad,0x22,0x6c,0xdf,0xa0,0x1c,0x18,0xa8,0x43,0xca,0x5d,0x1a }, { 0x70,0xaa,0xa6,0xd2,0x4e,0xd2,0x79,0x2c,0x09,0x63,0xbb,0x3d,0x8e,0x0f,0xbc,0xa3,0xa6,0x35,0x7e,0x46,0x68,0x0c,0x1b,0xdc,0x37,0x02,0xee,0x9f,0xa3,0xa9,0x48,0x13 }, { 0x86,0xc5,0xbb,0x2d,0xd9,0xf9,0xef,0x4a,0x70,0xb7,0x30,0x30,0x3e,0x24,0x20,0xd6,0xd3,0x9a,0xbd,0x3a,0x06,0x0a,0xc7,0xa0,0xf1,0x2c,0x73,0x1f,0x0b,0x53,0xe1,0x51 }, { 0xe2,0xff,0x88,0x59,0x92,0xcf,0x11,0x6f,0x47,0x4a,0x3d,0xf3,0xda,0x74,0x99,0xe0,0x13,0x44,0x60,0x50,0x4f,0xa4,0x14,0x8b,0x9f,0xff,0x7f,0xde,0xd6,0xfc,0x2e,0x30 }, { 0x28,0x6f,0x27,0x1e,0xd4,0xce,0xf4,0x76,0xea,0xed,0x75,0x20,0xcf,0x7f,0x88,0xad,0x23,0x27,0xbd,0x01,0x26,0x54,0xe9,0x8c,0x77,0x9a,0x6b,0xe7,0x58,0x8b,0xb4,0x02 }, { 0xa1,0xd0,0x81,0xea,0xb3,0x5a,0x21,0x65,0x7f,0x60,0x00,0x9a,0xb7,0x8a,0x6e,0x05,0x2b,0x1c,0xc4,0x74,0xbf,0x7a,0xd3,0x09,0xb4,0x80,0xaf,0xd0,0x97,0x06,0x9e,0x44 }, { 0x36,0x17,0xc5,0xd5,0xad,0x5a,0xe3,0x94,0x1e,0x77,0x3b,0x8f,0x3d,0xe1,0xf8,0xe3,0x0e,0xdc,0x34,0x96,0x71,0xb2,0xb3,0x05,0x7e,0x49,0x6a,0x06,0x49,0x67,0x79,0x2f }, { 0xb4,0xe3,0x01,0x0d,0xba,0x1f,0xe2,0x4e,0xee,0x08,0xae,0xfc,0x2c,0x19,0xf9,0xa4,0x9d,0xf8,0xe4,0x5f,0x94,0x38,0x9e,0x06,0xbb,0x21,0xfb,0x3b,0x87,0xcb,0x6f,0x62 }, { 0xc7,0x76,0x0f,0xfb,0x4a,0xd2,0xeb,0x53,0x85,0xd8,0x14,0xa9,0x08,0x40,0xad,0xcc,0x0f,0x79,0xf2,0x29,0xb8,0xb5,0x7d,0x20,0xd1,0x4f,0x24,0xbe,0xad,0xab,0xe6,0x2d }, { 0x52,0x64,0x76,0xdb,0x1f,0x80,0x92,0x47,0x3d,0x15,0x33,0xc1,0xf1,0xd3,0x8c,0x55,0x05,0xd1,0xd6,0xcd,0xb4,0xd0,0x6e,0x55,0x6d,0x83,0x47,0xcf,0xfa,0x00,0x0b,0x50 }, { 0x35,0xf4,0x96,0x70,0x24,0x75,0x0b,0x47,0x6f,0xc6,0x3e,0x43,0x59,0x44,0x3f,0x8b,0x3c,0x98,0xf2,0x09,0x05,0x9e,0x79,0x81,0xe9,0x7b,0xa6,0xb8,0x1c,0x08,0xf5,0x71 }, { 0xf8,0x38,0x0e,0x1d,0x45,0x9a,0x1b,0x06,0xbc,0xa3,0x59,0x9f,0x83,0x0c,0x44,0x1a,0xd8,0xc9,0x1f,0xc4,0xdc,0xf1,0x6f,0xe4,0xa8,0x34,0xee,0x57,0xd2,0x54,0x2b,0x77 }, { 0xc6,0x19,0x37,0x27,0x6f,0xee,0x76,0xb4,0x2b,0xe0,0x77,0x08,0x55,0x37,0xf7,0x50,0x82,0xfc,0xaf,0xd5,0xd1,0xca,0xa2,0xe9,0xda,0x8f,0x33,0x65,0xea,0x8e,0x2a,0x16 }, { 0xd2,0xb5,0x9b,0xaa,0x6c,0x51,0xf4,0x2e,0x71,0x39,0x52,0xdb,0xef,0x43,0x2d,0xfc,0x4f,0xae,0x24,0xde,0x4d,0xdf,0x5e,0x6d,0x07,0x3c,0xf6,0x6c,0x72,0x29,0xbd,0x00 }, { 0x00,0x58,0x2c,0xdc,0xa9,0x73,0xdb,0x16,0xa7,0x56,0xa6,0x6a,0xb2,0x77,0x52,0x17,0xd9,0xc3,0x88,0x2b,0x7d,0x0d,0x79,0x19,0x88,0xae,0xd2,0x13,0x47,0xf0,0x4f,0x6c }, { 0xb9,0xe4,0x19,0x44,0xd4,0xb4,0x29,0xd8,0x8f,0x44,0xb8,0xcd,0x96,0x04,0xbf,0xff,0xee,0xfb,0x06,0x01,0xf0,0x97,0x29,0x4f,0x52,0xf6,0x75,0x56,0xd8,0xf6,0x53,0x60 }, { 0xed,0xf5,0x78,0xe3,0x49,0xd6,0x9a,0x29,0xb8,0x4c,0x84,0xff,0xf3,0xff,0x14,0x0c,0xa1,0x2a,0xf0,0xd9,0xed,0x3c,0xd3,0xa3,0x16,0x52,0xb7,0x92,0x18,0x63,0xbc,0x57 }, { 0x89,0x19,0x17,0x8a,0x17,0xbb,0x74,0x64,0xf4,0xdc,0x1a,0x25,0xe6,0x3d,0x2f,0xb3,0x7a,0xb3,0xc4,0xaf,0x52,0x30,0xc4,0xc9,0x93,0x01,0x1f,0xd7,0x9a,0x79,0xd2,0x6a }, { 0x0d,0x27,0xa8,0x55,0x15,0xc0,0x9a,0x9f,0x82,0x6a,0xfd,0x2d,0x42,0x21,0x6a,0x2b,0x6a,0x9d,0x03,0x36,0x29,0x31,0xca,0xe7,0xac,0x3d,0x55,0x24,0x93,0x0c,0x32,0x1f }, { 0x7d,0x33,0xfb,0x91,0x05,0xaa,0x60,0x3d,0x8b,0x27,0xa4,0xea,0x4f,0xc1,0x16,0x07,0xc5,0xc1,0xa4,0xed,0x48,0x7a,0xb1,0x56,0xeb,0xac,0x58,0x6f,0x94,0x0f,0xa4,0x7b }, { 0x40,0x96,0xad,0xfd,0x0f,0xf3,0x8f,0xe9,0x32,0x3f,0xa8,0x8e,0x9e,0xe1,0xac,0xf1,0xad,0x7d,0x84,0xee,0x75,0x65,0x33,0x1b,0x54,0x07,0x93,0xd8,0xfd,0x24,0xd0,0x4d }, { 0x9f,0xab,0x5e,0x1f,0x9c,0xea,0x54,0xa2,0x0e,0xa9,0xaf,0x1a,0xf8,0x7e,0xba,0xdd,0x15,0x21,0x19,0x82,0x38,0x59,0xfe,0xe8,0xcf,0xe5,0x13,0xd5,0xe0,0xe4,0x09,0x37 }, { 0x0a,0x38,0x41,0x32,0xfe,0x52,0xf7,0xd3,0x0f,0x2d,0xea,0x67,0x4a,0x85,0xbf,0xa4,0xcd,0xa5,0xbb,0xbe,0x11,0xca,0x2e,0xd0,0x5a,0x79,0x62,0x87,0xa9,0x32,0xf2,0x04 }, { 0x32,0x18,0xbc,0x96,0x81,0xec,0x1f,0xdb,0x2c,0x37,0x87,0xa8,0x9e,0x66,0x2d,0x4a,0x52,0xdf,0xb8,0x9e,0xf6,0x66,0x7c,0x62,0x69,0x09,0x4d,0x82,0x79,0x06,0xa0,0x3c }, { 0xf2,0x0a,0x94,0x43,0x69,0x74,0x6e,0x53,0x5a,0x92,0xee,0xaf,0xc2,0x1b,0xb9,0x61,0x4b,0xda,0x07,0xae,0x15,0xc4,0x9b,0xcf,0x99,0x11,0xe1,0x79,0x7a,0xf5,0xe0,0x26 }, { 0xe2,0x2a,0xe2,0xff,0x47,0x0a,0x6f,0xfa,0x29,0x02,0x8f,0x3b,0xcf,0xdd,0x99,0x9a,0x10,0x08,0x29,0xb4,0xec,0x00,0x60,0x46,0x31,0xed,0x6e,0x8a,0x2f,0x94,0x91,0x20 }, { 0x44,0x17,0x3b,0xe4,0x2b,0xdd,0x0a,0xfd,0x2a,0x85,0xcb,0x14,0xb2,0x9e,0x7a,0x33,0x2d,0x85,0x21,0xc3,0x1f,0x42,0x4d,0xd0,0xb4,0x78,0x65,0xbc,0x84,0x04,0x91,0x76 }, { 0xab,0x48,0x5a,0x16,0x4e,0x03,0xb3,0xa4,0xf5,0x86,0xe7,0x58,0x53,0x70,0x42,0x84,0x28,0x16,0x2e,0xe3,0xab,0x4d,0xeb,0x0f,0xca,0x97,0x8a,0x00,0x5e,0xe6,0x7a,0x2f }, { 0x87,0xb4,0x87,0xe4,0xe5,0x92,0xdb,0x44,0x45,0x94,0xf8,0x4d,0x30,0x0d,0x51,0x8e,0xbe,0x42,0x0f,0xaf,0x49,0xd3,0x85,0x37,0x0e,0x14,0xf5,0xa3,0x86,0xd2,0x74,0x67 }, { 0xc7,0x65,0x04,0x1b,0xbd,0xa2,0x61,0x48,0x93,0x5e,0x58,0x8d,0x73,0xb4,0xca,0xbb,0xf9,0x1d,0xdc,0xdc,0xde,0x05,0xbc,0x9f,0x23,0xcd,0x6a,0x79,0x9c,0x8e,0x3b,0x67 }, { 0x91,0x5b,0x03,0x72,0x98,0x48,0xef,0xfe,0xed,0x53,0x54,0xc4,0x48,0xa1,0x67,0x15,0xdd,0x29,0xdd,0x52,0x39,0xed,0x94,0x64,0x57,0x30,0x08,0x67,0xf3,0x32,0xf4,0x68 }, { 0x35,0x78,0xd3,0x1e,0xeb,0x79,0xe2,0xa6,0x1f,0x2a,0xd6,0x06,0x3b,0xf8,0x0e,0x6f,0x35,0x90,0x5c,0x52,0x7d,0xd6,0x48,0xa5,0x83,0xc0,0x7d,0xe5,0x50,0xda,0x6e,0x11 }, { 0x3c,0xb6,0xb7,0x2e,0xea,0xcf,0xd1,0xde,0x08,0x84,0xc1,0x5c,0x3c,0x2b,0xa5,0xc0,0x21,0xac,0xc2,0xcd,0xe3,0xf7,0x98,0x9e,0x1b,0xb5,0xee,0xa0,0x42,0x44,0x74,0x0d }, { 0x4a,0x76,0xf6,0xdb,0x1b,0x8e,0x6b,0xda,0x78,0xb8,0x54,0xdf,0xf7,0xf4,0xc4,0xee,0x7a,0xf3,0xdb,0xe5,0xf7,0x43,0x68,0x96,0xdd,0xd5,0xb1,0xc3,0x88,0xb4,0x7a,0x12 }, { 0x28,0x65,0xad,0x3e,0xca,0x0c,0xba,0xbc,0x9e,0x8c,0x2d,0x85,0x60,0xcc,0x55,0x66,0x2d,0x22,0x07,0xed,0x9f,0x8f,0xc4,0xbf,0xaf,0x73,0x20,0xa7,0x7c,0x6d,0x7a,0x67 }, { 0xfc,0x05,0xcd,0xfe,0xd7,0x02,0xa4,0xba,0xac,0x34,0x9b,0xf9,0xbc,0x04,0xa5,0x23,0xe8,0x04,0xa7,0xab,0x57,0xaa,0x76,0xb0,0x0f,0x9a,0x12,0xdd,0x7f,0x0f,0xaf,0x5c }, { 0xfe,0x00,0x25,0xaa,0x7b,0xf1,0x00,0x0f,0x6c,0xaf,0x6e,0x34,0xb9,0xed,0xcd,0x3f,0x41,0x37,0xed,0x74,0x4b,0x19,0x72,0x26,0xd0,0x7a,0x7a,0x5b,0xe1,0xcd,0xf7,0x45 }, { 0x8b,0xe3,0x02,0x95,0xe8,0x33,0xe3,0x7a,0xb4,0x90,0x21,0xc8,0xbb,0x0c,0x8c,0x5e,0x9d,0x63,0xf2,0xa2,0x56,0x5d,0x08,0x72,0x7f,0x9b,0xea,0xfb,0xaf,0x93,0x80,0x40 }, { 0x95,0xbc,0xce,0x33,0x7b,0x0a,0x65,0x5b,0xe0,0x26,0x1a,0x40,0x68,0x28,0x4f,0xb4,0xb1,0x21,0x11,0x1b,0xd2,0x7a,0x64,0x43,0xb2,0x39,0x75,0x34,0x01,0x05,0xdc,0x17 }, { 0x36,0x12,0x3f,0xe0,0x92,0x37,0xfe,0xbf,0xcc,0xb6,0xc5,0x4a,0x14,0x14,0x7d,0xab,0xd1,0x22,0xaa,0x1b,0x08,0xf2,0x97,0xb0,0x0c,0xdb,0x21,0x2c,0xfa,0x7f,0x60,0x4c }, { 0x54,0xbc,0x2f,0xf4,0x02,0x89,0x70,0x2c,0x69,0x78,0x5d,0xe5,0x16,0x65,0xf0,0xc8,0x69,0x2e,0xc7,0xde,0xca,0x6a,0x64,0x63,0x53,0xec,0xe0,0xd1,0xd3,0xd9,0xd1,0x09 }, { 0xb5,0xb9,0x1a,0x6b,0xb0,0xc1,0x94,0x9a,0x52,0x24,0x48,0xb8,0x71,0x3e,0x1b,0xfe,0xb5,0x56,0x23,0x3c,0x18,0xb3,0xdf,0x81,0x10,0xe7,0xd5,0x63,0x04,0xc3,0xb7,0x46 }, { 0x51,0x4f,0xd2,0xb3,0xf8,0xac,0xe2,0x23,0xfb,0x3a,0xee,0x33,0x23,0xea,0x95,0xd3,0xa2,0xec,0x58,0x37,0xd9,0x80,0x45,0x0c,0x0d,0x2f,0xb4,0x33,0xb6,0xe0,0x4a,0x32 }, { 0xaf,0x0e,0x94,0xaa,0x48,0xd9,0xf8,0xb6,0x79,0x2a,0x2c,0xe6,0xfa,0x9d,0xd3,0xa0,0x54,0xaf,0x84,0xa8,0xfb,0xcf,0xcf,0xe1,0x0b,0x24,0xa7,0xce,0xb8,0x97,0xe6,0x12 }, { 0x92,0xed,0xc3,0x77,0x1b,0xf5,0xfc,0x7e,0xbe,0x08,0x9e,0xfc,0x51,0x5f,0x2a,0x50,0x51,0x4c,0xc5,0x90,0xf0,0x14,0x7c,0x9c,0xcb,0xd4,0x3e,0xd4,0x88,0x6d,0xc0,0x49 }, { 0x11,0xd9,0x98,0x18,0x64,0xfe,0x46,0x51,0x14,0xe9,0xda,0xe6,0x9d,0x2d,0xc3,0x11,0x6c,0x72,0x67,0x93,0xd2,0xc9,0xd0,0xbc,0x74,0x31,0x7c,0xb7,0x96,0xd0,0x99,0x0b }, { 0xbe,0x10,0x07,0x57,0x28,0xa1,0x6b,0x76,0xa8,0x14,0x31,0x8b,0x27,0x4d,0x2d,0xa7,0x90,0x3c,0xc2,0xaa,0x53,0x32,0x04,0x4a,0xd6,0x13,0x2d,0x8e,0x00,0xea,0xb1,0x05 }, { 0x61,0x52,0xc2,0x38,0xc7,0xc7,0x20,0xe8,0xb6,0xfe,0xf8,0xd4,0xf1,0x06,0x26,0x0d,0xcb,0x02,0xbe,0x51,0x9f,0x9f,0xd7,0xad,0x64,0x65,0xf7,0x62,0xac,0x32,0xf9,0x0f }, { 0x9a,0x3e,0xe0,0xae,0xb0,0x2b,0x46,0x04,0x12,0x7f,0x98,0x1e,0x2f,0x75,0xbb,0x92,0x01,0xbe,0xe0,0x24,0xb6,0x8d,0xa0,0x8b,0x43,0x01,0x65,0x67,0x8a,0xa9,0x1b,0x72 }, { 0xfa,0x00,0xc4,0xd8,0xe4,0xf5,0xbe,0x7b,0x68,0xa9,0xa6,0xf4,0xd5,0x1a,0xb6,0x2e,0xbf,0x92,0x19,0xf7,0xc8,0x1c,0x31,0x65,0x52,0xef,0x30,0x93,0x34,0x60,0xb4,0x62 }, { 0x6d,0x0f,0xad,0xfd,0xff,0xd6,0xa5,0xc4,0x16,0x6c,0x72,0x4a,0x1b,0x42,0xf2,0xe3,0xb8,0xe9,0x2a,0xeb,0x33,0x35,0x69,0x2e,0x22,0x3a,0xbf,0x61,0x34,0x2c,0x37,0x61 }, { 0x6f,0x6c,0x90,0x82,0x65,0x23,0x00,0x05,0x30,0x70,0x5f,0xa3,0x94,0x10,0xbd,0xf7,0x5c,0xd7,0x75,0xbd,0xd4,0x48,0xc2,0x6c,0x6e,0x03,0x50,0x8c,0x71,0xe4,0x80,0x39 }, { 0x40,0x7e,0x18,0xcf,0xb4,0x80,0x56,0x72,0x3c,0x05,0xb6,0x68,0xad,0x2f,0x32,0xa8,0x15,0xe7,0x0a,0x92,0x2d,0xe3,0x67,0xe7,0x8d,0x1e,0x7e,0x8d,0xf1,0xc4,0xe1,0x25 }, { 0x53,0x4e,0xb9,0x93,0xce,0x36,0xd6,0x35,0x71,0x0c,0x98,0x3d,0xa2,0x2f,0x9a,0xe9,0xc9,0x36,0x4e,0xc4,0x1d,0x7d,0x8d,0x26,0xe9,0xe4,0x5f,0x3a,0xda,0xfe,0x42,0x60 }, { 0xe1,0x09,0xb0,0x74,0xf6,0xbe,0xde,0x7f,0x3d,0xfd,0xde,0x31,0xa4,0x70,0x11,0xab,0x24,0x01,0x05,0xea,0x0d,0xd3,0x7a,0x9c,0x65,0x16,0x55,0x49,0x10,0xab,0x0c,0x3c }, { 0x46,0x07,0xd6,0x3b,0x28,0x61,0x5e,0xcb,0x83,0xc5,0xe1,0xdc,0xbc,0x2f,0xd9,0x3a,0x34,0x6e,0x62,0xec,0x4a,0xb6,0xe3,0xf6,0xd0,0x16,0x23,0x3f,0xaf,0x24,0x2f,0x19 }, { 0xec,0x42,0x64,0x86,0x00,0xbd,0xe6,0x7b,0x28,0xf8,0xf8,0x38,0xcb,0x37,0xfc,0x59,0x5a,0x77,0x0c,0x60,0x78,0x86,0x41,0xbd,0x47,0xc3,0xf1,0x24,0xf3,0x20,0x00,0x3b }, { 0xfa,0xee,0x54,0x77,0x92,0x10,0x27,0xfc,0x1b,0x4a,0x93,0xfa,0xcc,0x11,0x57,0x45,0x05,0x02,0x0f,0x9a,0x61,0x77,0x58,0xa7,0xdd,0xfe,0xa4,0x03,0xa8,0xdb,0xcf,0x02 }, { 0xae,0x10,0xc7,0x2a,0x6c,0xa5,0xf7,0x5c,0x0a,0x4a,0x7e,0x1b,0xbe,0x9d,0xaf,0x6f,0x25,0x72,0xe3,0x20,0x03,0x53,0xc7,0x34,0xa5,0xc9,0xaf,0x47,0x72,0x2f,0x53,0x18 }, { 0x77,0xb4,0x0f,0x1d,0xcc,0xb1,0x89,0x72,0x82,0x9b,0xd5,0xfc,0x4a,0x64,0x0e,0xd5,0x46,0xda,0xb1,0x05,0xf0,0x10,0x1b,0xdd,0x3a,0x15,0x0e,0xb4,0xf4,0x93,0xfa,0x75 }, { 0xf4,0x41,0x4b,0x80,0x09,0x92,0x67,0x8f,0x7a,0x4d,0x0f,0x71,0x1f,0xba,0xaf,0xf4,0x14,0x06,0xcf,0x9c,0xa3,0x8d,0x92,0x24,0x20,0x61,0xea,0xe0,0xaf,0xd4,0x5c,0x34 }, { 0x08,0x08,0x32,0x73,0x5e,0x47,0x2c,0xef,0xa3,0x7c,0xfd,0x1a,0x93,0x70,0xc7,0x11,0x13,0x85,0xa6,0x91,0x3f,0x9a,0x99,0x7f,0xbe,0x0d,0x03,0xc2,0x79,0xb2,0x58,0x7f }, { 0x0f,0xb2,0x76,0xf4,0x09,0x94,0x46,0x07,0x18,0x8b,0xec,0x06,0xb3,0x82,0x60,0x1a,0x0a,0xad,0xf7,0xab,0x09,0x15,0x94,0x4b,0x72,0xeb,0xd6,0x0c,0xea,0x1a,0xf5,0x5a }, { 0xaf,0x03,0x2b,0x91,0xf6,0xf8,0xbd,0x87,0x27,0x10,0xf5,0xe3,0x09,0xc5,0x30,0x81,0x9d,0x08,0x3d,0x05,0xc8,0xf4,0x93,0x9f,0xf3,0xe5,0xfd,0xa4,0xf0,0xd6,0x52,0x13 }, { 0xb4,0xdf,0x30,0x98,0x0d,0xf1,0x18,0x37,0x79,0xcb,0x3c,0x2d,0x13,0x7d,0xa7,0x23,0xe3,0x64,0x38,0x2b,0x13,0x9a,0x32,0x67,0x98,0x94,0x12,0x76,0x05,0x4a,0x75,0x46 }, { 0x00,0x8e,0xb5,0xf0,0x57,0x5d,0xae,0x77,0xc9,0x0d,0x3c,0x8f,0x03,0x09,0x83,0x71,0xac,0xc1,0x16,0xf9,0x3f,0xeb,0x5b,0x24,0x1f,0x7e,0xae,0x9f,0xa2,0xf6,0xf1,0x5a }, { 0xd3,0x29,0x66,0x6e,0x26,0x55,0x29,0x62,0xe3,0xd1,0xae,0xdb,0x33,0xb6,0xfd,0xac,0x43,0xa2,0xb6,0xf8,0x00,0xb0,0xf7,0x04,0x97,0x17,0x94,0x01,0x52,0x4c,0x22,0x6b }, { 0xd2,0x35,0x49,0x4b,0x06,0x43,0xd9,0x28,0x13,0x63,0x8c,0xdd,0xd1,0x26,0xe2,0x8b,0x0c,0xf6,0x56,0x49,0x5e,0x6e,0x91,0xb3,0x5d,0x33,0xe4,0x62,0x73,0x60,0x8b,0x76 }, { 0xb3,0xac,0x71,0x13,0x63,0x15,0xb1,0xa1,0xf5,0xe4,0x96,0xf5,0x8b,0xb2,0x1f,0xea,0x31,0xcc,0x48,0x1a,0x17,0xc6,0x37,0xb6,0x2d,0xee,0x9c,0xb9,0x88,0xa3,0xe0,0x4f }, { 0xd1,0x74,0xe6,0xaa,0x9d,0x4c,0x26,0x86,0x7c,0xbf,0x85,0xff,0xae,0xd7,0x5e,0x88,0xa2,0xda,0x7d,0x0f,0x55,0xf7,0x6e,0x36,0x15,0xb0,0x9a,0x5d,0xa2,0x80,0xdd,0x50 }, { 0xc9,0xcc,0xf5,0x2c,0xc6,0x59,0xa9,0xdf,0x41,0x07,0x91,0xd5,0x48,0x00,0xd1,0x0b,0x4c,0xbe,0xad,0xf0,0x0a,0x3a,0x5b,0x70,0xdd,0x81,0x6d,0x75,0xb3,0x28,0x8b,0x0e }, { 0x28,0x3a,0x77,0xff,0x39,0x9a,0x51,0x68,0x6c,0x2d,0xb7,0xa3,0x36,0x7b,0xb6,0x66,0x7a,0x26,0x9b,0xdc,0x9c,0xb2,0x7a,0x3c,0xd0,0xfc,0x34,0xaf,0x33,0xdd,0x0a,0x48 }, { 0x9b,0xb5,0xb6,0x19,0xfd,0x1d,0x0b,0xfa,0x29,0xb2,0x8e,0xdd,0xad,0xeb,0xf1,0x7d,0x13,0xcd,0xf0,0x62,0x30,0x34,0x5c,0xfc,0x10,0x03,0xd7,0x06,0x2c,0xf8,0xfc,0x1f }, { 0x54,0x63,0x73,0xa5,0xd0,0x3f,0xe2,0x18,0x05,0x14,0xae,0x4e,0xe8,0x5e,0xe9,0xfd,0xb9,0x6b,0x32,0xf4,0x2e,0x0e,0x4b,0x2c,0xab,0x84,0xd7,0x5e,0xd5,0x3e,0x80,0x33 }, { 0xb6,0xea,0x35,0xe4,0xba,0xe6,0x98,0x78,0x06,0xcb,0x8a,0x66,0xec,0xe4,0xc1,0x28,0xf4,0x64,0xff,0x64,0xf2,0xfc,0x36,0x0f,0xbe,0x0a,0xde,0xe5,0xdb,0x3a,0x49,0x12 }, { 0x80,0xeb,0xa2,0x21,0x8a,0x3b,0xed,0x1c,0xcb,0x2d,0x94,0x28,0xf8,0x6b,0xc1,0xdb,0xce,0x76,0xf7,0x8c,0x30,0x68,0x9e,0x7c,0xc3,0x3f,0xf1,0xec,0x8c,0x3a,0xd5,0x12 }, { 0x90,0x92,0xda,0x19,0xa2,0x89,0x74,0xab,0x9f,0xc5,0xad,0x76,0xa9,0x02,0x0e,0x64,0x5a,0x5d,0x57,0x67,0x14,0xd2,0xff,0x06,0x91,0x41,0x20,0xeb,0x01,0xe0,0xa9,0x07 }, { 0xc4,0xa1,0xe5,0x87,0x30,0x0f,0xfa,0x30,0x13,0x0c,0x67,0xda,0xc1,0xc6,0x1a,0xe5,0xb8,0x7d,0xaa,0x4c,0xba,0x69,0x91,0xad,0x6c,0xf5,0x4c,0x38,0xa4,0x7d,0x30,0x00 }, { 0xdd,0x04,0x5f,0xf6,0xf2,0xdb,0x0f,0x98,0x86,0x72,0xcd,0x69,0x5d,0x8f,0xe9,0x3f,0xc8,0x86,0x6c,0xb0,0xa0,0x06,0xd8,0x57,0xa2,0xa6,0x1a,0x2b,0xe4,0xdf,0x7e,0x3e }, { 0x5f,0x67,0x46,0x72,0x1c,0xe8,0x8b,0xc9,0x78,0x24,0xcd,0x54,0xaf,0x5e,0x0a,0x0c,0x66,0x1a,0x7f,0x9a,0xf6,0x26,0xa5,0xa2,0x5b,0x75,0xf5,0x08,0xf1,0x49,0xdc,0x40 }, { 0x95,0x83,0x7d,0x76,0x9a,0x03,0x56,0x2a,0x4a,0x89,0xab,0x4b,0xd8,0x3c,0xe6,0x48,0x9c,0x5e,0x44,0xba,0xb5,0x91,0x33,0xda,0x04,0x88,0x45,0x2d,0xa5,0x17,0x10,0x06 }, { 0x3c,0xc4,0xb4,0xd9,0xe8,0x15,0x93,0x1e,0x1f,0xf4,0xa5,0xaa,0x84,0x4d,0x78,0x88,0x1c,0xd8,0x4e,0x34,0x44,0xf7,0x81,0x0a,0x7c,0xf6,0x05,0x9e,0x3e,0x86,0x43,0x72 }, { 0x7e,0x74,0x85,0x24,0x56,0xde,0x09,0xa5,0xb0,0xd6,0xeb,0xf7,0x63,0x26,0xfb,0xb5,0x78,0x46,0xb4,0x1a,0x07,0xa3,0x41,0xb0,0x38,0x5e,0x7f,0x4e,0xe1,0x17,0x71,0x47 }, { 0xa2,0xdb,0x34,0xf7,0x4e,0x77,0x81,0x47,0x99,0x7e,0x24,0x1e,0x9f,0x6d,0x4f,0x52,0x1a,0xa8,0x0b,0xd5,0x44,0x3d,0x42,0x24,0x42,0x6c,0x9b,0x5c,0xeb,0xb0,0x9b,0x3d }, { 0xf5,0xa7,0xb7,0xf6,0x6f,0x7f,0x17,0xc1,0x6c,0x27,0xe1,0x59,0x38,0x98,0xdf,0x53,0xf0,0xd1,0x1b,0xdd,0x8f,0x02,0x79,0x79,0xca,0xfc,0x24,0xd2,0x06,0xb7,0xe3,0x2c }, { 0xee,0xf3,0x3c,0x17,0x9f,0x81,0x6b,0xda,0x03,0x4e,0x43,0xb0,0x11,0xff,0x1c,0x38,0x73,0x06,0xed,0xc7,0xce,0x5b,0xaa,0x20,0xc6,0x6f,0x1e,0x84,0x92,0xd7,0xa3,0x11 }, { 0x29,0xf9,0x9f,0xa7,0x31,0xa0,0xec,0x1f,0xd7,0x08,0x7d,0xdf,0xbb,0x59,0x7d,0xcb,0x98,0x36,0xd9,0x55,0x29,0x40,0xdf,0xe0,0x45,0x20,0x44,0xdc,0x85,0xd6,0xb0,0x36 }, { 0xe7,0x18,0xcb,0xb1,0x93,0x6f,0x94,0x3b,0x9a,0x68,0xeb,0xaf,0xee,0x1b,0x80,0xa9,0x83,0xae,0x3a,0xe3,0xb9,0x54,0xa7,0xca,0xfc,0x16,0x70,0x2a,0x91,0x87,0x1c,0x2c }, { 0x6e,0x67,0x99,0x76,0x1e,0x15,0x79,0x30,0xfd,0x32,0x9f,0x81,0x91,0xa0,0x83,0xc6,0xd3,0x99,0xbf,0x0f,0xac,0xd5,0x86,0x9f,0xc5,0x9a,0xd3,0x4c,0x67,0xa7,0x5e,0x6c }, { 0x30,0xd5,0x64,0x99,0x1e,0x8b,0x78,0x8b,0x3e,0x27,0x61,0x40,0x58,0x4e,0x41,0x1b,0x40,0xa2,0xcb,0xa5,0xc6,0x6a,0x38,0xf1,0x6f,0xdf,0xa6,0xb4,0x22,0xaf,0xaa,0x71 }, { 0x70,0xa6,0x93,0xf5,0x03,0xa2,0x00,0x0f,0xa5,0x3f,0x0a,0x98,0x10,0x3a,0xc2,0xc8,0x30,0x04,0x7e,0x88,0xa6,0x1c,0xd9,0xc6,0x74,0x04,0xd0,0xe2,0xf1,0x36,0x6a,0x17 }, { 0xbd,0xa2,0xec,0x17,0x87,0xda,0x8e,0xcc,0x23,0x34,0x01,0x26,0xb5,0x8e,0x25,0xd0,0x6f,0x4f,0x24,0xc2,0x03,0xfe,0x12,0xc9,0x97,0xa0,0x94,0x81,0xa8,0xe2,0x2d,0x0e }, { 0x25,0xf1,0x9f,0x49,0xb3,0xc2,0x17,0x34,0x9d,0x1c,0x56,0xfb,0xa5,0xfb,0x01,0xa5,0xed,0x4e,0xec,0xc6,0x83,0x12,0xe7,0xd4,0x29,0xee,0xc2,0xc2,0xb2,0x1a,0x9e,0x4c }, { 0x33,0x1c,0x81,0x26,0xbb,0x5b,0x15,0xd7,0x5a,0x64,0x46,0x2c,0x9c,0x09,0xa8,0x84,0x57,0x13,0xb1,0x49,0x74,0xee,0x9c,0x61,0x21,0x33,0x36,0x26,0xe2,0xd7,0xb5,0x0e }, { 0xaa,0xb0,0x7c,0x63,0xff,0x89,0x3a,0x8a,0x86,0x31,0xd9,0xea,0xb6,0x09,0x48,0x2d,0x1d,0x9b,0x51,0x5a,0x98,0x95,0x33,0x13,0xd4,0x50,0xc8,0x40,0x94,0xb5,0x53,0x0e }, { 0x06,0xc4,0xae,0x12,0x5a,0x8c,0xf6,0xb5,0xa4,0xf9,0x0e,0x72,0xc7,0x5c,0x40,0xe8,0xbc,0x27,0x0e,0x6b,0x6d,0xca,0xba,0x2b,0x19,0xe5,0x80,0x11,0xac,0x4a,0xc8,0x1a }, { 0x91,0xcd,0xf6,0x17,0x85,0x2c,0xa0,0x1f,0xc1,0x2a,0x08,0x69,0x20,0xc1,0x26,0xac,0x87,0x46,0x47,0xd1,0x26,0xec,0x68,0xcb,0x87,0x0c,0x57,0xa1,0x15,0xea,0x18,0x6d }, { 0x19,0xfa,0x34,0xd6,0xfb,0x3c,0xd7,0x4a,0x11,0xcf,0xfd,0x66,0xc2,0x69,0xc1,0x68,0x6d,0x6a,0x62,0xca,0xa2,0x6f,0xff,0x9f,0xe3,0x69,0x6a,0xde,0xd9,0x72,0x8c,0x21 }, { 0x23,0x6d,0x74,0x08,0xd9,0x04,0x9d,0xc5,0x10,0x96,0xb1,0xe9,0x9b,0xe6,0x11,0xa4,0x02,0x4a,0xe1,0x02,0xc6,0x7b,0x84,0x52,0x91,0xf4,0xa8,0xdd,0x0b,0x97,0x6f,0x30 }, { 0xd1,0x29,0x37,0x66,0xb5,0xdd,0xca,0x9a,0xaa,0x27,0x3a,0x41,0x85,0xe6,0x14,0x39,0xc5,0x03,0x0b,0x86,0x87,0xa3,0x31,0xb8,0x8a,0xf0,0x8e,0xa5,0xd9,0x96,0x6a,0x06 }, { 0x70,0xa9,0xad,0x37,0xd7,0xd9,0x84,0x4f,0x27,0x22,0x6d,0xe3,0x0a,0x01,0x90,0xff,0x6a,0x86,0x6b,0xaf,0x5b,0x2c,0xa4,0x6e,0x29,0x61,0x0e,0xd2,0x54,0x7a,0x70,0x3f }, { 0x12,0x17,0xe9,0x90,0x68,0xd4,0x97,0xbe,0xde,0x77,0xd8,0x0d,0xf8,0xfa,0x12,0x58,0x37,0xd3,0x2c,0x78,0xeb,0x32,0xde,0xf6,0x1e,0x30,0x30,0xce,0xd3,0xd5,0xda,0x7d }, { 0x1c,0x92,0xad,0x3f,0x32,0xa3,0x52,0xbe,0xbf,0xb7,0x64,0x1d,0x9d,0x9b,0xb4,0x20,0x08,0x89,0x65,0x3d,0xbd,0x2d,0xfc,0x09,0x20,0xef,0x1e,0xcf,0xdc,0x4a,0x3b,0x65 }, { 0x77,0xb9,0xdf,0xea,0xe8,0x3a,0x16,0x0d,0xe9,0x20,0xf9,0xf8,0xff,0xf6,0xa9,0x4d,0x67,0xd6,0x0e,0x6a,0xf6,0xdc,0x28,0x8a,0xd4,0x12,0xcd,0xa3,0x0c,0xad,0xd7,0x6b }, { 0x5d,0x34,0xbf,0xf2,0x60,0xd1,0xb4,0x31,0xd0,0x3f,0x37,0x10,0x4f,0xf9,0xb6,0x52,0xf6,0x7d,0x74,0xed,0x90,0xc3,0x89,0xbe,0xf5,0xf2,0x32,0x4f,0x01,0xca,0x5b,0x49 }, { 0x85,0xdb,0x65,0xd4,0x14,0x0b,0xd5,0x7f,0x93,0x5f,0xe1,0x24,0x30,0xe2,0xc7,0x78,0x96,0xb4,0x83,0x2d,0x85,0xa7,0x01,0x0d,0x71,0x90,0x42,0xc5,0x0c,0xc9,0xb6,0x56 }, { 0x49,0x39,0xd1,0xab,0xd9,0x34,0x16,0x23,0xdf,0xf4,0x25,0x56,0x07,0xf3,0x31,0xcb,0xed,0x76,0xbe,0x12,0x70,0xb4,0xab,0x6e,0xb3,0x43,0x93,0xfd,0xac,0xab,0x65,0x22 }, { 0xcd,0x94,0x1f,0xb8,0x8b,0x98,0xfa,0xcb,0xfa,0x72,0x00,0x03,0xf8,0xd5,0xaf,0x11,0xa0,0xfc,0x24,0x2a,0x9d,0x99,0x75,0x13,0x80,0xa5,0x67,0xb7,0x6f,0x35,0x72,0x0f }, { 0x0a,0xa8,0xcb,0x6c,0xad,0x0c,0x1e,0x17,0x39,0x69,0x75,0x6a,0x71,0x0a,0x18,0x40,0xf4,0xbf,0xfd,0x27,0x6a,0xb6,0x2b,0x97,0x55,0xcd,0xca,0x2e,0xe1,0x4c,0x30,0x2c }, { 0x07,0x5b,0xe6,0x2f,0x9b,0xc4,0xd9,0xe3,0x4a,0x94,0x16,0x24,0x1e,0xcf,0x96,0x6e,0x9f,0xa3,0xa7,0x6e,0x68,0x32,0x32,0xef,0x08,0xef,0x40,0x46,0x0c,0x9b,0x7d,0x3b }, { 0xe2,0x01,0x62,0x02,0x82,0x4e,0xa1,0x8a,0xea,0x03,0x00,0x6f,0x4e,0xd6,0x84,0xac,0xf7,0xc6,0xbe,0x7e,0x38,0x3e,0x59,0x21,0x95,0x58,0xcc,0xa8,0x21,0xd3,0x84,0x54 }, { 0xb4,0x1b,0xdf,0x72,0x6e,0x1d,0xe6,0x35,0xf7,0x79,0x28,0x65,0xb1,0x8d,0xeb,0xd2,0x21,0xb4,0xb2,0x64,0x65,0x63,0x98,0xa3,0x0e,0xf3,0xb5,0x52,0x2c,0xbe,0xf2,0x77 }, { 0x78,0x1e,0xeb,0x48,0x36,0x14,0xe1,0x85,0xd3,0xd9,0x12,0x45,0xf6,0x03,0x68,0x3a,0xa7,0x40,0x16,0x9c,0x8c,0xd1,0x5d,0xcf,0x05,0x0a,0x1b,0xd7,0x3e,0x1d,0x17,0x6b }, { 0xff,0x26,0x53,0x18,0xa6,0xf1,0x83,0x4e,0x41,0x1a,0xcc,0x0a,0x01,0x3a,0xea,0x11,0xe3,0x6f,0xad,0x48,0xe0,0xab,0x3c,0xe2,0xc1,0x83,0x33,0x27,0x53,0x6e,0xd1,0x70 }, { 0xdb,0x04,0x14,0xac,0x21,0x70,0xcf,0xe4,0x5a,0x12,0x36,0x9c,0x07,0x4e,0x9f,0xae,0x64,0x37,0x04,0x67,0x7d,0x54,0x16,0x6a,0x06,0xda,0xac,0x0e,0x4f,0xe2,0x07,0x2b }, { 0xbc,0x8c,0x7f,0x97,0x0b,0x84,0x9a,0xe6,0xcf,0xf2,0xa0,0xb7,0xb0,0x71,0x52,0xc7,0xf5,0x97,0x0d,0x12,0x39,0x34,0x25,0x51,0x19,0xaf,0x5c,0xd4,0x73,0x76,0x9b,0x01 }, { 0x7b,0x80,0xae,0x2b,0xd9,0x36,0x8f,0x36,0xcb,0x7a,0x00,0xb5,0xbf,0xa5,0xba,0x66,0xc5,0xec,0xca,0xce,0x57,0x3e,0xac,0x20,0x49,0x68,0x17,0x5c,0xf9,0xe0,0xb2,0x79 }, { 0x1e,0x23,0x59,0xf3,0xa4,0xe4,0x1e,0x8d,0x38,0x0b,0xf5,0x9b,0x00,0xb3,0x48,0x2e,0xd1,0x26,0x1a,0xf4,0x44,0x48,0xe5,0x54,0xaa,0x1a,0x0a,0xca,0x5b,0x21,0x77,0x05 }, { 0x96,0x42,0x1d,0x0f,0x6c,0x80,0x63,0xed,0xe2,0x36,0xd0,0x8d,0x8a,0x90,0x3d,0x1b,0x31,0x40,0xdb,0xc1,0xda,0x11,0xf7,0x9b,0x48,0x9d,0xaf,0x40,0x04,0x18,0xe7,0x3a }, { 0x17,0x01,0xd1,0x34,0xb6,0xec,0xf1,0xb4,0x5c,0x06,0x41,0xe8,0xd3,0x55,0x44,0xd0,0xe1,0xa6,0x12,0x5c,0x4f,0x58,0x51,0xc6,0xa0,0x36,0x32,0x18,0x02,0xed,0x7e,0x15 }, { 0x0b,0x87,0x37,0xef,0xac,0x5f,0xcd,0x28,0x44,0x00,0x96,0x21,0xe9,0x41,0x95,0xe7,0x60,0xde,0xd7,0x6f,0x0e,0x73,0x48,0xb1,0x05,0x9a,0x1b,0xd4,0x38,0x94,0x75,0x79 }, { 0x25,0xa5,0xf0,0x4e,0x98,0x31,0x31,0x2d,0x97,0x30,0xd2,0x7f,0x12,0xfa,0x5f,0x66,0x4c,0xa3,0xa2,0x8e,0x8b,0x98,0xec,0xe6,0xb6,0x90,0xf6,0xad,0x74,0xcd,0x4d,0x32 }, { 0x7d,0xbb,0xaf,0x41,0xbe,0xa5,0x8d,0x50,0xef,0x81,0xab,0xca,0x6c,0x3a,0x48,0xc4,0xf3,0xd4,0xed,0x41,0x74,0x14,0x34,0xe1,0x15,0x2c,0x0b,0x2d,0x7c,0x22,0x67,0x1f }, { 0x7e,0xcf,0xa5,0x25,0xcf,0x23,0x7b,0xfd,0x1b,0xfe,0xef,0x21,0xcd,0x34,0x80,0x7a,0xae,0x81,0x39,0x6e,0xd8,0x6d,0xf4,0x4d,0x73,0xce,0xfb,0xd3,0x19,0xf1,0x72,0x73 }, { 0x95,0xfd,0x98,0x6b,0xc3,0x24,0x8e,0x9e,0x4b,0x61,0x16,0x4a,0xb9,0xf0,0x0f,0xf7,0x09,0x31,0xb9,0x41,0x42,0xa0,0xec,0xe3,0x17,0x1b,0x6f,0x3b,0x5c,0x02,0xd2,0x0f }, { 0x40,0x62,0x30,0x73,0x99,0x39,0x3c,0x8f,0x4c,0xa3,0x13,0xfc,0x7c,0x3d,0x03,0x25,0x1c,0xb5,0x7e,0x83,0xab,0x4e,0xfd,0xfe,0x38,0x99,0x01,0xa9,0x32,0x46,0xb8,0x66 }, { 0xe2,0x1b,0xa0,0x85,0x29,0xd0,0x8c,0x31,0x5e,0x5e,0xf8,0xb4,0xdc,0x69,0x33,0x13,0xb3,0x72,0x9e,0x36,0xe8,0x16,0x66,0x5e,0x29,0xfa,0xc0,0x9e,0xf1,0x0f,0xf0,0x1c }, { 0x7a,0x50,0x09,0xec,0x6f,0x95,0x91,0x78,0x6c,0x47,0xde,0x89,0x2a,0x8d,0x42,0xc5,0x46,0xf3,0xeb,0x20,0x0c,0x38,0x77,0x11,0xd8,0x18,0xb5,0xcf,0xc7,0xe2,0x92,0x27 }, { 0xcd,0xd8,0x08,0x86,0x86,0x39,0x90,0xb6,0x7b,0xd4,0x7a,0x33,0xb9,0x73,0x22,0xcc,0xd4,0x9f,0x60,0x55,0xdc,0xf1,0xd3,0xe7,0xfd,0x58,0x04,0xd6,0x7b,0x70,0xa5,0x75 }, { 0x7f,0x20,0x88,0xcb,0x94,0xd0,0xee,0x31,0x14,0x24,0xe9,0xb0,0x73,0x98,0xae,0x97,0x46,0x3d,0xa4,0x99,0x90,0x6b,0xc2,0xa8,0x8a,0xf0,0x81,0x9b,0x8d,0xb6,0x47,0x75 }, { 0x72,0x14,0x93,0x6a,0x4a,0x4d,0x68,0x88,0x91,0xab,0x66,0x9b,0x9f,0xbf,0xf7,0x81,0x1f,0x0a,0x85,0xb8,0x7f,0xfe,0xc0,0x39,0x36,0x56,0x7b,0x7c,0x81,0x2e,0x81,0x34 }, { 0xc7,0x30,0x48,0xf3,0x9e,0x32,0xd7,0xc6,0x9a,0x4e,0x0c,0x16,0xde,0xa7,0xcf,0x34,0x30,0xfc,0xd5,0x0e,0x01,0x9f,0xfe,0x8a,0x1c,0x28,0xe4,0x83,0x2d,0xc8,0x23,0x49 }, { 0xbe,0x79,0x17,0xf1,0xe9,0x45,0x00,0x11,0xaa,0x93,0x7a,0x3a,0x39,0xa0,0xe6,0x06,0x15,0xe0,0x00,0xe5,0xdc,0x32,0x3f,0xfb,0x24,0xe4,0xba,0x34,0x28,0x6d,0x26,0x1f }, { 0x2c,0xfc,0x3f,0x3a,0x4b,0xc6,0x54,0xa8,0x49,0x7b,0x02,0x2a,0xd5,0x26,0x05,0x45,0x90,0x9d,0xf2,0xda,0xf4,0x83,0xb8,0xbc,0x04,0xe6,0x90,0x80,0xf6,0x7a,0x7a,0x34 }, { 0xd8,0x8c,0x25,0x58,0xdc,0x46,0x29,0xd5,0xe7,0x77,0x54,0x63,0xeb,0xb1,0xb3,0x9e,0x31,0xb4,0x3a,0xf7,0xcd,0x34,0xa8,0xf8,0x4e,0x44,0xa7,0xe5,0x82,0xa3,0xf9,0x40 }, { 0x38,0x88,0x70,0xe8,0xdd,0x48,0xaf,0xf9,0x8a,0xd2,0xd7,0x8e,0x70,0xab,0xcf,0x78,0xfe,0x01,0xa0,0x0d,0xc7,0x75,0x6d,0x57,0x48,0x6b,0xfe,0x09,0x30,0x4b,0x8e,0x13 }, { 0x5f,0xb7,0x4a,0x2f,0x8a,0x3c,0xeb,0x84,0x0c,0x0a,0xde,0x07,0xe5,0x5f,0x5f,0x46,0x21,0xf9,0xf9,0xaf,0x21,0x4d,0x63,0x0c,0xf3,0xc2,0x5f,0xc2,0xc4,0xd7,0xf1,0x11 }, { 0x37,0x0e,0xbf,0x83,0x86,0x1b,0xde,0x52,0xb7,0x0a,0x28,0x3e,0x26,0x7f,0x4a,0x89,0xac,0x48,0x0c,0xc9,0x66,0x30,0x9c,0xb6,0x8e,0x5a,0x25,0x79,0xda,0xd5,0x63,0x4e }, { 0xfb,0xc5,0x15,0x0e,0x65,0x75,0x1c,0xbf,0xd0,0x87,0xb9,0xe5,0xc2,0xa3,0x76,0x22,0xcd,0x03,0xab,0x7b,0x34,0x74,0x18,0x7b,0x54,0xca,0xab,0xc9,0x67,0x3b,0x72,0x6e }, { 0xf5,0x03,0x2a,0x75,0x1f,0x2f,0xa2,0x31,0x93,0x4e,0xf0,0x66,0x02,0x73,0xd6,0xae,0xc8,0x9f,0xf6,0xb7,0x22,0x23,0x2a,0x7f,0x1a,0xe9,0x23,0x89,0x53,0xb2,0xd4,0x35 }, { 0xe0,0x72,0x08,0x0f,0xfc,0x79,0x53,0xb8,0xeb,0x0d,0x15,0x7c,0x22,0x26,0xba,0x13,0xe8,0xbe,0xa6,0x36,0x37,0xbc,0xdc,0xe8,0x18,0x45,0x45,0x8f,0xd3,0x34,0xb9,0x33 }, { 0x87,0x85,0xc7,0x3e,0xc4,0x03,0xf7,0x7b,0x19,0x58,0x95,0x5e,0xed,0xeb,0xfd,0xf3,0x96,0xa2,0xa3,0xe5,0x2b,0x90,0x16,0x4c,0xa1,0xa6,0x47,0x1c,0xe1,0xc9,0x0a,0x60 }, { 0xa6,0x84,0x17,0x38,0xe9,0x81,0xef,0xd5,0xce,0x42,0xdf,0x84,0xd7,0x81,0x1c,0xeb,0xd2,0x92,0xe7,0x74,0x19,0x15,0xf0,0x25,0x59,0xd1,0x46,0xe1,0xd9,0x0a,0x1e,0x2d }, { 0x31,0xdb,0x98,0xef,0x5e,0x6c,0x6b,0x10,0xcc,0x68,0xb2,0x97,0x66,0xe2,0x7e,0xc7,0x16,0xb1,0x1c,0x2e,0x84,0xaf,0xb0,0xb2,0xdc,0x19,0xd6,0x3d,0xbe,0xc2,0xec,0x1b }, { 0x1c,0x67,0x9b,0xaf,0xf2,0x92,0x69,0x43,0x06,0x34,0xed,0xae,0xf6,0xc0,0x8c,0x81,0x8c,0xd2,0xa6,0x97,0xaa,0x0c,0x3b,0x63,0x9b,0xb7,0x64,0xbe,0x6e,0x89,0x15,0x6c }, { 0xc2,0x0c,0x8a,0x23,0xbf,0xf9,0x34,0xe0,0x95,0xa9,0x4e,0xc3,0xf8,0x4c,0x61,0x7a,0xdd,0x4b,0x91,0x8f,0x95,0xc8,0x22,0x84,0xa6,0xbf,0xb5,0x34,0x10,0x92,0xac,0x4b }, { 0xe9,0x35,0xf4,0xff,0xe2,0x33,0x7b,0xa0,0xd4,0x08,0x6f,0xc4,0x43,0x0e,0xa1,0x0b,0x4d,0xf0,0x14,0xcb,0xb0,0x46,0x65,0x12,0x68,0x72,0x2a,0x44,0xf5,0xe3,0x88,0x2b }, { 0x8f,0xda,0xd7,0xc0,0x19,0x6b,0xbd,0x2c,0xf2,0x65,0x23,0x6d,0x02,0x88,0xf7,0x95,0xb8,0xfd,0x8b,0xa7,0x5a,0x94,0xc0,0x3a,0xc0,0xdd,0x27,0x34,0xfd,0x25,0xa9,0x5e }, { 0xa1,0x20,0x92,0x8e,0x8d,0x38,0xa1,0x0c,0xc6,0x51,0xd6,0x28,0x26,0xe7,0x38,0x37,0x18,0x4d,0x4f,0xc2,0x06,0x42,0x1c,0x6c,0x74,0xf8,0xe3,0xfd,0xf8,0xa4,0x45,0x17 }, { 0xd4,0x89,0xb3,0x49,0x38,0x18,0xcd,0x59,0x85,0xe0,0x50,0xa9,0xb8,0xf5,0x47,0xd3,0x04,0xea,0xd7,0x1a,0x0e,0x92,0x19,0x6f,0x0d,0xcf,0x1d,0x25,0x1f,0xe1,0xe5,0x48 }, { 0xa1,0x17,0xb7,0xcb,0x84,0xe2,0x04,0xe7,0xed,0x20,0x1c,0x82,0x67,0xd2,0x82,0x65,0x5e,0xa8,0xe9,0x94,0x22,0x51,0xac,0x04,0xfa,0x5d,0xb2,0x59,0xc3,0x1d,0xda,0x48 }, { 0xde,0x2f,0xd8,0xd1,0xfe,0x02,0xf7,0xc0,0x44,0xfb,0x44,0x07,0x43,0x4e,0x98,0xfe,0xa3,0x79,0x9a,0x33,0x64,0x01,0x43,0xaf,0x9b,0xab,0x94,0xc3,0xee,0x82,0xbd,0x6e }, { 0xc8,0x85,0x03,0x7e,0x45,0x82,0x04,0xac,0x35,0xbe,0x4e,0xef,0x9c,0x07,0xe2,0x76,0xf3,0x7d,0x03,0x4f,0xec,0x35,0xa4,0x37,0xcd,0x19,0x33,0x19,0xc3,0x56,0xf8,0x06 }, { 0xbb,0xa5,0x35,0x5b,0xe7,0x3d,0xb2,0x32,0x23,0xfb,0xf5,0x75,0x73,0x63,0x10,0xee,0xf5,0xb8,0x63,0x52,0x97,0xdd,0x64,0x12,0x14,0x83,0xf7,0x5d,0x05,0xbe,0x5d,0x77 }, { 0x6a,0xe7,0x8c,0x73,0x96,0x82,0x73,0x54,0xd7,0x69,0xd3,0x70,0xa0,0xfe,0xc0,0xf1,0x68,0x85,0x49,0x67,0x53,0x26,0x6e,0x35,0x31,0xd4,0x71,0x4d,0xbe,0x55,0xb3,0x24 }, { 0xf9,0xe0,0x1b,0x11,0x76,0x2b,0xd4,0x76,0x21,0xae,0x19,0x78,0xd1,0x55,0x16,0x67,0xcc,0xb1,0xcc,0xb8,0x68,0x13,0x1f,0x00,0xf5,0xca,0x12,0x46,0x6d,0x05,0x61,0x33 }, { 0x0c,0x62,0x13,0x9a,0x0f,0x55,0x40,0xd2,0x33,0x69,0xaa,0xa2,0x71,0xc3,0xf1,0xad,0x11,0xfe,0xff,0x73,0x08,0x69,0x82,0x9f,0x41,0x0d,0x38,0xb8,0x6b,0x82,0x29,0x12 }, { 0xfe,0xd0,0x80,0xa2,0x58,0x66,0xdf,0x61,0x54,0x38,0x70,0x07,0x3c,0xe2,0x3e,0xb5,0x96,0x6b,0x4e,0xda,0xfe,0x15,0x96,0xb1,0x6c,0xc3,0x96,0xc3,0x84,0xc2,0x64,0x7a }, { 0xba,0x0b,0x92,0xef,0x62,0x24,0x75,0xe1,0xab,0x69,0x8f,0x71,0x6a,0x65,0x02,0xf3,0x72,0xfa,0x37,0xba,0x97,0x22,0xd3,0x8b,0x51,0x8c,0xbf,0xc0,0x2d,0xd6,0xb2,0x27 }, { 0x96,0x1e,0x1b,0x00,0x6d,0xf4,0xb1,0x6b,0xc2,0x3c,0x23,0xb4,0xc0,0xdc,0x25,0x00,0x03,0x30,0x0d,0xfe,0xc4,0x2b,0x64,0x1d,0xe4,0x12,0xef,0x31,0xce,0xb6,0xeb,0x59 }, { 0x0e,0xd0,0x49,0x47,0x73,0xbf,0x3c,0x7d,0x9e,0xf1,0x66,0x28,0x17,0x9c,0x55,0xa1,0x61,0xcb,0x69,0x9f,0xd4,0xed,0x44,0x69,0xaf,0x39,0x37,0xc7,0x46,0xb3,0x21,0x49 }, { 0xdc,0x1f,0x97,0xba,0x62,0x0d,0x73,0x49,0x93,0xa5,0x80,0x78,0x79,0x99,0x5b,0x54,0x9e,0xd9,0xd5,0x1e,0x5d,0x5d,0x95,0x16,0x9f,0xb9,0x82,0xc9,0x82,0x5d,0xc1,0x53 }, { 0x5f,0x3a,0xe8,0x08,0x9a,0x85,0x40,0x6d,0x74,0x8a,0xc7,0xfb,0xf0,0x10,0xb6,0x84,0xc7,0x34,0x41,0x77,0x75,0x34,0x6e,0x0c,0xef,0x65,0x40,0xb1,0x62,0x5b,0x1f,0x07 }, { 0x11,0x14,0x7c,0x95,0x3e,0xe9,0xa2,0x9b,0x1d,0x4f,0x19,0x2c,0xfd,0xf5,0x65,0x7d,0x48,0x2b,0x45,0xf6,0x3d,0x8a,0x31,0xfe,0xe0,0xaa,0x6b,0x31,0x85,0x35,0xdc,0x23 }, { 0x20,0x42,0xc3,0xa1,0xd6,0x6a,0xb2,0xc7,0xcb,0xa6,0x71,0xb4,0x82,0xe1,0x8e,0x9f,0x29,0x3a,0x5e,0x0d,0x2a,0xeb,0x9a,0x17,0x48,0x85,0x5a,0x38,0x56,0xfc,0x35,0x7c }, { 0x71,0xea,0x4a,0x4b,0xf1,0xcf,0x3a,0xf2,0xc7,0x5d,0xcd,0xb1,0xc6,0xf9,0xd3,0xe5,0x79,0xf8,0xb7,0x51,0x4b,0x1f,0xa1,0x40,0xfd,0xe1,0x3f,0x0e,0x64,0xc4,0x9c,0x71 }, { 0x68,0xae,0x94,0x4e,0x3f,0xbf,0x6a,0x99,0x7f,0x97,0x15,0xa0,0x2b,0x11,0xc7,0xc2,0xf3,0x38,0xa6,0xae,0x6b,0x12,0x44,0xe3,0xdc,0x5d,0x16,0x67,0x74,0x76,0xeb,0x42 }, { 0xf0,0xaa,0x8e,0x0c,0x39,0x0e,0xee,0x39,0x0d,0x52,0xd1,0x4f,0xec,0x4d,0x62,0x69,0x98,0x48,0x2c,0xb4,0x1f,0x04,0xa8,0xa2,0x7c,0xb2,0x46,0x7d,0xa9,0x15,0x2f,0x6e }, { 0xa8,0xda,0x18,0x99,0x28,0x82,0xdb,0x96,0x67,0x95,0xef,0x37,0xea,0x97,0x79,0x5c,0x9c,0xe5,0xdd,0x1c,0xf7,0xd4,0xe7,0x73,0x74,0xdb,0x3f,0xd2,0x54,0xa7,0x07,0x7c }, { 0x19,0xf3,0x33,0x40,0x8a,0x11,0x8b,0xbb,0xf8,0x3f,0xc7,0x8c,0x2e,0x02,0x8b,0x67,0x0d,0x90,0x22,0xf7,0x9a,0x01,0x7f,0xe5,0x05,0xdf,0x13,0x77,0xf3,0xfd,0x60,0x3a }, { 0x25,0x8f,0x3e,0xaa,0x41,0x4a,0x8c,0x45,0x39,0x39,0x15,0x57,0xd1,0xc8,0x60,0x5c,0x05,0x72,0x3c,0x14,0x2f,0x80,0x02,0x63,0x0b,0xf4,0xd3,0x22,0x78,0xfb,0x03,0x5c }, { 0x26,0x22,0xec,0x21,0x5b,0x20,0x22,0x12,0xc5,0x8e,0xb8,0xec,0xdb,0x9e,0x8d,0x0b,0xff,0x0b,0x19,0x3c,0x9f,0x05,0xbe,0x13,0x1d,0xa5,0x71,0x66,0xce,0x50,0xaf,0x3f }, { 0x92,0xc6,0xca,0x59,0x75,0x46,0x50,0x35,0x8a,0x7f,0x74,0x13,0xf5,0xc5,0xe0,0xf5,0x74,0x62,0x77,0x10,0xa5,0x8a,0x95,0x16,0xd9,0xd4,0x8a,0x4e,0xd3,0xa5,0xca,0x51 }, { 0x61,0x17,0x1a,0xf5,0x67,0x79,0xf8,0xc0,0x6e,0xef,0xfc,0xe4,0x8a,0x08,0x1c,0xec,0x70,0x22,0xb9,0x14,0xe8,0xee,0xb5,0xee,0xd3,0xf1,0x55,0xd0,0x30,0x53,0xe7,0x23 }, { 0x5d,0x7d,0x9c,0xa5,0x2a,0xf7,0x72,0x2a,0xe9,0xd0,0x0d,0xda,0xaa,0x84,0x85,0x28,0xf4,0xff,0xc4,0xb0,0x8e,0x5f,0xae,0xf6,0x20,0xd6,0x41,0x4a,0x7c,0xe2,0x64,0x10 }, { 0x4d,0x78,0xf3,0x0b,0xf2,0xfd,0xe3,0xaa,0x3f,0xb4,0x5d,0x57,0x38,0x6a,0x09,0xad,0x8e,0xa9,0x89,0xf8,0xf0,0xfe,0xe0,0xa9,0x1a,0x5e,0x6f,0xbe,0x86,0xaf,0x13,0x18 }, { 0xe4,0x24,0x17,0x05,0x5d,0x25,0x20,0xae,0x2e,0x56,0xf9,0x06,0x6e,0x4f,0x7f,0xab,0xb8,0x69,0xa1,0xd6,0x9a,0xc6,0x3d,0x26,0x39,0x0f,0x84,0x6f,0xf6,0xfb,0x1f,0x21 }, { 0x38,0x25,0xd5,0x9e,0xc4,0x6d,0xe3,0xe2,0x9e,0x45,0x50,0x47,0x2e,0x2e,0xbc,0x5e,0x05,0x1f,0x31,0xaf,0x0f,0x67,0xe7,0x52,0xc3,0x7f,0x7f,0x37,0xa7,0xf2,0xef,0x42 }, { 0x67,0xf1,0x26,0xe8,0xfc,0xd0,0x97,0xbe,0x74,0xbf,0xfb,0x3f,0x13,0x54,0x87,0x08,0x39,0x88,0x57,0x7c,0x0c,0x8e,0x54,0x55,0x92,0x1e,0x12,0xf5,0x61,0xde,0x26,0x23 }, { 0x70,0x90,0x9d,0xf5,0xe7,0x0e,0x17,0xc0,0xdc,0x0b,0x37,0xd8,0x58,0xd0,0x77,0x89,0xd7,0x64,0xec,0xd1,0x7f,0x1b,0x6b,0x96,0x29,0x63,0x7f,0xaf,0xa2,0xf8,0x97,0x4e }, { 0xb2,0x8d,0x4a,0x7a,0xaf,0x85,0xbf,0xa5,0x29,0x72,0x23,0xa0,0xcc,0x09,0xad,0x01,0x3b,0x3b,0x59,0x31,0x2d,0x86,0x1e,0x92,0xb6,0xc5,0x6e,0xe7,0xaf,0x9d,0x4c,0x1d }, { 0xa8,0x75,0x30,0x95,0x6d,0x85,0x9d,0xd2,0xd7,0x6e,0xc6,0x88,0xc1,0xbc,0x36,0x24,0x9a,0xb2,0x50,0xcd,0xa7,0x45,0xff,0xe2,0x17,0xb0,0x0e,0x3e,0x48,0x46,0x22,0x5e }, { 0xfe,0xd6,0xb6,0x2d,0x3a,0xd5,0x6f,0x3f,0x6a,0x92,0x5a,0x6c,0x97,0xdd,0x62,0x49,0xde,0x27,0xbf,0x2c,0x4f,0xbe,0x3d,0xe9,0x6b,0x3d,0xd1,0x02,0xb9,0x86,0x28,0x69 }, { 0x81,0x44,0x04,0x84,0xb4,0xa2,0xbb,0x64,0xe9,0x58,0x25,0x0f,0x6a,0x3c,0xc0,0xea,0x55,0x9b,0x0c,0xdc,0x88,0xee,0x55,0xc3,0x26,0xe3,0x10,0xc0,0x68,0xdb,0xfd,0x0b }, { 0xd5,0x50,0x20,0x79,0x86,0xf2,0x01,0xe3,0xec,0x13,0x47,0xf9,0x67,0x43,0x9a,0x8a,0x36,0xd4,0x47,0x6a,0x65,0xa9,0x7c,0x23,0x79,0x1a,0xc0,0x97,0x51,0x68,0xed,0x5e }, { 0xd6,0x64,0xd7,0x43,0x2f,0x76,0xcd,0x58,0xdc,0x47,0xe5,0x12,0xd9,0x67,0xe5,0xe5,0xea,0xb9,0xb8,0x3d,0xad,0x48,0x82,0x5f,0x55,0x1b,0xd7,0x51,0x8b,0xd9,0x5c,0x40 }, { 0x79,0x3c,0x76,0x47,0x03,0x5a,0x74,0x27,0xce,0x63,0x0b,0xb1,0xa8,0x27,0x1b,0xa2,0x2a,0xbd,0xe5,0x6e,0xba,0x7f,0xf9,0x7a,0x79,0x14,0x18,0x0d,0x1e,0x55,0xca,0x71 }, { 0x0d,0xa9,0xe8,0xcf,0x31,0x54,0x67,0x4a,0xf5,0xec,0xd1,0xff,0x02,0xf1,0x16,0x6e,0xc7,0x59,0xa8,0x37,0xac,0x4a,0xb7,0xe2,0x7f,0xb0,0x3d,0xb9,0x96,0xf5,0x8f,0x46 }, { 0x11,0x4c,0x26,0xb2,0xd9,0x49,0x73,0x9c,0x4e,0xa2,0x90,0x57,0x59,0x96,0x27,0x8b,0x49,0x57,0x67,0xbe,0x5f,0x7b,0x15,0xea,0xe5,0x09,0x73,0x16,0xfd,0x21,0x1c,0x0b }, { 0x3e,0x24,0x29,0x6d,0x65,0x98,0xc3,0xd3,0x68,0x95,0xf6,0x0b,0xec,0xe2,0x19,0xd7,0x9c,0x77,0xb9,0x0b,0xf1,0x92,0xab,0x3d,0x41,0x58,0xec,0xd0,0x30,0xf6,0x51,0x27 }, { 0xfa,0xd2,0xe4,0x1f,0x54,0xf2,0xaf,0xb0,0x19,0x0b,0x4b,0x29,0xd1,0x1a,0x84,0xa5,0x5f,0x69,0x66,0x59,0xa4,0xb2,0x03,0x74,0xe1,0x46,0x81,0x75,0x38,0x8c,0x7f,0x32 }, { 0x41,0x0e,0x63,0x5f,0xa3,0x9c,0x86,0x64,0x91,0x1e,0x2a,0x6c,0xc3,0x7d,0x1e,0x6b,0x15,0x4c,0x54,0x64,0x57,0x69,0xa8,0x15,0x01,0x37,0xc5,0xba,0xf2,0xe1,0x52,0x19 }, { 0xee,0x67,0x56,0x4d,0x15,0x40,0x67,0x32,0x2d,0x3d,0xfd,0x5b,0x29,0xf4,0x65,0x06,0xd8,0x21,0x27,0x4e,0xcf,0x5f,0xfd,0x37,0x2f,0xdc,0x3f,0x42,0x85,0xce,0xc3,0x08 }, { 0xd1,0x94,0x7b,0x09,0xb2,0xdd,0xc3,0x3f,0xfc,0xad,0x6d,0x3d,0xa1,0xe8,0x38,0x1d,0xb0,0x47,0x1a,0x50,0x4f,0x5d,0x30,0x1e,0x49,0xd4,0xc5,0x9d,0x39,0x8f,0x1f,0x47 }, { 0x8b,0x31,0x7f,0x50,0x1e,0xbd,0xe1,0xbe,0x17,0x6b,0x8e,0xa5,0x6e,0x02,0x42,0x7e,0x0d,0xb9,0x08,0x78,0xba,0x09,0x8b,0xc5,0xff,0x64,0xde,0x59,0xaa,0x23,0x5f,0x43 }, { 0xa5,0xff,0x46,0xb0,0x15,0xc2,0xb4,0x66,0x38,0x5e,0x02,0xe1,0x9e,0xf9,0xa1,0xd3,0x1d,0x46,0x9d,0xa5,0x4c,0x8e,0xc4,0x92,0x5a,0x29,0x4d,0x46,0xd8,0xf2,0xe0,0x68 }, { 0xf1,0x6b,0x4b,0xec,0x9e,0x8d,0x46,0xb4,0xb8,0xda,0xec,0x57,0x35,0x4b,0xde,0x9e,0x67,0xb3,0xdd,0xac,0x5f,0x63,0x7c,0xb6,0xf4,0x9f,0x27,0x02,0xa6,0x02,0x59,0x21 }, { 0xf0,0x70,0x11,0x80,0x7f,0x09,0x79,0x97,0xb3,0x8c,0x33,0xb1,0xaa,0x24,0xbe,0x27,0x07,0xa8,0x8a,0xf2,0x89,0x31,0xf8,0x0d,0x81,0x6d,0x8e,0xb2,0xa1,0x75,0x04,0x55 }, { 0x53,0xad,0xaa,0xa1,0x1f,0xe6,0x29,0x82,0xa7,0xbb,0x4b,0xc3,0x6d,0x03,0x0a,0x68,0x9a,0x86,0xbd,0x93,0xee,0xc0,0xdf,0x4c,0x08,0xbc,0xc3,0x37,0x84,0x2f,0x26,0x01 }, { 0xd7,0x71,0xe8,0xbc,0x57,0x53,0x65,0x66,0x4a,0xe8,0x8f,0xda,0x9b,0xd3,0xf9,0xa9,0xe4,0x09,0x4c,0xdb,0x86,0x06,0x82,0x13,0x68,0xf9,0x1e,0x1a,0xf8,0xc0,0x66,0x6c }, { 0xd2,0x73,0x30,0xc3,0xc3,0x97,0xe8,0x44,0x0a,0x9d,0x73,0xd2,0xec,0x3c,0xbf,0x16,0x23,0x55,0xed,0xc3,0x7e,0x4c,0x41,0xe4,0x37,0x00,0xb4,0xa9,0xab,0x74,0xd0,0x5d }, { 0x47,0xa6,0x59,0x5b,0x59,0x3e,0xa7,0x4b,0x0e,0x51,0x8c,0x77,0xb5,0xa2,0x2f,0x6e,0x03,0x23,0x35,0xe9,0xc7,0x46,0x35,0x2c,0xca,0xe2,0x73,0x25,0xe6,0x67,0xec,0x0b }, { 0xb0,0x9e,0x1d,0x45,0xbe,0x2f,0x0c,0x6e,0x13,0x52,0xae,0xe2,0x6d,0xe1,0x3d,0xb7,0x9f,0x58,0x8a,0x9b,0x8f,0xa7,0x1b,0x2f,0x60,0x8f,0x53,0x0f,0x1e,0xb9,0xaf,0x63 }, { 0x15,0xe7,0x42,0x02,0x3d,0x87,0x92,0xed,0x6a,0xe5,0xb7,0x45,0x70,0xf1,0x35,0xfc,0xff,0x5d,0xc9,0x7c,0x19,0xdc,0x34,0xd2,0x5c,0x06,0xc3,0xc5,0xeb,0xb0,0x88,0x08 }, { 0xa0,0x5c,0xb2,0xa1,0x83,0xb8,0x25,0xb2,0xba,0x28,0x01,0x14,0xdb,0x08,0xf5,0xc4,0x47,0x33,0x79,0x64,0xdd,0x11,0x26,0x2e,0x92,0x36,0xef,0xb6,0xa3,0xe2,0x42,0x42 }, { 0x06,0xe4,0x60,0x7b,0x75,0x63,0x99,0x41,0xa8,0x71,0x3b,0xfd,0x54,0xa4,0x8b,0x81,0x54,0x9d,0x49,0x5e,0x73,0x36,0xcc,0xda,0xb8,0xa6,0x52,0x69,0x95,0x01,0x48,0x35 }, { 0x84,0x09,0x4e,0x31,0xfa,0x6d,0x0c,0x01,0x68,0x39,0x85,0x81,0x9c,0x77,0x19,0xa0,0x19,0x64,0x26,0x57,0x0a,0xa6,0x8a,0x90,0xba,0x09,0x7a,0xf8,0xbe,0xfd,0x85,0x23 }, { 0x07,0x55,0x4a,0x94,0x80,0xbf,0x2a,0x85,0x98,0x6d,0x81,0x09,0xd0,0xa5,0x73,0xca,0x66,0xe8,0xe5,0x10,0x39,0x3d,0x2e,0xe8,0x51,0x18,0xbc,0xed,0x68,0xa2,0x9e,0x15 }, { 0x41,0x04,0xd6,0xe2,0x1e,0xd1,0x56,0x3d,0x09,0x8f,0x75,0x69,0x55,0x71,0x23,0xda,0xe5,0x95,0x90,0x56,0x7a,0x7f,0x0b,0x79,0x1c,0xc1,0x57,0x13,0x56,0x60,0xf3,0x34 }, { 0xad,0x33,0xd5,0xe2,0xc1,0xfe,0xa5,0x70,0x8f,0x72,0x03,0xd7,0x59,0xa3,0x82,0x6f,0x3d,0xf7,0xb1,0xfe,0x73,0xfc,0x7d,0x74,0x93,0xbe,0xa6,0xa0,0x4f,0xb5,0xd1,0x54 }, { 0x09,0x85,0x94,0x14,0xf1,0x95,0x4b,0xc0,0x0a,0x94,0x42,0xea,0xc5,0xa1,0x7a,0x26,0x3d,0x86,0x6c,0x18,0x8f,0xb6,0xe0,0xaa,0x81,0x78,0xb1,0x92,0x24,0xb2,0x1b,0x72 }, { 0x9a,0x7c,0x39,0x3f,0x85,0x13,0x7b,0x3e,0xe5,0x12,0x7b,0x6b,0x3c,0x25,0x17,0x90,0x88,0xef,0x8a,0x10,0x98,0x43,0xe2,0x9f,0xcf,0xe9,0xb9,0x51,0x71,0xc3,0xf2,0x1a }, { 0x49,0x32,0xf0,0xf4,0x4d,0xf2,0x22,0x0c,0xa0,0x3e,0xa3,0x80,0x22,0x2b,0xdc,0xbd,0x01,0xfc,0xe7,0x3a,0xdf,0xa3,0xc5,0x8f,0x9a,0x5c,0x23,0xd2,0xb6,0x31,0x4b,0x6c }, { 0xd6,0xc8,0xdc,0x97,0xed,0x56,0x3d,0xef,0x3a,0x02,0x90,0x6a,0x78,0x5a,0x59,0x9e,0x4d,0x8b,0xf7,0xca,0xe2,0x0d,0x58,0x32,0x9c,0x99,0x42,0xb9,0xe8,0xe0,0xf4,0x06 }, { 0x3a,0xe2,0x99,0xc2,0x6a,0xf6,0x43,0x9e,0x2d,0x48,0x7f,0x5d,0x22,0xd1,0xf8,0x52,0x57,0x6f,0x2d,0xd3,0x97,0x17,0xf6,0xbd,0xd4,0xc8,0x06,0xbf,0x39,0x67,0x93,0x2d }, { 0x3a,0x70,0x9a,0x8f,0x42,0x5a,0x83,0x7b,0xef,0x2e,0x35,0xb5,0x2d,0xcc,0x93,0xb2,0x8a,0x4f,0xca,0x0a,0xdd,0xe0,0x17,0x17,0x10,0xee,0x43,0x1f,0x4b,0xfc,0x86,0x75 }, { 0x99,0xa6,0xcb,0x7b,0x5d,0x12,0xa7,0x10,0x44,0x0d,0x17,0x7c,0x11,0x19,0x72,0xc4,0xe4,0xc2,0x26,0xaf,0x4b,0xd9,0xb4,0x4b,0x94,0x42,0xc5,0x24,0xd5,0x6d,0xf0,0x31 }, { 0xd7,0x36,0xb5,0xe5,0x8e,0x83,0x6b,0xbe,0x47,0x3b,0x2c,0xa7,0x31,0xc4,0xa2,0xfb,0x6f,0x0f,0xbc,0xb5,0x31,0x44,0xa4,0xf3,0x4d,0x9c,0x12,0x6f,0x36,0xb7,0x4b,0x77 }, { 0xe9,0xa3,0x3a,0x6f,0x01,0x13,0x6e,0x24,0x72,0xed,0x9e,0xca,0x68,0x76,0x56,0x45,0xc2,0x32,0xc5,0x58,0xe0,0xa5,0x83,0x5a,0x51,0x09,0x0f,0x40,0x0b,0x90,0xf7,0x56 }, { 0x51,0x0b,0x24,0x5c,0x76,0xf5,0x63,0x7e,0x5e,0x20,0x4e,0xd7,0x4a,0x39,0xcd,0x59,0x3d,0x6c,0xbe,0xfb,0x96,0x9c,0x17,0x42,0xaf,0x5e,0xc8,0x9b,0xa2,0xe8,0x93,0x3a }, { 0x42,0x12,0xda,0xbc,0x51,0xac,0x75,0x91,0xf7,0x8d,0xc8,0x65,0x02,0x1a,0x6f,0x2b,0xdf,0x4a,0x2c,0xf4,0xf5,0x50,0x82,0x58,0x16,0x75,0x4c,0x7b,0x69,0xa0,0x0c,0x6e }, { 0xa9,0xe9,0x83,0xb9,0x46,0x50,0x8a,0x24,0x9b,0xfd,0x1f,0x89,0x0a,0x18,0xbb,0x62,0xe0,0xcb,0x57,0xc6,0x18,0xcc,0xa8,0x34,0x8f,0x4e,0xc7,0xfc,0x46,0x2e,0xa3,0x20 }, { 0x7e,0x1e,0x93,0x61,0x51,0xf6,0xe5,0x17,0x14,0x7c,0x65,0x1a,0x07,0x8a,0xf6,0x4e,0x9d,0x66,0x11,0x6f,0x98,0x2b,0x40,0xb1,0x65,0x06,0x40,0x69,0x41,0xa9,0x6b,0x7f }, { 0x39,0xb1,0x4a,0xa1,0x97,0x89,0xcd,0xdd,0x96,0x46,0x48,0xd8,0x5f,0xef,0xb8,0x7b,0xd4,0xcb,0x53,0x42,0xe4,0x53,0x5f,0xcd,0xd4,0xf6,0xd6,0xc1,0x88,0x8f,0x48,0x1d }, { 0x2f,0xe5,0x7d,0xa3,0x47,0xcd,0x62,0x43,0x15,0x28,0xda,0xac,0x5f,0xbb,0x29,0x07,0x30,0xff,0xf6,0x84,0xaf,0xc4,0xcf,0xc2,0xed,0x90,0x99,0x5f,0x58,0xcb,0x3b,0x74 }, { 0x39,0xb1,0x4a,0xa1,0x97,0x89,0xcd,0xdd,0x96,0x46,0x48,0xd8,0x5f,0xef,0xb8,0x7b,0xd4,0xcb,0x53,0x42,0xe4,0x53,0x5f,0xcd,0xd4,0xf6,0xd6,0xc1,0x88,0x8f,0x48,0x1d }, { 0x2f,0xe5,0x7d,0xa3,0x47,0xcd,0x62,0x43,0x15,0x28,0xda,0xac,0x5f,0xbb,0x29,0x07,0x30,0xff,0xf6,0x84,0xaf,0xc4,0xcf,0xc2,0xed,0x90,0x99,0x5f,0x58,0xcb,0x3b,0x74 }, { 0x39,0xb1,0x4a,0xa1,0x97,0x89,0xcd,0xdd,0x96,0x46,0x48,0xd8,0x5f,0xef,0xb8,0x7b,0xd4,0xcb,0x53,0x42,0xe4,0x53,0x5f,0xcd,0xd4,0xf6,0xd6,0xc1,0x88,0x8f,0x48,0x1d }, { 0x2f,0xe5,0x7d,0xa3,0x47,0xcd,0x62,0x43,0x15,0x28,0xda,0xac,0x5f,0xbb,0x29,0x07,0x30,0xff,0xf6,0x84,0xaf,0xc4,0xcf,0xc2,0xed,0x90,0x99,0x5f,0x58,0xcb,0x3b,0x74 }, { 0x39,0xb1,0x4a,0xa1,0x97,0x89,0xcd,0xdd,0x96,0x46,0x48,0xd8,0x5f,0xef,0xb8,0x7b,0xd4,0xcb,0x53,0x42,0xe4,0x53,0x5f,0xcd,0xd4,0xf6,0xd6,0xc1,0x88,0x8f,0x48,0x1d }, { 0x42,0x2c,0x8e,0x7a,0x62,0x27,0xd7,0xbc,0xa1,0x35,0x0b,0x3e,0x2b,0xb7,0x27,0x9f,0x78,0x97,0xb8,0x7b,0xb6,0x85,0x4b,0x78,0x3c,0x60,0xe8,0x03,0x11,0xae,0x30,0x79 }, { 0x25,0xd7,0x28,0xb2,0xd4,0x1a,0x1d,0x0a,0xe0,0xf4,0x0e,0xe6,0xb5,0x69,0xe8,0x3c,0x01,0xb2,0x03,0x9a,0x56,0xb7,0x54,0x5a,0x93,0x63,0x22,0x8f,0x00,0x56,0x14,0x10 }, { 0x8d,0x20,0xf8,0xc7,0xbb,0xfb,0x9a,0xf3,0xda,0x4e,0xf5,0x32,0xed,0x44,0xef,0xc6,0x8c,0xe6,0x42,0xbc,0x5d,0x0c,0x5c,0xb1,0xd7,0xb9,0x1b,0x96,0xc7,0x4e,0xdf,0x02 }, { 0x28,0xbb,0xdf,0xad,0x41,0x7a,0x93,0xe3,0xe0,0x84,0x3b,0xab,0xf4,0x32,0x46,0xd3,0x26,0xaa,0x16,0x9b,0x27,0x89,0x6d,0x1c,0x16,0x76,0xa7,0xf9,0xee,0x71,0xa1,0x59 }, { 0x0f,0x52,0x4b,0xef,0x7e,0x12,0x25,0x8f,0xd9,0xee,0xfc,0xd9,0xe4,0x68,0xb2,0x1e,0x54,0x3d,0x90,0xcc,0x4a,0x54,0xb3,0x47,0xf4,0x8c,0xc5,0x96,0x9f,0xeb,0xf4,0x32 }, { 0xc8,0x14,0xe2,0xff,0x82,0xb7,0x8e,0x7f,0xaf,0xf9,0x27,0xcd,0xd3,0xb0,0xb4,0x2e,0xc8,0xf8,0x92,0x34,0x8d,0xee,0x2c,0xb4,0xf1,0xc1,0xc3,0x7a,0x64,0xb4,0xa7,0x6b }, { 0xaf,0x6c,0x6b,0xe0,0x37,0xcc,0x06,0x22,0xe8,0x8a,0x73,0x5a,0x98,0xf7,0x7a,0xc0,0x6f,0x37,0x2b,0xad,0x85,0x42,0xbc,0x0f,0x65,0xc0,0xc5,0x80,0xb0,0x95,0xae,0x4e }, { 0xe5,0x76,0xa1,0xa6,0xfe,0xc7,0x93,0x78,0xaf,0xb7,0xf1,0x91,0xac,0xda,0x33,0x96,0xad,0x56,0xf7,0x84,0xce,0x33,0x65,0x8e,0x96,0x7a,0xe9,0xe4,0x61,0x76,0xf7,0x27 }, { 0xa4,0xc3,0xe7,0x49,0x66,0x4d,0x13,0x8f,0x80,0xa1,0x34,0x88,0x89,0x87,0x23,0x44,0xc1,0x1a,0x86,0xe9,0x56,0x23,0xb1,0x5f,0x8d,0xb7,0xec,0xf8,0x3a,0xde,0xd9,0x27 }, { 0x78,0x74,0x53,0x5e,0xaa,0x3a,0x6b,0x9f,0x7f,0xa1,0xe6,0xd9,0xda,0xd1,0x21,0xa5,0xf3,0x99,0x24,0x83,0x55,0x7e,0x05,0xc3,0xb3,0x65,0xa6,0xaf,0x74,0xf7,0x4d,0x03 }, { 0x9e,0x34,0x3c,0x34,0x94,0x80,0x8b,0x3b,0x50,0x23,0x76,0x19,0xa9,0xd0,0xad,0xf9,0x09,0x03,0xe8,0x14,0x46,0x73,0x9a,0xc8,0x9e,0x4b,0x8a,0x8c,0x9d,0x80,0x6c,0x59 }, { 0xa5,0x6f,0x45,0x98,0x6e,0xbc,0x86,0x35,0x0c,0x98,0xfb,0xe1,0xaf,0x21,0x21,0x44,0x1b,0x0d,0x2c,0x17,0x34,0x14,0xd4,0x16,0xa6,0xff,0x00,0x14,0x15,0x0e,0x45,0x31 }, { 0x7d,0x5c,0xcc,0xae,0xa1,0x0a,0x82,0x2a,0xcb,0x99,0x0f,0x8e,0x7b,0xca,0xd8,0x3d,0x59,0x6b,0x5d,0x7d,0x2a,0x02,0xc9,0x1a,0x86,0x9c,0xe7,0x01,0x10,0x0d,0xbc,0x14 }, { 0x21,0xf6,0x48,0x7d,0x01,0x15,0x2d,0x72,0x5c,0xc6,0x43,0xf9,0xf5,0x9e,0x79,0xd2,0xfd,0xa0,0x22,0xad,0xd8,0xfc,0x66,0x1e,0xb7,0x9d,0xbf,0x90,0x30,0x0a,0xed,0x38 }, { 0xdb,0xf8,0xd6,0xe5,0xf0,0x51,0x92,0x77,0x84,0xd5,0x1b,0xb5,0xdc,0x45,0xa4,0xb9,0xb1,0x7d,0x36,0x71,0xce,0xfd,0x09,0xd1,0xa4,0xa0,0x6e,0xdb,0xea,0x51,0x14,0x25 }, { 0x05,0x22,0x89,0x13,0xd8,0xe4,0x79,0x86,0x6f,0x1f,0x37,0xe4,0x90,0x76,0x06,0xed,0x98,0x04,0x6b,0xb4,0xbe,0xdb,0x28,0x7e,0xae,0x2d,0x87,0x07,0xc1,0x2c,0x34,0x4c }, { 0xe0,0x33,0xbc,0xa7,0xa0,0x40,0x8c,0xde,0xba,0xe8,0xca,0x21,0x74,0xb5,0x76,0xc1,0x72,0xad,0xb7,0x7d,0x78,0xa5,0x68,0x6c,0x11,0x39,0x86,0x54,0x97,0xa2,0x4f,0x41 }, { 0x84,0x7c,0x0d,0x2c,0x37,0x52,0x34,0xf3,0x65,0xe6,0x60,0x95,0x51,0x87,0xa3,0x73,0x5a,0x0f,0x76,0x13,0xd1,0x60,0x9d,0x3a,0x6a,0x4d,0x8c,0x53,0xae,0xaa,0x5a,0x22 }, { 0xe0,0x33,0xbc,0xa7,0xa0,0x40,0x8c,0xde,0xba,0xe8,0xca,0x21,0x74,0xb5,0x76,0xc1,0x72,0xad,0xb7,0x7d,0x78,0xa5,0x68,0x6c,0x11,0x39,0x86,0x54,0x97,0xa2,0x4f,0x41 }, { 0x84,0x7c,0x0d,0x2c,0x37,0x52,0x34,0xf3,0x65,0xe6,0x60,0x95,0x51,0x87,0xa3,0x73,0x5a,0x0f,0x76,0x13,0xd1,0x60,0x9d,0x3a,0x6a,0x4d,0x8c,0x53,0xae,0xaa,0x5a,0x22 }, { 0xe0,0x33,0xbc,0xa7,0xa0,0x40,0x8c,0xde,0xba,0xe8,0xca,0x21,0x74,0xb5,0x76,0xc1,0x72,0xad,0xb7,0x7d,0x78,0xa5,0x68,0x6c,0x11,0x39,0x86,0x54,0x97,0xa2,0x4f,0x41 }, { 0x84,0x7c,0x0d,0x2c,0x37,0x52,0x34,0xf3,0x65,0xe6,0x60,0x95,0x51,0x87,0xa3,0x73,0x5a,0x0f,0x76,0x13,0xd1,0x60,0x9d,0x3a,0x6a,0x4d,0x8c,0x53,0xae,0xaa,0x5a,0x22 }, { 0xe0,0x33,0xbc,0xa7,0xa0,0x40,0x8c,0xde,0xba,0xe8,0xca,0x21,0x74,0xb5,0x76,0xc1,0x72,0xad,0xb7,0x7d,0x78,0xa5,0x68,0x6c,0x11,0x39,0x86,0x54,0x97,0xa2,0x4f,0x41 }, { 0x1c,0x18,0xa4,0x09,0x5c,0x2b,0x9f,0x76,0x78,0xc8,0xfb,0x23,0x84,0xea,0xb7,0xd4,0xfe,0x4f,0x78,0x8f,0x25,0x80,0xd6,0xbb,0x0e,0x06,0xcf,0x6e,0x13,0x12,0xf3,0x0b }, { 0xf1,0x32,0xe4,0x22,0x0c,0x71,0x0a,0xac,0xf5,0x61,0xbf,0x0f,0xc3,0x07,0x35,0xad,0x61,0xbc,0x84,0xb6,0x3e,0x90,0xd5,0xbf,0x54,0xcf,0x81,0xb5,0x62,0xea,0xda,0x42 }, { 0x2b,0x39,0x08,0x80,0xe7,0x24,0x4e,0x37,0x84,0xe3,0x04,0x73,0x09,0x50,0xe6,0x3e,0x91,0xf4,0xbe,0xec,0x78,0x66,0x70,0x54,0xcf,0x02,0x26,0xc5,0x88,0x0d,0xd3,0x2c }, { 0xf4,0x5b,0xce,0x45,0x30,0x25,0x5b,0x17,0x63,0x17,0xbb,0xf0,0x5b,0x0b,0x18,0xbc,0x8d,0xd6,0xbc,0x7a,0xbd,0x16,0x41,0x4e,0xbf,0xb9,0x06,0x1b,0xd6,0x2f,0x6f,0x19 }, { 0x1d,0x01,0xaa,0xc0,0xc7,0xe3,0x8f,0xfb,0x3e,0x25,0xee,0xc4,0x32,0x59,0xd8,0x56,0x29,0xbe,0xb4,0xc3,0xd9,0x4f,0x7f,0x38,0x13,0x8c,0xf9,0xca,0x97,0x82,0xeb,0x79 }, { 0x6c,0x9a,0x29,0xd1,0x8c,0x26,0x90,0x78,0xfd,0xed,0x27,0x34,0x60,0x8a,0xd1,0x98,0xa3,0x6c,0xe7,0x57,0x9b,0x7f,0xf8,0x62,0xa2,0xc5,0x15,0xf8,0x51,0xe1,0x1a,0x54 }, { 0x2c,0x52,0xe1,0x5e,0x14,0x31,0xf5,0x0e,0x88,0xdd,0x30,0x02,0x9f,0x56,0x34,0x23,0xc1,0xfa,0x53,0x0b,0xba,0xcb,0x9d,0xb6,0x23,0x46,0x0c,0xee,0xb0,0xf6,0x4b,0x63 }, { 0x04,0xd4,0x40,0x9f,0x02,0xa3,0xc9,0x7e,0x50,0x70,0x02,0xdc,0xe8,0xb8,0xee,0xc7,0x7f,0xac,0x1a,0xa1,0xba,0xeb,0x0f,0x25,0xec,0xa2,0x8a,0xc4,0xb6,0xa3,0xe6,0x25 }, { 0xf0,0x87,0x27,0xb3,0xb2,0x2f,0x2e,0xff,0xaa,0xc3,0x55,0x75,0xf2,0xea,0x0b,0x67,0xed,0x8c,0xa4,0x81,0x02,0x14,0x07,0xac,0xaf,0x46,0x63,0xdc,0x8d,0x8c,0xc3,0x7c }, { 0x49,0xe0,0x3c,0x89,0x4b,0xe3,0x3f,0x85,0xa2,0xbf,0xa5,0x65,0x30,0x39,0x3c,0x8d,0xd4,0x3f,0xea,0x89,0x77,0x1f,0x6b,0x13,0xf4,0x90,0x6f,0x42,0x91,0x57,0xd6,0x36 }, { 0xdf,0x01,0x8e,0xd9,0x9f,0x9a,0x8d,0xd5,0xdd,0x38,0x69,0x44,0xd3,0x9a,0x7b,0xd1,0xa6,0x0b,0x9e,0xc2,0x1f,0x65,0xcd,0xcc,0x74,0xd2,0x15,0x9e,0xa7,0xe7,0x84,0x3d }, { 0xf7,0x12,0x31,0x18,0x91,0xc1,0x3a,0x7f,0x16,0xb1,0x8f,0xab,0x7c,0x1b,0x20,0x9f,0x78,0x7f,0x99,0xf2,0x05,0x57,0x1b,0x8e,0x99,0x03,0xa2,0x96,0xe6,0xec,0xc0,0x56 }, { 0xcb,0xda,0x00,0xfe,0x5a,0xbe,0x61,0x68,0xc9,0x3e,0x68,0xce,0xa5,0x11,0x62,0xc0,0xbf,0x15,0xe1,0x71,0xb9,0x8e,0x36,0xd9,0x54,0x16,0xce,0x14,0xbd,0xf6,0xf6,0x5d }, { 0x04,0xd5,0xfe,0xbb,0xf9,0xa4,0xe5,0x49,0x0e,0x72,0x74,0x57,0xd7,0xb6,0xec,0xbd,0x02,0x21,0x19,0xa8,0x63,0xc9,0x95,0xe3,0xc5,0x80,0x2c,0xe6,0x37,0x4b,0x83,0x74 }, { 0x24,0x08,0x85,0x93,0x52,0x14,0x28,0x50,0x24,0xef,0xbf,0x83,0xc9,0x0d,0x51,0x53,0xb8,0x23,0x0a,0x46,0x5d,0x09,0x9f,0x67,0xe6,0x25,0xd8,0x57,0x06,0xf9,0x70,0x5e }, { 0x4d,0x16,0xaa,0x5d,0xde,0x81,0xbc,0xe7,0xf2,0xd7,0x5c,0x3e,0x6a,0xa9,0xc0,0x67,0x23,0x22,0x07,0xa2,0xd7,0x97,0x59,0xf7,0x17,0x90,0xb0,0xd9,0x41,0x4f,0xc4,0x6a }, { 0x8c,0xec,0x23,0xc6,0x8c,0x4f,0x98,0xb0,0xb8,0x73,0xc9,0x37,0xde,0xd1,0xb8,0xcf,0x4e,0x94,0x12,0x5f,0x8e,0x24,0x4e,0x29,0x05,0xbb,0xa4,0xc3,0x0e,0x80,0x39,0x1c }, { 0x8f,0x3f,0xa2,0xd6,0x13,0x25,0x1f,0x62,0x30,0x36,0x9f,0x9d,0xe1,0xe6,0xd2,0xf0,0x39,0x5a,0x8a,0xb6,0xcf,0x82,0x04,0xc0,0x9e,0x79,0x04,0x8b,0x43,0x29,0x68,0x4a }, { 0x5b,0xd9,0x99,0xc3,0xcc,0x16,0x23,0x21,0xdd,0xe3,0x64,0xc0,0x13,0xc0,0xa1,0x76,0x13,0x03,0x09,0x4c,0xf1,0xbc,0x84,0xa9,0xa1,0x02,0x81,0xc9,0xe3,0xaa,0xaf,0x0c }, { 0x4f,0x51,0x65,0x12,0x33,0xb3,0xf8,0xcd,0x48,0xdc,0x0d,0x09,0x55,0xe8,0x70,0xe2,0x94,0x9b,0x78,0x5c,0xa2,0x7b,0x1c,0x0f,0x37,0x4e,0x35,0xce,0x98,0x8b,0xc0,0x1d }, { 0x3c,0xf8,0xc7,0x4b,0x41,0xa7,0x0b,0xc1,0x41,0x81,0x3f,0xd3,0x1c,0xfd,0x36,0xc2,0x29,0x04,0xcd,0x62,0xec,0x01,0xc0,0xbf,0xe6,0xa6,0xeb,0xe6,0xa4,0x5c,0x1f,0x31 }, { 0xd0,0xa7,0xc1,0xf6,0xeb,0xbd,0xeb,0xcd,0x9e,0x56,0x1f,0x6c,0x12,0x20,0x9f,0x8f,0x5c,0x8c,0xf5,0x33,0xf5,0x30,0x86,0xb9,0x77,0x7d,0xf1,0x7c,0xe1,0x4f,0x2b,0x71 }, { 0x78,0xf8,0xf4,0xda,0x51,0xa8,0x45,0x68,0x60,0xa3,0x22,0xc0,0x2b,0xa5,0xc0,0xe9,0xdd,0x0c,0xbb,0x03,0x0f,0x3c,0x36,0x04,0x3e,0x32,0x77,0xd1,0xab,0xa5,0x61,0x71 }, { 0x19,0xc8,0x3a,0x7e,0xc0,0xce,0x1c,0x50,0x25,0xc4,0x68,0xab,0x40,0x8f,0x06,0xaa,0x1e,0xa6,0x35,0xbe,0x6b,0x66,0xf8,0xec,0xba,0xf4,0xfc,0x22,0x91,0x31,0x7d,0x3b }, { 0xc9,0x9d,0x33,0xdb,0xcd,0x7b,0x0b,0xbc,0xc2,0xe9,0xc9,0x96,0x13,0x94,0x5c,0x82,0x8d,0x05,0x0b,0x96,0xa7,0x60,0x52,0x6b,0xa1,0xcc,0x30,0xea,0xbf,0x37,0xea,0x16 }, { 0x33,0xaf,0x11,0x57,0x3f,0x60,0x22,0x18,0x06,0xf4,0x39,0xab,0x6b,0xf3,0xe2,0xdd,0xde,0x5d,0x2e,0xd7,0x59,0xb6,0x41,0x5e,0x86,0x21,0x9f,0x28,0xc7,0x2b,0x01,0x41 }, { 0xba,0x5e,0x80,0x3b,0x00,0x58,0xad,0xb0,0xef,0x58,0x67,0xcf,0x6a,0x09,0xe6,0xcc,0x7d,0xd3,0xe5,0x30,0x3c,0x7c,0x6a,0xbb,0x44,0x52,0x42,0x03,0x83,0xd0,0x98,0x38 }, { 0xf9,0x4b,0xa0,0x87,0x73,0x8b,0x21,0xf7,0x64,0x6a,0x1d,0xad,0x76,0x35,0x4a,0x5f,0x5a,0xd1,0xff,0x6d,0xc2,0xde,0xcd,0x6d,0x8a,0x22,0x7f,0x75,0xc5,0xe2,0x2c,0x1b }, { 0x3f,0x75,0x94,0xc2,0xfe,0x33,0x4d,0xa3,0x23,0x49,0xb4,0x51,0x2b,0x4a,0xa4,0xf7,0xb4,0xdc,0xc5,0xf3,0x9e,0xfd,0x8c,0xec,0xdf,0xe1,0xf5,0x55,0x2d,0xbe,0x13,0x5a }, { 0x80,0x17,0x67,0x7f,0xf2,0x49,0x5a,0x3d,0x20,0x0b,0x97,0x72,0x18,0x8a,0xd0,0xe5,0x3f,0xf9,0xfd,0xba,0x69,0xfa,0x64,0x53,0x8f,0x2e,0x24,0x05,0x60,0x66,0x39,0x42 }, { 0x1a,0xa3,0xcb,0xcd,0x4e,0x56,0xd6,0xa1,0x8d,0xd6,0x6e,0x01,0xe4,0x32,0x4a,0xfe,0xfd,0x8b,0x31,0x9d,0x78,0xb9,0x16,0x37,0xdc,0x90,0x06,0xcc,0xee,0x03,0x91,0x48 }, { 0x0b,0xe5,0x80,0x3a,0xfc,0x26,0x52,0xc5,0x7d,0x74,0x0f,0x85,0x9e,0x8b,0xaa,0x55,0x68,0x1a,0x47,0x2f,0x1f,0x71,0x5d,0xc6,0x0e,0x14,0x5e,0x99,0x22,0x7e,0x3c,0x67 }, { 0x1a,0x94,0xa1,0x95,0xe9,0x50,0x8c,0xdc,0x70,0x85,0x93,0x1a,0xcf,0x7c,0xf6,0x38,0xa7,0x78,0x36,0x4b,0x3f,0x54,0x1e,0xed,0x6e,0x7f,0xbd,0x64,0x60,0x20,0x6d,0x55 }, { 0xcf,0x2a,0x5c,0xd1,0x37,0x38,0xec,0xd6,0x0f,0x03,0x5e,0x0b,0xd1,0xbe,0x4f,0x5e,0x23,0x04,0xd7,0x09,0xf4,0xcc,0x19,0x39,0xf2,0x5c,0x56,0x2d,0x58,0x36,0xb5,0x52 }, { 0x8a,0xe0,0x9b,0xad,0x6c,0xb3,0x3c,0x83,0xaa,0x22,0x00,0xba,0xb7,0xd2,0x77,0x64,0x0f,0x6d,0xb4,0x50,0xd7,0xd9,0x2f,0x7c,0x27,0x79,0x52,0x63,0x94,0xd2,0x3b,0x29 }, { 0x73,0xc1,0x7c,0x41,0x03,0xb7,0x27,0x83,0x1d,0xc5,0xbe,0x14,0x0e,0x21,0x97,0x81,0x06,0xaf,0xab,0xf7,0x60,0x2d,0x40,0x65,0x50,0x18,0x16,0x3e,0xbe,0xe1,0xe0,0x0c }, { 0x13,0x16,0x3d,0x11,0xfa,0xd9,0x09,0x56,0x3d,0xea,0xee,0x72,0xee,0xe7,0x16,0xef,0x7b,0xf9,0x08,0x9d,0xd6,0xaf,0xd1,0x37,0xf4,0xcd,0x31,0x2e,0xcf,0x35,0x5d,0x49 }, { 0xf0,0xf1,0xf4,0xf8,0x39,0x98,0x66,0x4f,0x20,0x15,0x63,0xdb,0x12,0xd8,0xaa,0x42,0xc2,0x3b,0xc1,0xad,0x36,0xf6,0xa7,0xfd,0xe3,0x62,0xe7,0xe5,0xa5,0x3a,0xc8,0x36 }, { 0x79,0x8c,0x3f,0x22,0x0c,0xbf,0x99,0x55,0x71,0x14,0xbc,0x3f,0xba,0x6c,0xcd,0x20,0x43,0xa3,0xed,0x24,0x80,0x59,0x95,0x0b,0x33,0x44,0xeb,0x6a,0x7f,0x93,0x2f,0x23 }, { 0xcb,0x38,0xd9,0xbd,0x0e,0xb8,0x65,0xbb,0x01,0xde,0x7c,0xc7,0x6f,0x69,0x60,0x08,0x28,0x55,0xb2,0xec,0x74,0x51,0x4c,0x46,0x5e,0xb9,0x79,0x74,0xa3,0xb1,0xb4,0x40 }, { 0x89,0xd8,0xb2,0xff,0x9f,0xd2,0x7a,0xbe,0x37,0xc8,0x15,0x0c,0xc0,0xc6,0x98,0xdc,0x91,0x69,0x45,0x13,0x18,0x80,0x21,0x29,0x57,0x88,0x7d,0xd9,0xef,0xaf,0xa7,0x4d }, { 0xe7,0x13,0x88,0xb8,0x73,0x22,0xa5,0xe3,0x30,0x5a,0x34,0x12,0x3d,0xcc,0xeb,0xab,0xd2,0xf1,0x4d,0xea,0xbd,0xbb,0xe0,0xed,0x16,0x88,0x44,0x86,0xf5,0x01,0x52,0x23 }, { 0x9c,0x72,0x65,0x54,0x95,0x2e,0xee,0x6e,0x0d,0x62,0x5a,0x30,0x28,0x0c,0x78,0x20,0xd5,0xe9,0x99,0xcf,0x60,0x4e,0xc9,0xfe,0x2e,0xdb,0xf7,0xc9,0xf3,0x18,0x65,0x1e }, { 0x78,0xfd,0xcf,0xc5,0x8e,0xf5,0xf9,0xac,0x03,0x33,0xf0,0x33,0x83,0xba,0x95,0x5e,0x63,0x42,0xa3,0xe4,0x1b,0xe7,0x13,0x00,0x56,0x23,0x47,0x7d,0x8a,0x1c,0xf0,0x37 }, { 0xc0,0x0b,0xce,0x80,0x1d,0x0f,0xd0,0x90,0x69,0x03,0xc4,0x4d,0x87,0x40,0x87,0x05,0x79,0x48,0x6c,0x35,0x9a,0x35,0xd9,0x6c,0xbf,0xc5,0x8e,0xd9,0xd6,0x5f,0x6c,0x55 }, { 0x99,0xb2,0x8e,0xe5,0xfe,0x43,0x22,0xc7,0x87,0xa3,0x77,0x6d,0x5e,0xfb,0x4f,0xe6,0xc9,0x71,0xb4,0x40,0xd2,0xfa,0x59,0x35,0x8c,0x3b,0xdf,0x88,0x1e,0xef,0x69,0x5a }, { 0xc8,0x34,0xd5,0x94,0xf5,0x11,0xa6,0x6c,0x1b,0x1d,0x37,0x7d,0x64,0x9b,0xff,0xa9,0x0d,0x2d,0xf2,0x9e,0xc9,0xe5,0xf8,0xc8,0x72,0x60,0xc0,0x7b,0xbd,0xe0,0x81,0x7b }, { 0xb0,0x07,0xcb,0x85,0x56,0xa8,0x9a,0x1e,0x97,0x0e,0x3a,0x6f,0x6d,0x92,0x72,0x41,0x3a,0xba,0xe8,0xdc,0x1e,0xfc,0xb6,0xa5,0xc2,0x0c,0xa8,0x63,0xe0,0x89,0xc5,0x65 }, { 0x3e,0x57,0x80,0xa2,0x55,0x33,0x80,0x72,0xad,0x9a,0xc8,0xae,0x1b,0xf4,0x04,0xaf,0xd5,0xe7,0x07,0xc0,0xdd,0xa6,0x3a,0xb2,0xc8,0xf6,0xce,0x8b,0xb5,0x81,0x9d,0x1e }, { 0x9c,0x28,0xe6,0xc7,0x97,0x62,0xa0,0xcf,0x34,0xa5,0x4c,0x79,0x37,0x3e,0x79,0x8b,0x2c,0x2e,0x39,0x37,0x8b,0x65,0xb4,0x90,0x74,0x89,0xb8,0x0f,0x6e,0x4f,0x1e,0x3f }, { 0xe8,0x11,0x13,0xdd,0x23,0x1f,0x54,0xc8,0xe4,0xd1,0x28,0x55,0xb1,0x5f,0x9d,0xb3,0x38,0x68,0x97,0x0e,0x9b,0xcf,0x76,0xfa,0x08,0x74,0x56,0x30,0x30,0x06,0xc1,0x63 }, { 0xf2,0x44,0x87,0xa4,0x13,0x4d,0x55,0x9b,0x51,0x38,0x9f,0x02,0xda,0x1e,0xf4,0x8f,0x5a,0x90,0x4a,0x2f,0xdd,0x5a,0x6e,0xed,0x20,0x94,0xee,0x45,0x9e,0x64,0x36,0x32 }, { 0x09,0x09,0x6c,0xe1,0x96,0xa3,0x26,0x8c,0x3f,0x76,0x58,0x22,0xf5,0xd5,0x41,0xc3,0x7f,0x6a,0x98,0x13,0x2d,0x9f,0x41,0x88,0x98,0xf4,0xcb,0x6e,0x48,0x63,0x85,0x5c }, { 0x16,0xfb,0x11,0xd1,0x84,0x18,0x0f,0x05,0xf8,0x84,0x4d,0x19,0x37,0x86,0x6d,0x0d,0x89,0x68,0x47,0x47,0x55,0xdb,0x7a,0x7b,0x1a,0x47,0x54,0xc1,0x6c,0xfd,0x70,0x17 }, { 0x99,0x13,0xcc,0xd1,0x06,0x7e,0xf5,0x22,0x36,0xb5,0xc9,0x4f,0xbc,0x46,0xfa,0x6b,0x14,0x08,0x35,0x2a,0x69,0x1d,0x65,0x35,0x81,0x3e,0xa7,0xa9,0x98,0x78,0x0e,0x56 }, { 0x7c,0x9d,0x44,0x3c,0xee,0xb6,0x28,0x0f,0x2e,0x0d,0xf2,0x87,0x83,0x00,0x8d,0x0a,0x97,0xae,0x5f,0x0b,0x59,0xd0,0x8d,0xff,0x02,0x56,0x83,0xe7,0x08,0xe7,0x19,0x3d }, { 0x1c,0x56,0x21,0x8a,0xc1,0xc0,0xbe,0x47,0x7a,0x3b,0xdc,0xeb,0x3b,0xb3,0x54,0x75,0xcc,0x4c,0xb3,0xd8,0xcf,0x6d,0x0e,0xfa,0x97,0xdb,0xa8,0xc2,0x5b,0xe2,0x8f,0x3b }, { 0x5a,0x7d,0x39,0x2f,0xb3,0x17,0x79,0xdd,0x68,0xec,0x64,0xd3,0x89,0xb7,0x0f,0x05,0xe7,0x57,0x36,0xa3,0xd0,0x45,0xc3,0xbf,0x78,0x2d,0x51,0xd4,0x68,0xd9,0xc2,0x40 }, { 0x05,0xc4,0x90,0xfe,0xe1,0xd0,0x8b,0x1c,0x27,0xe8,0x68,0xd8,0x27,0x10,0xee,0x9e,0xfc,0x19,0xc5,0xda,0x96,0x87,0x35,0x60,0x27,0x36,0xe0,0xaa,0x2c,0xba,0x1f,0x0d }, { 0x84,0x99,0x64,0xc1,0x23,0x3f,0x4e,0xc8,0x0b,0x61,0x5a,0x7c,0xfa,0x94,0xc8,0xba,0xe0,0xd0,0x00,0x3d,0xc6,0x53,0x92,0x07,0x54,0x0a,0x03,0x9b,0xfa,0x5a,0x57,0x39 }, { 0xd9,0x47,0x32,0xdf,0x95,0xe0,0xf8,0xe1,0x6b,0x5e,0xfa,0xb6,0xbf,0xa0,0x8f,0xaa,0x80,0xad,0x3f,0x1e,0xa1,0x3c,0x3a,0xeb,0xa1,0x50,0xa9,0x89,0x87,0x30,0xa6,0x7f }, { 0x8c,0x27,0x13,0x5e,0xf8,0x8e,0x05,0x28,0x2b,0x34,0x11,0x80,0x8c,0xfc,0x5f,0x85,0x09,0x51,0xf3,0xe9,0xab,0x6e,0xca,0xda,0x4e,0x02,0xcb,0xf2,0x3f,0x3e,0x79,0x02 }, { 0x22,0xa4,0x01,0x66,0x79,0x81,0x02,0x65,0xdc,0xce,0xe3,0x21,0x0a,0x3f,0x52,0x46,0x5f,0xf3,0x7c,0xd3,0xe6,0xb8,0x0c,0x1e,0x5e,0xda,0x5d,0xb1,0xb5,0x77,0xa0,0x47 }, { 0xcc,0xea,0xb8,0x7f,0x45,0xfe,0x0d,0x35,0xb0,0x02,0xcc,0x79,0xe6,0x0b,0x26,0x22,0x9b,0xdf,0x93,0xe0,0x99,0x5e,0xfb,0x73,0x4a,0xba,0x8b,0xb2,0xcd,0x38,0x95,0x38 }, { 0x33,0x6d,0x5d,0xa3,0xd0,0x0f,0x71,0x81,0x36,0x64,0x1f,0x6b,0xc4,0xb4,0x75,0xb9,0x6d,0xbb,0x8e,0x38,0x7a,0x04,0x81,0xef,0x64,0x02,0x99,0x45,0x80,0xd4,0x83,0x6b }, { 0x50,0x46,0x01,0x09,0xa2,0x85,0x6f,0x6c,0xfd,0x04,0xc0,0x76,0xae,0xed,0xea,0x5c,0xe5,0x29,0x85,0x48,0xa6,0x3a,0xc6,0xb5,0x18,0x01,0x11,0x19,0x67,0xd8,0xa5,0x08 }, { 0xde,0x7c,0x1c,0x5c,0x7c,0x81,0xbd,0x92,0x23,0x93,0xde,0x07,0x4f,0x52,0x3d,0x48,0x99,0xbf,0xbb,0x88,0x93,0x7c,0x49,0x7f,0x1b,0x41,0xee,0xb6,0xc3,0xd2,0xaf,0x62 }, { 0x0d,0x98,0x4d,0xf1,0x84,0xeb,0xd1,0xd8,0x58,0x2e,0x5f,0x97,0x31,0xbd,0x2c,0xdc,0x2b,0xcc,0x3d,0xd6,0x59,0xdb,0x21,0x45,0x61,0x57,0x25,0x12,0x6c,0x05,0x92,0x1c }, { 0x1a,0x23,0xac,0x3f,0xe1,0x20,0xc7,0x3a,0x33,0x02,0x83,0xcb,0x50,0x66,0x3a,0xb4,0x87,0x85,0xb9,0xd1,0x7f,0x7f,0xbf,0x9d,0xdc,0x4c,0x0c,0x4b,0x20,0x91,0xf9,0x06 }, { 0x88,0xff,0x40,0x77,0x59,0x19,0xb1,0x25,0x8c,0xb7,0x04,0x1c,0x05,0x33,0x46,0xee,0x99,0xb0,0x45,0x24,0x60,0x97,0x31,0xaf,0x86,0xa4,0x99,0x9e,0x70,0x19,0x49,0x0c }, { 0x2e,0x4a,0xe6,0x4d,0x98,0x3e,0x61,0x35,0xb0,0x71,0xf3,0x5d,0xf1,0xb4,0x16,0x4f,0xe6,0xb8,0x2d,0x02,0xf7,0xd6,0xa4,0x43,0x90,0x2c,0x28,0xfc,0xda,0x42,0x95,0x4b }, { 0x65,0xfa,0x48,0x29,0x75,0xa2,0x6f,0x4b,0x7f,0xbf,0x37,0xde,0x89,0x0b,0xa9,0x8c,0xc3,0x0b,0x32,0x2c,0x60,0x40,0xda,0xb1,0x97,0x7e,0x0b,0xca,0x3e,0x34,0xf5,0x1d }, { 0xce,0xab,0x4e,0xac,0x72,0x86,0xd8,0xd7,0xa6,0x64,0x4e,0x92,0x91,0x56,0x81,0x3b,0xc7,0x71,0x6f,0x30,0x8e,0xec,0x2f,0x7a,0x8c,0x81,0x9e,0x4b,0x2f,0xa4,0x6f,0x02 }, { 0x8b,0xa4,0x48,0xc6,0x24,0x26,0x9a,0x73,0x90,0x6c,0x33,0xa2,0xc1,0x40,0xbc,0x06,0xb8,0x01,0xd3,0x09,0x52,0xd8,0xdb,0xbb,0x78,0xa5,0xfa,0xf8,0x2a,0x98,0xa3,0x69 }, { 0xfd,0xe8,0x59,0xe0,0x14,0xda,0x34,0x5b,0xed,0xe3,0x7c,0x08,0x9a,0xd5,0xe2,0x5d,0x29,0xda,0x2e,0x7e,0x93,0x13,0xd7,0xc0,0x35,0xac,0xf9,0x3f,0xee,0x56,0xf4,0x7d }, { 0x09,0x19,0x7e,0xbb,0x7b,0xab,0x01,0xc0,0xa8,0x0a,0xcd,0x40,0x3f,0x89,0x34,0x85,0xed,0x1b,0x3d,0xbc,0x98,0xb4,0x11,0x73,0x3b,0x26,0x76,0x17,0xe4,0xc7,0x3f,0x25 }, { 0x42,0xb7,0x5f,0x25,0xf4,0x18,0xd1,0xb5,0x8d,0x81,0xbd,0xff,0xc6,0x50,0xb7,0x2a,0xde,0xf3,0x3b,0x93,0x1f,0x31,0x1a,0x87,0xb7,0xd6,0x52,0x3d,0xc7,0x30,0x58,0x25 }, { 0x5a,0xa4,0x2b,0xd6,0x01,0x06,0x58,0x46,0xbd,0x6d,0x8d,0xb1,0xd4,0xa8,0x47,0x74,0x16,0x8e,0x1d,0xcd,0xf1,0x11,0x2f,0xfd,0xc8,0x6d,0x46,0x38,0x52,0xd0,0xf8,0x5c }, { 0x2e,0x1c,0x3d,0x7b,0x9e,0xc5,0x6f,0xf9,0xee,0x7a,0xd6,0x23,0x6e,0xd6,0x4e,0xb3,0x92,0x2a,0x36,0x66,0x38,0x02,0xac,0x74,0x99,0xa4,0xc1,0x4f,0x35,0x0b,0x4c,0x5d }, { 0x69,0x9e,0x2d,0x4a,0xa3,0x69,0xc9,0x50,0x91,0xeb,0x4b,0xee,0x0c,0xf9,0x12,0xf6,0x29,0x05,0x77,0x5a,0x70,0xd4,0xf6,0x85,0x66,0xe2,0xad,0xe3,0xff,0xac,0xb9,0x14 }, { 0x08,0x67,0xf4,0x61,0x2f,0x58,0xf0,0xe1,0x3c,0x3d,0x6c,0x15,0x66,0x22,0x68,0xda,0xb0,0xe3,0x3a,0x05,0x91,0x22,0x52,0x25,0x58,0x36,0xf2,0x8f,0x3a,0xc0,0x25,0x4f }, { 0x72,0x40,0xcd,0x93,0x03,0xb0,0x0e,0x12,0xdc,0x07,0x16,0x91,0x1a,0x12,0xe2,0xbb,0x00,0x3c,0x6f,0x6f,0xbf,0xb0,0x0c,0x1e,0xc2,0x4e,0x0f,0xec,0xeb,0x23,0x8c,0x45 }, { 0x21,0xea,0x0b,0x55,0x9f,0xb9,0x73,0xe6,0xe0,0x14,0x8f,0xae,0x2e,0xdc,0xec,0x8f,0x1f,0x5c,0x8b,0x7d,0xc3,0x1e,0x7b,0xab,0x3d,0x1e,0xb7,0xe9,0x6f,0xa7,0x9b,0x10 }, { 0x26,0xbd,0x5a,0x9c,0x33,0x73,0x35,0x09,0x7b,0xd1,0xc8,0xdf,0xa0,0xaf,0x03,0xc6,0x5a,0xee,0x5d,0xf2,0xa9,0x3f,0x14,0x7f,0xee,0x1d,0x06,0xb3,0x3a,0xfe,0xd6,0x30 }, { 0xcb,0xb6,0x0f,0x43,0xff,0x3d,0xb8,0xc4,0x1e,0x60,0xbe,0x88,0x9d,0x30,0x95,0x93,0xb4,0xf2,0x9b,0x4b,0x17,0x60,0xf4,0x14,0xb8,0xa1,0x22,0x2f,0x71,0xa8,0xde,0x2b }, { 0x7b,0xab,0x4f,0x7b,0x96,0x44,0xb3,0xa0,0x8c,0xc3,0x69,0x56,0x37,0x23,0x7b,0x50,0xc0,0xcc,0x38,0x9e,0x0b,0x75,0xfd,0xb6,0x56,0xb5,0x9a,0x55,0x48,0x4d,0x1b,0x7b }, { 0x24,0xa6,0x5f,0x6e,0xc5,0xfc,0x80,0xe2,0xa6,0x5d,0xd1,0x12,0x49,0x3c,0x77,0x4b,0xf4,0x98,0x63,0xfe,0x3b,0x16,0x89,0x03,0x1c,0xbd,0x40,0xa3,0xe0,0x63,0xf3,0x55 }, { 0x6b,0x95,0xde,0x82,0x50,0x6f,0xac,0xa0,0x65,0x36,0xf6,0xe2,0xf7,0xfd,0xa6,0xd0,0xa1,0xba,0xad,0x8d,0x5e,0xa4,0x13,0x7d,0xec,0xbd,0x7b,0x91,0xfd,0x7d,0xde,0x50 }, { 0x35,0xfd,0x92,0x37,0x66,0xce,0x1a,0x64,0x42,0x66,0xfd,0x82,0x25,0x76,0xc1,0xbd,0xf8,0x19,0x15,0xa5,0xfa,0x74,0xae,0x90,0x0b,0x94,0xea,0x60,0x5a,0xa3,0x51,0x5a }, { 0x4d,0x92,0x56,0x24,0xd1,0xb9,0x3a,0x0c,0x16,0x4a,0x07,0x16,0xe7,0x7c,0x10,0xb9,0xfe,0x61,0xd4,0x8b,0xb8,0x50,0x22,0xb1,0xbd,0xdf,0x19,0xbf,0x42,0x7a,0xd8,0x0b }, { 0xca,0xb8,0xe5,0x03,0x68,0xee,0x1f,0x1e,0x1b,0x58,0x6a,0xe2,0x19,0x55,0x3c,0x46,0x75,0x1a,0xec,0xb7,0xfc,0xc6,0xb2,0x3f,0x9f,0x54,0x07,0x44,0xa6,0x5a,0x23,0x31 }, { 0x8b,0x0d,0x45,0x80,0xad,0x80,0x9a,0x4c,0x29,0x90,0xcf,0xcc,0x7a,0x55,0x62,0x6c,0x8e,0xac,0x2e,0xec,0xc2,0xb6,0x68,0x77,0x94,0xed,0x85,0xaa,0x8d,0x70,0x21,0x2e }, { 0x77,0xb0,0x51,0x61,0xe7,0x65,0xfb,0xb3,0xbf,0xe4,0xd4,0xaf,0x32,0xfb,0xd9,0xfa,0xfe,0x3b,0x07,0x01,0x17,0x8b,0xbd,0xdd,0x71,0x15,0x3b,0xe2,0xf0,0xd7,0x00,0x25 }, { 0xb5,0x36,0x45,0x6c,0x82,0x5f,0x2f,0x57,0xa1,0x14,0x0d,0x76,0xc2,0x87,0x53,0x6a,0x70,0x8c,0xd6,0x9a,0x3c,0x7f,0x78,0x9f,0x5b,0x26,0xa7,0xa6,0xc0,0x3b,0xde,0x67 }, { 0xcb,0xb3,0x91,0x3b,0x12,0xb4,0x13,0x85,0xca,0x5b,0x9c,0x30,0x29,0x7d,0xc1,0x2c,0x6f,0x5c,0xba,0x2a,0x6d,0xc1,0x92,0x26,0x0d,0x5d,0xeb,0x01,0x7d,0xa9,0xe9,0x54 }, { 0xf5,0x45,0x8c,0x2c,0x90,0x7e,0x09,0xcd,0x34,0xb4,0x62,0x59,0x8c,0x1c,0xd2,0x6d,0xb5,0xd9,0x64,0xea,0xad,0xcf,0x07,0xed,0x4e,0xb5,0x81,0x6e,0x07,0x35,0x76,0x3b }, { 0x60,0x20,0x58,0xa1,0x70,0x1a,0x07,0xfa,0x38,0xa8,0x56,0x42,0x7c,0x09,0xec,0x2b,0x14,0xab,0x8f,0x99,0xc1,0xef,0xb2,0x1f,0xb7,0x39,0xf5,0xfc,0xe3,0xf4,0x84,0x6d }, { 0xd8,0x29,0x4f,0x38,0x93,0xdb,0xb8,0xca,0x85,0xe0,0x45,0xab,0xa2,0xe4,0x6b,0x88,0x49,0x62,0x6f,0x1f,0x6f,0x1d,0xab,0xea,0x81,0xd1,0xf8,0x38,0x39,0x8e,0xab,0x55 }, { 0x94,0xdd,0xfe,0xfc,0xa5,0x60,0x39,0xca,0x6f,0xe3,0x0f,0xb6,0xb0,0xf9,0xc2,0x6e,0x6e,0x52,0x5a,0x59,0x04,0x83,0xc4,0x56,0x59,0x43,0x88,0x00,0x5f,0xfe,0x9d,0x46 }, { 0xd7,0xcc,0xf3,0xc4,0x63,0x63,0x3a,0xa3,0x82,0x89,0xbc,0x55,0xe9,0x78,0x17,0xbc,0xef,0xfc,0x8f,0x31,0x0c,0x9f,0xc3,0xde,0xa9,0xc6,0x0d,0x11,0x8b,0x36,0x3c,0x6d }, { 0x63,0x1c,0x64,0xf1,0x1b,0x9b,0xf2,0xb0,0xad,0xcb,0x9a,0x97,0xa4,0x7f,0x04,0xf0,0x02,0xf2,0x9d,0x10,0x32,0x16,0xfe,0x85,0x9f,0xee,0x74,0x76,0xd8,0x39,0xd3,0x2b }, { 0xcb,0x44,0xeb,0x34,0xa6,0x07,0xe2,0x95,0x2b,0x7a,0xbe,0x5a,0xbf,0xdc,0x5f,0xc5,0xa8,0x4d,0x29,0x7b,0xe8,0x27,0x3b,0xa9,0xa2,0x20,0x07,0xf0,0x98,0x10,0x0c,0x56 }, { 0x4b,0xd4,0x30,0x8b,0x91,0xb6,0x25,0x22,0x88,0x4d,0x08,0x49,0xbc,0x6b,0xad,0x93,0xbd,0xbb,0x7f,0x51,0x11,0x71,0x61,0x44,0x37,0xad,0x7c,0xc3,0x85,0xb1,0x8a,0x4e }, { 0xc6,0xfc,0x9f,0x0f,0x4d,0xc3,0x5d,0xcc,0x27,0x36,0xd5,0x2c,0x63,0x87,0x5b,0x0d,0x15,0x9a,0x04,0x4a,0x73,0x96,0x35,0xf7,0x00,0x98,0xd8,0x8c,0x2c,0x84,0xb6,0x55 }, { 0xb7,0xdb,0xe3,0x5f,0x0b,0x4e,0xb2,0xf5,0x2e,0x6e,0xaa,0xaa,0xad,0xa6,0x97,0x3f,0x7b,0xa2,0x15,0xb8,0x23,0x20,0x12,0xdd,0xcc,0xff,0x75,0x33,0x1a,0x0f,0xc6,0x5a }, { 0xe3,0x6c,0x82,0xe6,0x45,0x87,0x49,0x49,0x1f,0xd5,0xf0,0xf2,0x3d,0x87,0x37,0x56,0xaf,0xc3,0xb7,0xb8,0x68,0x71,0xc8,0x50,0x5d,0xad,0xda,0x18,0x16,0x1a,0x29,0x2f }, { 0xd1,0x70,0xd3,0x0b,0xad,0x9e,0x52,0xa1,0x66,0x7e,0x46,0x2f,0x69,0xd5,0xf4,0xa2,0x74,0xac,0xf6,0xcb,0x82,0x74,0xa4,0xf5,0x9b,0x2f,0x8b,0xc3,0xf3,0x3e,0xc9,0x60 }, { 0xa3,0x43,0x8b,0x92,0x04,0xde,0xc6,0xf9,0x40,0xdd,0xb0,0xc2,0xc4,0x40,0x09,0x89,0x61,0x35,0xdf,0xc3,0x0e,0xc3,0x2d,0x0f,0x49,0x45,0x1c,0x6a,0x96,0xc4,0x3a,0x2f }, { 0x5a,0x71,0xb5,0x08,0x26,0x71,0x5d,0x99,0x1f,0x30,0xe8,0x35,0xe8,0xec,0xcc,0x6d,0x89,0xa2,0x6d,0x10,0x4c,0x37,0x90,0x66,0x80,0xbd,0xe1,0xba,0xbb,0x87,0xca,0x11 }, { 0x37,0xef,0x71,0xf6,0x9e,0x26,0x5e,0xce,0x65,0xc2,0x3f,0x09,0x74,0x37,0x6b,0x17,0xde,0x8c,0xa1,0xa0,0x7c,0x4a,0x81,0x3f,0x20,0xd4,0xe9,0xe4,0xd2,0x30,0x93,0x14 }, { 0x23,0xce,0x67,0xac,0x57,0x09,0x50,0x1d,0x9f,0x13,0x40,0x30,0x92,0xbc,0xc0,0x1f,0xf0,0xcd,0x15,0xc8,0x52,0x0b,0x6c,0x35,0xd7,0xbe,0x43,0x6d,0xc8,0x58,0xed,0x17 }, { 0x0e,0x96,0x0e,0x39,0xbc,0xe1,0xea,0xfc,0x55,0x0a,0x7c,0xb6,0xd1,0x45,0x55,0x5d,0x5a,0x74,0x78,0x31,0xed,0xd4,0x8d,0x84,0x97,0x11,0x55,0x12,0x25,0x7c,0xcd,0x20 }, { 0x53,0x5f,0x6f,0xb9,0x4e,0xdf,0xec,0x30,0x1f,0x4e,0xd4,0xea,0xb5,0xaa,0xf7,0xbf,0xd2,0x53,0x1c,0x2a,0x7c,0xe2,0x90,0xd5,0x6b,0xb3,0x28,0xfa,0x04,0xb9,0x3b,0x5e }, { 0xc3,0x40,0x13,0x85,0xed,0x41,0x0e,0xbe,0x1d,0x30,0xbe,0x31,0x49,0x51,0xe0,0xf8,0x31,0x7c,0xcd,0x29,0xa5,0x36,0xdb,0xfa,0x78,0x99,0xc7,0x92,0x0b,0x4c,0x20,0x4b }, { 0x88,0x3b,0xec,0xdb,0x44,0xd3,0x98,0x79,0xc7,0xc6,0xca,0x1c,0x1f,0x97,0x0d,0x07,0xb7,0x20,0xc5,0x34,0x69,0xe4,0xd0,0x0f,0x03,0xd5,0x6c,0xa0,0xe6,0x1c,0x77,0x5a }, { 0x11,0xd2,0x5b,0x8d,0xe7,0x69,0x7c,0x48,0x1d,0xfc,0xd3,0x35,0xa9,0x58,0x3e,0xd9,0x00,0x96,0xf1,0xe0,0xc8,0x66,0xcb,0x3d,0x63,0x5f,0x08,0xf1,0x2a,0xb1,0xfe,0x36 }, { 0xd0,0x44,0x10,0x28,0x45,0x3f,0xd7,0x4d,0x80,0xa2,0xf4,0xf7,0x40,0x9f,0x67,0xa5,0x48,0xa3,0xe8,0xe2,0xc3,0x6e,0x0c,0x80,0x8b,0x0e,0x50,0x8e,0xe7,0xe9,0x7f,0x00 }, { 0x03,0x9a,0x16,0x84,0x12,0x56,0xcd,0x99,0x67,0x10,0xed,0xae,0x26,0x14,0x7e,0xe0,0x1b,0xf4,0x21,0x25,0x50,0xf6,0x27,0x5e,0x39,0xa9,0x89,0x09,0x49,0xca,0x91,0x63 }, { 0xf6,0x90,0x93,0x64,0x48,0x7e,0x14,0xe6,0x1a,0x1b,0x40,0xff,0x23,0x51,0x3b,0xb9,0x87,0x5f,0x26,0xdb,0xbe,0x4d,0x0a,0xa7,0x3f,0x5b,0xaf,0xb2,0x73,0xfa,0x6e,0x3f }, { 0x13,0x25,0x9e,0x9d,0x9e,0x8d,0x7e,0x2f,0x13,0xeb,0x09,0x37,0xdb,0x07,0x46,0x91,0x97,0xf1,0x0b,0x91,0x09,0x00,0xb4,0xe8,0x2a,0x7f,0x7a,0xe4,0x09,0xa5,0x53,0x06 }, { 0xcf,0xbe,0x26,0x15,0x99,0xde,0xae,0x02,0x23,0x59,0x12,0x3f,0xa9,0xfc,0x26,0xa5,0xa1,0x29,0x71,0x2e,0x22,0x05,0xa8,0x4f,0x69,0x3d,0x88,0x16,0x1e,0xb9,0xba,0x3a }, { 0xb9,0xad,0xa3,0x9e,0x8b,0x45,0x08,0xcf,0x7e,0xd0,0x3d,0x02,0x35,0x04,0xd2,0x87,0xc5,0x96,0xeb,0xe5,0x6f,0x2d,0xd2,0xc3,0x92,0x9e,0xd3,0x36,0xca,0x0f,0x26,0x08 }, { 0xaa,0xe3,0xc0,0x74,0x20,0x55,0xa9,0x41,0xb3,0x41,0x8c,0xeb,0xee,0x8b,0xc4,0x47,0x6f,0xa1,0x28,0x38,0x68,0x3b,0xf1,0x12,0x5e,0x6b,0x79,0x6e,0x49,0x56,0x5c,0x0d }, { 0x36,0xee,0xce,0x3b,0xc4,0x94,0xe0,0x48,0xca,0xc3,0xa0,0xef,0x31,0x98,0xcd,0x51,0x5d,0x5e,0x27,0x33,0xc3,0x62,0xcb,0xdd,0x12,0xca,0xd0,0x4f,0x1a,0x83,0x84,0x57 }, { 0x39,0x7d,0x36,0x87,0x9e,0x93,0xa5,0x58,0xfb,0x40,0x88,0x94,0xa9,0x5e,0xfe,0xc0,0x42,0x6e,0x29,0x70,0xb8,0x43,0xb1,0x9e,0x7d,0xa2,0x25,0x87,0xae,0xf9,0xee,0x63 }, { 0x9f,0x3a,0x6c,0x42,0x7e,0xe6,0xa9,0xb2,0x1c,0x70,0xed,0x24,0x96,0x36,0xe2,0xe5,0xfb,0x0f,0xe7,0x34,0xfd,0xbc,0x97,0x44,0x76,0x5e,0x37,0x7a,0x62,0x92,0x2b,0x24 }, { 0x98,0x74,0xa4,0x80,0x92,0xb3,0x40,0x8f,0x73,0x73,0x46,0x70,0xa5,0xa5,0x37,0x4b,0xeb,0x45,0x59,0xd3,0xd2,0x43,0xdf,0xf9,0xd8,0xd4,0x81,0x22,0x1f,0xfa,0x41,0x1d }, { 0x96,0xbf,0x97,0x96,0x12,0x38,0x26,0x43,0x3a,0x8a,0x6f,0x61,0x09,0x75,0xfc,0x01,0xf5,0xbe,0x20,0x0d,0x9e,0xc7,0x06,0x2d,0x7f,0x77,0x33,0x20,0x81,0x61,0x2d,0x15 }, { 0x53,0xd6,0x7d,0x7b,0xaa,0x79,0xe1,0x9f,0x6f,0x52,0xd3,0x1b,0x61,0xdc,0x0d,0x53,0xd0,0xa7,0xfc,0xfa,0xdc,0x65,0xb4,0x79,0x6b,0x95,0x0a,0x7f,0xed,0x02,0x89,0x46 }, { 0x4f,0x12,0xfd,0x93,0x4c,0xbd,0x76,0x56,0x1e,0x17,0xb1,0xaf,0x6f,0xf8,0xe9,0x9a,0xc6,0x98,0xfa,0x0a,0xe3,0x49,0x79,0x15,0xbe,0x41,0x32,0x84,0x44,0x72,0x47,0x76 }, { 0x2f,0x59,0xcc,0x8b,0x85,0x2b,0x81,0x61,0x8f,0x8b,0x42,0xf0,0x29,0xa7,0x82,0x9e,0x89,0xe3,0x41,0x9f,0xd9,0xd3,0x44,0x31,0x33,0x2e,0xaa,0x0d,0x71,0x5e,0xa3,0x10 }, { 0x4a,0xb9,0xe8,0x1c,0xb8,0x71,0x9a,0x3f,0x74,0x3e,0xb6,0xf3,0xa9,0x52,0x0b,0x5e,0xe0,0xb1,0x23,0x97,0x59,0x20,0xd3,0x9e,0x15,0x05,0x9e,0xb8,0x33,0x9f,0x9c,0x13 }, { 0x70,0xcf,0xa6,0xdf,0xe8,0x62,0xbd,0xd8,0x0c,0xdc,0xd1,0x1a,0xf4,0xbd,0x31,0x89,0x93,0x25,0x03,0x59,0x40,0x53,0x44,0x02,0x9c,0x52,0x24,0x71,0x20,0x0c,0x4a,0x44 }, { 0xdd,0xb7,0xc1,0xb6,0xff,0x10,0xcc,0x96,0x20,0x26,0x31,0x42,0x84,0x25,0x22,0x9d,0x80,0xd5,0x5a,0x1e,0x72,0x72,0xe4,0xe9,0xc3,0xf3,0x8f,0x9f,0x7f,0xb9,0x08,0x7d }, { 0x2b,0xfc,0x02,0xc9,0x82,0x35,0x42,0x10,0xad,0x84,0x98,0x4d,0x9f,0x9a,0xaa,0xad,0x41,0x01,0xd9,0xbb,0x20,0xab,0xa2,0x88,0x22,0x39,0x76,0x14,0x60,0xa8,0x35,0x31 }, { 0x55,0x5f,0xb7,0x42,0xc2,0x47,0x67,0xfc,0x55,0xaf,0xad,0x77,0x6f,0x63,0x19,0x90,0x65,0x36,0x5a,0xa4,0x26,0x24,0xd6,0xc7,0xf2,0xf4,0xf3,0xd9,0xb4,0xa2,0x58,0x1b }, { 0x45,0x24,0x44,0x6e,0x9a,0x5f,0xa8,0x78,0x31,0x7c,0xfa,0xf7,0x47,0x23,0x37,0x1a,0xca,0x26,0xb2,0xbb,0x8e,0xd0,0x35,0x89,0x4f,0x28,0xee,0x72,0xf0,0xf1,0x07,0x76 }, { 0x4d,0x16,0x71,0x08,0xd5,0x48,0xd8,0x46,0x92,0x92,0x81,0xbc,0x27,0xa0,0xe0,0xfe,0x65,0x10,0x1c,0x23,0xc3,0x11,0x17,0x63,0x9a,0x01,0xce,0x13,0x74,0xd4,0x00,0x14 }, { 0xf6,0x26,0x20,0x9c,0xd8,0x09,0xcb,0xe2,0x07,0xbf,0x12,0xf6,0xb2,0x0d,0x1b,0x9f,0xe6,0x6e,0x29,0xb9,0x1d,0xf4,0x76,0x40,0xae,0x7a,0xa1,0xd7,0x29,0x4e,0xef,0x35 }, { 0x05,0x54,0x0b,0x63,0xf2,0xac,0xb0,0x27,0xf7,0xfc,0x62,0x75,0x5a,0x9d,0x6f,0xd0,0x4f,0xe9,0x76,0x18,0x41,0x53,0xb9,0x69,0x4b,0x11,0x20,0x21,0xe4,0xff,0xf8,0x16 }, { 0xf8,0x82,0xb1,0x6d,0x41,0x8f,0xe8,0x9f,0xd7,0x86,0xbf,0xe9,0x9b,0xc9,0x28,0x7d,0x38,0xc9,0x21,0x56,0xbe,0x62,0x00,0xca,0x5f,0x4c,0xc3,0x3b,0x92,0xad,0x51,0x31 }, { 0xfb,0x72,0x53,0x97,0xed,0xfd,0xd8,0xd3,0xf0,0x50,0x7c,0xe4,0x61,0xdb,0xaf,0x1b,0xe8,0xe5,0xfe,0x28,0xef,0xe2,0x44,0x23,0x40,0x22,0xbc,0x1d,0x51,0x57,0x03,0x4a }, { 0xad,0x07,0xe1,0xc3,0x80,0x7f,0x52,0xe0,0x1a,0xaf,0x90,0x4f,0xb7,0x14,0xec,0x9b,0xf5,0xeb,0x42,0x3a,0x15,0xd4,0x5d,0x20,0x1e,0xb8,0x5a,0x74,0xcb,0x6b,0xf1,0x6e }, { 0xd2,0xdd,0x68,0x8c,0x52,0x98,0x9f,0x1a,0x7c,0xae,0xe7,0x21,0x3a,0xb4,0x0b,0xee,0x30,0x59,0xa9,0xeb,0x37,0x80,0x8b,0x7d,0xc4,0x56,0xba,0x2a,0x8f,0x9c,0xb7,0x4e }, { 0xf3,0x18,0x88,0x90,0xb9,0x85,0x88,0x52,0x20,0xbb,0x14,0xd2,0xe1,0x07,0x98,0x5e,0xb6,0xd2,0xc0,0xcc,0xeb,0xb8,0xaa,0xb6,0xcf,0x4e,0x42,0x27,0xcb,0xe0,0x59,0x1f }, { 0x6c,0x81,0x9c,0xb3,0xc7,0x8c,0x6d,0xb9,0x9f,0xb9,0x61,0xf4,0xf6,0x56,0xfe,0x0e,0xc0,0x7e,0x2f,0x5d,0x4d,0x18,0x9a,0x6f,0xbd,0x62,0x2d,0xe8,0x7b,0x4a,0xaa,0x30 }, { 0x9c,0x79,0x6a,0xa4,0xa8,0x7a,0x82,0xad,0x32,0x3e,0x77,0xdc,0x98,0x5b,0xbb,0xbe,0xe2,0xfa,0xa9,0xa7,0x7f,0x5b,0x52,0xfd,0xf0,0x7c,0xca,0x6e,0x5b,0x24,0xf1,0x48 }, { 0xf3,0x38,0xdf,0x7d,0x18,0xbc,0x35,0xe6,0x57,0x5d,0x11,0xac,0xc6,0x70,0x75,0x57,0x7a,0x93,0x9a,0xbd,0x63,0x1f,0x5c,0x0a,0x0a,0x82,0x4c,0x37,0x13,0x15,0x34,0x75 }, { 0x0e,0x2d,0xc2,0x78,0xe7,0x85,0x7c,0x21,0x8d,0x3d,0x35,0x98,0x8a,0xca,0xe7,0xaa,0xc9,0xe6,0x6a,0x58,0x93,0xe4,0x13,0xb8,0xa9,0x51,0x76,0x03,0x1f,0x90,0x56,0x50 }, { 0x20,0xe0,0x60,0xc9,0x70,0x47,0x4d,0xfe,0x00,0x51,0x26,0x6d,0x4b,0xa0,0x34,0x06,0xe0,0x93,0xd6,0x13,0xe2,0x75,0x44,0xc3,0xbc,0xd5,0xa1,0xbc,0x72,0x55,0xcf,0x39 }, { 0x4f,0xa2,0x05,0xaa,0x8e,0x2b,0x52,0x66,0xbb,0xe1,0x19,0x5c,0x2a,0xb1,0x1a,0x35,0x92,0xb3,0xee,0xca,0x78,0x69,0x87,0x19,0x4c,0xcf,0x59,0xd9,0x4a,0xb2,0xf9,0x18 }, { 0x55,0x0e,0x8e,0xb2,0x9a,0x61,0xcf,0x35,0xb4,0x19,0x7f,0xd5,0xbb,0xe4,0xa1,0x53,0x8b,0x26,0x80,0x97,0xb4,0x93,0x15,0xcc,0xd1,0x56,0x5d,0x2b,0xf3,0xb8,0x9d,0x56 }, { 0xfd,0x23,0x70,0xe3,0xd7,0x4e,0x24,0xb8,0x7d,0x3d,0x5f,0xfe,0xdb,0x6e,0x4b,0xf2,0x6f,0x69,0x25,0x3e,0xdd,0x0a,0x88,0x2e,0x7a,0xd8,0x71,0xb9,0x0f,0x58,0x11,0x01 }, { 0xb9,0xf5,0x5c,0xb4,0xc7,0x87,0x5b,0x9a,0x67,0xb5,0x5e,0xe8,0x93,0xc5,0x5c,0x47,0x49,0xae,0x90,0x65,0xa1,0x78,0x65,0x61,0x2a,0xeb,0xd5,0x7f,0xe2,0xc8,0x74,0x29 }, { 0xcf,0x62,0x94,0x20,0xc2,0x4f,0x83,0x3c,0xaa,0xb2,0x8e,0x75,0x6f,0x36,0x27,0xb2,0x8d,0xd1,0xa7,0x85,0xcf,0x64,0x03,0x49,0xad,0xb8,0x74,0xa5,0x7e,0x47,0x8f,0x18 }, { 0xb0,0x17,0x71,0x70,0x1f,0x05,0xb0,0xc8,0x98,0x41,0x74,0x82,0x2d,0x0d,0x74,0x90,0xf6,0x4e,0xa5,0x9e,0x17,0xdf,0x93,0x70,0xbe,0x8d,0x9b,0x3a,0xfc,0x24,0x63,0x5d }, { 0x97,0xc3,0x5f,0xf1,0x3c,0x9f,0xa3,0x8a,0xe4,0x72,0x7f,0x46,0x6f,0xd0,0x5b,0xf7,0xbd,0x6e,0x5f,0x30,0x3c,0x9e,0xab,0x3e,0xab,0x5e,0x41,0xf7,0x5a,0x8b,0x95,0x39 }, { 0xf9,0x9d,0x8a,0x0f,0x73,0x61,0xa8,0x98,0x55,0x6e,0xde,0x2d,0x1e,0x06,0x3f,0xef,0x89,0x6b,0xd3,0x34,0xb6,0xcc,0xd4,0xde,0x02,0x74,0xf8,0x26,0xf8,0x89,0xb5,0x55 }, { 0x5b,0x83,0x0c,0x73,0x7f,0x17,0xf1,0xd4,0x6c,0x69,0x76,0x50,0x98,0x73,0xbc,0xf9,0xc1,0x57,0x8f,0x8b,0x8e,0x4c,0xb5,0x23,0x84,0x3a,0xca,0xa5,0x3f,0x8f,0x16,0x64 }, { 0x49,0xb0,0x27,0xa8,0xf0,0x36,0x57,0xdb,0x0b,0xf1,0x0d,0x14,0x07,0x4d,0x7b,0x75,0xd9,0x9a,0xfd,0x05,0xa5,0x5c,0x5c,0xd9,0x93,0xe1,0x0d,0x84,0x9e,0x88,0x0c,0x72 }, { 0xe4,0xe8,0x2f,0x06,0x32,0x3f,0xf3,0xcf,0x83,0x2f,0x0a,0x66,0x68,0xe5,0x5a,0x15,0xd7,0xfa,0x8b,0x77,0x40,0xd0,0x4b,0x51,0x77,0x6c,0xb4,0x39,0x5e,0xdf,0x91,0x54 }, { 0x3e,0x41,0x41,0x5d,0xf1,0x02,0x51,0xf0,0x37,0x32,0x11,0xea,0x00,0x28,0x27,0x4f,0x13,0x83,0x2b,0x6d,0x0e,0x42,0x52,0xbd,0x5e,0xf9,0x25,0xdc,0x4c,0x31,0x04,0x75 }, { 0xa5,0x4f,0xbf,0x86,0x00,0xd4,0x32,0x77,0x5a,0x39,0x7a,0x7b,0xa3,0xa9,0xe2,0x64,0xf2,0x55,0x3a,0x84,0xdf,0xf5,0x18,0x06,0x3a,0x89,0x12,0x87,0xc7,0x4c,0xbc,0x09 }, { 0x6b,0x5a,0x7b,0xee,0x4c,0x83,0x3d,0xaf,0x0c,0x48,0x1e,0x44,0xac,0xa9,0x4d,0x91,0x8f,0xda,0x46,0xdc,0x61,0x2f,0xc8,0x70,0x77,0x48,0x76,0xec,0x43,0xed,0xa4,0x51 }, { 0xe8,0x07,0x92,0x2c,0x44,0x7e,0xde,0xea,0x74,0x12,0xe4,0xf2,0x84,0x61,0x4f,0xe3,0xa4,0x13,0x7d,0xf4,0x43,0xd3,0xce,0x3d,0x21,0xf5,0x7c,0xb5,0x64,0x9e,0x53,0x72 }, { 0xb7,0x3d,0x1b,0x4e,0x2c,0xf5,0xe0,0x59,0x42,0x3b,0x10,0xf6,0x25,0x1c,0xc2,0xa9,0x7f,0x60,0xf4,0x10,0x74,0x0f,0x95,0x14,0x19,0xe0,0x52,0x9b,0x95,0x12,0x36,0x55 }, { 0x94,0x6c,0xc3,0x09,0xc8,0xe5,0x85,0xbb,0x2d,0x44,0xc7,0x13,0xd6,0xbb,0x5e,0xb0,0x04,0xa4,0xfa,0x6c,0xc6,0x0f,0xce,0x06,0x36,0xf7,0xfa,0x5b,0xdd,0xa9,0x84,0x17 }, { 0x02,0xdf,0xdd,0x1e,0x79,0x55,0x89,0x72,0xaf,0xf0,0x4b,0xa2,0x0e,0xa0,0xe3,0x10,0xef,0xe0,0x65,0xac,0x0c,0xdd,0xef,0x93,0xc9,0xd9,0x54,0x11,0xe4,0x47,0x02,0x36 }, { 0xd6,0xa1,0x76,0x6b,0x9f,0x3a,0x49,0x14,0x55,0xb5,0xca,0xdc,0xb6,0x83,0x79,0x48,0x1f,0xc7,0x8f,0xb3,0x9d,0x71,0x1c,0xd0,0xe0,0xf1,0x15,0x90,0xc8,0x6d,0xce,0x57 }, { 0xac,0xba,0xef,0xe1,0x4b,0xca,0x69,0x86,0xb9,0x2b,0x0d,0xe8,0x31,0xf3,0x3c,0x24,0xae,0xde,0x4a,0x40,0xf3,0xab,0xd9,0xbf,0xb5,0x1e,0x1c,0xec,0x2c,0x07,0xb9,0x08 }, { 0xac,0x3e,0x85,0x27,0x46,0x3a,0xb9,0xd8,0x61,0x2b,0xb2,0xab,0x69,0x72,0xf7,0x6d,0xc1,0x46,0xf7,0xc1,0x62,0x73,0x55,0x8a,0xac,0x45,0x3e,0xaa,0x69,0x8f,0xf6,0x6a }, { 0x2f,0xeb,0xfa,0xa7,0xef,0x48,0x9e,0x60,0x4e,0xed,0x58,0xc1,0x71,0x1f,0xf6,0x7f,0x55,0x87,0x38,0xdc,0xad,0x5f,0x55,0x90,0xfe,0xd0,0xc4,0x5a,0xfa,0x9b,0xcc,0x57 }, { 0x4c,0xf2,0xf7,0xd4,0x1c,0x4c,0xef,0x90,0x42,0x42,0xce,0xf1,0xeb,0x94,0xe2,0x1b,0x9a,0xe6,0xf2,0x90,0xcf,0x5c,0xe1,0xca,0x0a,0x39,0xdc,0x25,0x2e,0x83,0x6f,0x0e }, { 0xcf,0x39,0x1f,0xbc,0xc6,0x56,0xff,0x72,0xeb,0xd5,0xfa,0x1e,0xd1,0x7a,0x7f,0x34,0xfd,0xfd,0xa2,0xa4,0xf6,0xb9,0xef,0x3c,0x78,0x96,0x81,0x7f,0x65,0xdf,0x31,0x7a }, { 0x2e,0xbe,0xfd,0x73,0x71,0x4e,0x7a,0x66,0xb2,0xba,0xc0,0x37,0xb0,0xac,0x85,0xcf,0x26,0xc3,0xc0,0xd4,0x46,0xb4,0x16,0xfd,0xdc,0xb3,0x56,0xcc,0x80,0xac,0x4d,0x44 }, { 0x16,0x2c,0x49,0xd1,0x74,0x11,0xf1,0x32,0x6e,0xe5,0xdc,0x57,0x72,0xa0,0x7d,0xb3,0xeb,0xb3,0x41,0xa8,0x45,0x04,0xa5,0xa6,0x6d,0xb9,0xa2,0x68,0xfe,0x2e,0xe6,0x0f }, { 0x99,0xd9,0xe2,0x80,0x20,0xb4,0x86,0xbc,0xae,0xbe,0xd9,0xb6,0x88,0x5e,0x72,0x64,0xe9,0x31,0xca,0xb7,0x3d,0x07,0x53,0xcd,0xa5,0x3f,0x80,0xe0,0x76,0x4b,0x64,0x60 }, { 0xaf,0xe9,0xd1,0x94,0xf9,0xfe,0x36,0x24,0x63,0x24,0x0e,0x7d,0x2d,0xb5,0x28,0x7d,0x6c,0x36,0x01,0xb2,0xfa,0xd5,0xbd,0xfa,0xcf,0x27,0xa5,0x59,0x7b,0x7b,0x4b,0x14 }, { 0x0f,0x1b,0x65,0x89,0x58,0x78,0xe2,0x65,0x47,0x24,0x2c,0x56,0xfd,0x98,0x6f,0x79,0xcb,0xb4,0x5c,0x4f,0x72,0x2a,0x3b,0x0f,0x66,0xcf,0x4a,0xb2,0xa4,0xa5,0x23,0x69 }, { 0x42,0xfa,0x67,0xf6,0xce,0x49,0x43,0x78,0x62,0x44,0xb8,0xdf,0xdb,0xe0,0x45,0x0d,0x10,0x2a,0x2e,0x05,0xa9,0x86,0x3c,0x1f,0x37,0x48,0xc3,0xca,0x00,0xfd,0xad,0x64 }, { 0x15,0x24,0x0a,0xfe,0x3c,0xe2,0x92,0x20,0xbf,0x0b,0xb9,0x06,0x9b,0x8c,0xca,0xc5,0xc9,0x2d,0x1b,0x66,0xef,0x36,0x01,0x43,0x09,0xf8,0xd9,0xaf,0xe1,0x52,0x3d,0x2a }, { 0xb5,0xbb,0xeb,0x00,0x9c,0x6c,0xb8,0x1f,0x43,0xa3,0xee,0x95,0xc6,0xc1,0xc1,0x45,0xd4,0x5a,0x3f,0x7f,0x4b,0xac,0xc8,0x88,0xc3,0xb7,0x81,0x82,0xa2,0x1b,0x53,0x20 }, { 0x36,0x71,0xf3,0x30,0x67,0xd7,0x65,0x8d,0xc6,0x58,0x0d,0xf5,0x53,0xfe,0x1e,0x13,0x76,0xfd,0x95,0x50,0x06,0x35,0x09,0x21,0xc1,0xa3,0xe0,0x0d,0x5b,0x33,0x1c,0x4e }, { 0x9d,0xbd,0x5a,0xe0,0x99,0xb2,0x91,0xf4,0x6f,0xbf,0x5e,0x70,0x5f,0x8d,0x28,0x98,0xe1,0x75,0xd2,0x4f,0x31,0x00,0x38,0x24,0xe4,0x73,0x1b,0xda,0x94,0x21,0xbf,0x1f }, { 0x91,0x29,0xd2,0xc6,0x58,0x18,0x64,0xc8,0xd0,0x85,0x39,0xe8,0x0c,0x3a,0x97,0xb3,0x1c,0x3b,0xca,0x40,0xbb,0xd0,0x5e,0x2e,0x0f,0xaa,0xf4,0xdf,0x5e,0xc2,0xea,0x14 }, { 0xf2,0x2d,0x92,0x0b,0x6f,0x24,0x3a,0xd2,0x74,0x32,0x04,0xc3,0xec,0x17,0xe7,0x65,0xf1,0x67,0x4b,0xe5,0x59,0xc0,0x94,0xf8,0xee,0x05,0x48,0x23,0x80,0x69,0x31,0x1a }, { 0x3e,0x66,0xf6,0xa4,0x81,0x81,0xf0,0x8b,0xdf,0x8a,0x21,0x94,0x9c,0x3f,0x37,0xe0,0x55,0xc5,0x50,0xf8,0x36,0x68,0x1c,0xc4,0x57,0xb0,0x91,0xb1,0xa9,0xdf,0xc1,0x02 }, { 0x93,0xd0,0x3a,0x56,0xfe,0xa6,0xc3,0x54,0x2e,0xac,0x1e,0x33,0xe9,0xcc,0xb3,0xd3,0xd1,0x45,0x5d,0x8d,0xd3,0xc1,0x5d,0xc5,0xc7,0x7d,0x12,0x61,0xa7,0x52,0x0d,0x08 }, { 0xbc,0xad,0x0f,0x47,0xbf,0x74,0x86,0xc7,0x30,0x72,0xa3,0xc8,0x82,0xc0,0x32,0x16,0x81,0xe4,0x57,0xef,0x6b,0xa1,0x63,0x05,0xe4,0x69,0x3b,0x3d,0x98,0x66,0xcd,0x13 }, { 0x8d,0xd7,0x5a,0x59,0x17,0x5e,0x96,0x00,0xa1,0x65,0x6d,0xf2,0x3d,0xe8,0xb1,0x95,0x61,0x75,0xf9,0x34,0x5d,0xf9,0xe7,0xe4,0xee,0xd7,0x41,0x71,0x5b,0x0c,0x94,0x08 }, { 0x22,0x8b,0x13,0x88,0x2d,0x30,0xd8,0x8e,0x64,0x44,0x77,0x52,0x1c,0xf2,0x6f,0xea,0xe0,0xb5,0x92,0xbe,0x6e,0x47,0xbe,0x06,0xd9,0x00,0x78,0x90,0xeb,0xcd,0x8a,0x6d }, { 0x22,0x81,0x1a,0x43,0x24,0xac,0x95,0x1d,0x39,0xfe,0xf7,0x17,0x9e,0xb1,0x46,0x76,0x36,0x68,0x7d,0xc1,0x14,0xf5,0xc2,0x9b,0x4a,0x13,0x50,0xe1,0x2e,0x19,0x03,0x03 }, { 0xad,0x07,0xd7,0x42,0x8c,0xe1,0xa5,0x12,0xcd,0x4e,0x49,0x0a,0x2a,0x13,0xcb,0x8c,0xbf,0xc4,0x20,0xcd,0x31,0x41,0x9e,0x3d,0xb8,0x46,0x65,0x0c,0xfa,0xb8,0x17,0x59 }, { 0x9c,0xb3,0x87,0xa4,0xab,0x7f,0x2b,0x42,0x27,0x0e,0xb8,0x61,0xeb,0x9e,0xb2,0x13,0x83,0x63,0xc6,0xc3,0xe4,0x5f,0x28,0x48,0x1b,0x78,0xd0,0xa6,0x86,0xef,0xaf,0x21 }, { 0xc7,0x59,0x28,0xf0,0x20,0xb0,0x23,0x01,0xe7,0x42,0x3e,0xae,0x2f,0x84,0x4f,0x17,0x56,0x14,0x82,0x85,0x72,0x80,0x9f,0x8f,0x10,0x9c,0x68,0xfb,0x2d,0xeb,0x7b,0x33 }, { 0x2e,0xa1,0x53,0x8a,0xc4,0x7c,0xbe,0x0d,0x5a,0x9c,0x97,0x86,0x84,0x9d,0x56,0x79,0x35,0xc9,0xbf,0x29,0xf6,0xe7,0x6b,0x7b,0x3e,0xee,0x09,0x1c,0x76,0x4a,0x80,0x12 }, { 0xb1,0x8f,0x92,0xff,0x57,0x6c,0xcd,0xef,0x8f,0xd4,0x01,0xa1,0x20,0x13,0x01,0xbf,0xc8,0xed,0x5d,0x3b,0x0f,0xf3,0x13,0x36,0x57,0x2f,0x82,0x40,0x7d,0x7e,0x30,0x57 }, { 0x9f,0xab,0x09,0x2a,0x85,0x73,0xc7,0x34,0xed,0x84,0x15,0x2f,0x06,0x52,0xc8,0x5c,0x2c,0x8a,0x26,0x66,0xc6,0xd0,0x89,0x2a,0x40,0xb8,0xf4,0x53,0xa5,0xa2,0x61,0x64 }, { 0x7e,0xa9,0x2b,0x6b,0x37,0xb5,0x6d,0x91,0x53,0x95,0xa0,0x70,0x33,0x7e,0xd5,0x90,0xf1,0x32,0xd8,0xa4,0x35,0x94,0x84,0xf0,0x94,0xd1,0xfe,0x80,0x28,0x55,0xa3,0x3b }, { 0xc4,0x92,0xa9,0x7d,0xfd,0x3f,0x3a,0x87,0x1d,0xbe,0xcd,0xfd,0xb7,0x30,0xb0,0x5a,0xde,0x48,0x79,0x7e,0xcc,0x4c,0xe9,0x22,0xfc,0x37,0xc5,0x20,0x9b,0x4e,0x6d,0x0b }, { 0xcc,0x2b,0x29,0xd7,0x2f,0xc8,0xa3,0x38,0xc3,0xab,0x85,0x52,0xa0,0x6e,0x0d,0xc6,0xeb,0x66,0x8a,0x09,0x12,0x56,0xf4,0x59,0x1f,0x80,0x80,0xbb,0x38,0x65,0xbf,0x34 }, { 0x22,0x54,0xd4,0x82,0x4a,0x74,0xb1,0xaf,0x42,0x09,0x4f,0xd7,0xb4,0xc4,0x05,0x99,0xbd,0x4e,0xb4,0xcd,0x14,0xaa,0xbd,0x94,0x5e,0x8a,0x4b,0x7f,0xab,0x1f,0xde,0x49 }, { 0x0e,0xb8,0x3c,0xdd,0xdd,0x7a,0xb7,0xc4,0x8a,0xd0,0x4d,0x76,0x61,0x7d,0x75,0x30,0x24,0x95,0xea,0x31,0x35,0xd8,0x87,0xd9,0x17,0x98,0x23,0x3e,0x2e,0x9e,0xd5,0x49 }, { 0xc8,0x09,0x74,0x4a,0x37,0x63,0xdb,0xb6,0x19,0xe2,0x55,0xaf,0x94,0x99,0x65,0x8d,0x02,0x47,0x6a,0x27,0x73,0x72,0x3d,0xf5,0x26,0x48,0x3f,0x00,0x94,0x86,0xbb,0x36 }, { 0x2c,0x24,0x44,0xe9,0xbc,0x7d,0x3e,0xda,0x60,0x8b,0x17,0x12,0x5d,0xc3,0x8a,0x3d,0x70,0xf7,0xd4,0xf3,0x79,0x27,0x90,0xc9,0xf9,0xeb,0x5f,0x68,0xc4,0x87,0xfc,0x13 }, { 0x0b,0x14,0xe5,0x0e,0x33,0x6c,0x94,0x98,0x70,0x8d,0xd1,0x43,0x8d,0x0a,0x9a,0x67,0x1f,0x57,0x8b,0x18,0x44,0xe8,0x79,0xd0,0x56,0xd9,0x31,0xac,0x9b,0xb7,0x7d,0x7f }, { 0x0f,0x59,0x83,0x41,0x9f,0x87,0xec,0xfd,0x15,0x36,0x65,0xe8,0xdf,0x1e,0x80,0xba,0x6b,0xd2,0x5e,0x44,0xf1,0x95,0x66,0xe6,0x76,0x06,0x68,0x87,0x1b,0x6e,0x30,0x73 }, { 0x2d,0x5a,0xac,0xab,0xf7,0xd6,0x09,0xe0,0x22,0xee,0x71,0x75,0xca,0xdb,0x5f,0x14,0xe2,0x00,0x3c,0x28,0x63,0xf7,0x13,0x96,0x23,0x47,0x5f,0x2d,0x20,0xae,0x71,0x73 }, { 0x83,0xd5,0x63,0xc6,0xca,0x69,0xfb,0xe3,0xcf,0xca,0xbc,0xc2,0xe5,0xc0,0x5e,0x50,0x6b,0x25,0x55,0x1b,0xf4,0x4c,0x53,0xe2,0xce,0x2a,0x32,0xfc,0xfc,0x9b,0xd3,0x7f }, { 0xcf,0x41,0xbe,0xf0,0xb7,0xf2,0xad,0x14,0x12,0xd6,0x3e,0x20,0xfe,0xb3,0x70,0x98,0x76,0xc5,0x35,0xef,0x48,0xaa,0x63,0x65,0xdb,0x93,0xa5,0x61,0xf7,0x96,0x54,0x59 }, { 0xa5,0xd2,0x5b,0xd1,0xc2,0xa9,0x37,0x33,0x96,0xe6,0x63,0x3f,0xbc,0x0f,0x93,0x98,0x1e,0x1a,0x8f,0x8c,0xfd,0xc9,0x80,0x2a,0x19,0xcc,0xb0,0x42,0x4b,0x38,0x24,0x5d }, { 0x5b,0x0d,0x1f,0x68,0xf8,0x08,0xfa,0x83,0x2a,0x99,0xbb,0xba,0x98,0xba,0x8e,0xe7,0xc8,0xf9,0xbd,0x86,0x97,0xf6,0x5e,0x96,0x39,0x99,0xa4,0x25,0x7f,0xbe,0x30,0x60 }, { 0x22,0x92,0x84,0xd3,0xe5,0x03,0x62,0xe9,0x92,0xcf,0x13,0x5a,0xe9,0x24,0x89,0x77,0xe4,0xf6,0xb1,0x9a,0xb8,0x06,0x4c,0x9a,0x59,0xa2,0x96,0x12,0x72,0x95,0xfa,0x6e }, { 0x8f,0x0c,0x8c,0xb2,0x1b,0x92,0xfa,0x3d,0x59,0x63,0xd4,0x71,0x0d,0xe5,0x1b,0x8c,0xa7,0xf7,0xf2,0xf6,0x86,0x30,0xc7,0x56,0xc4,0x56,0x91,0xe0,0x2f,0x68,0xbb,0x01 }, { 0xe0,0xfc,0x3a,0x46,0x3a,0x47,0x54,0x49,0xd5,0x70,0xf6,0x7d,0xc8,0x1e,0xa2,0x7b,0x63,0x0f,0x4b,0xf8,0xd0,0xf9,0x0c,0xbf,0xc1,0xcb,0x90,0xa8,0x39,0xc1,0x3f,0x6c }, { 0x98,0x59,0xd7,0x0e,0xc8,0xd7,0xc0,0x1a,0x94,0xd7,0x2f,0x7c,0x9e,0x87,0xa0,0xb5,0xfe,0x11,0x45,0xb5,0x61,0x99,0x0e,0x30,0x2a,0xe8,0x15,0x22,0xc4,0x01,0xb4,0x5b }, { 0xde,0x5c,0x27,0x08,0xf5,0x60,0xca,0x47,0x4e,0x9c,0xcc,0x9d,0x8a,0xaf,0xcd,0xff,0x6d,0x8c,0xcd,0x3e,0x87,0x74,0x15,0x29,0x3b,0x2d,0x76,0x6c,0x3d,0xbf,0x96,0x3d }, { 0xe8,0xd6,0xcd,0x28,0x6e,0x38,0x79,0x5b,0xf1,0x6b,0x66,0x20,0x0e,0x8e,0xc3,0xdf,0x0f,0x07,0xd1,0x86,0x95,0x19,0x6f,0x5e,0x3b,0xb9,0x04,0x74,0x50,0xec,0x00,0x57 }, { 0xf0,0x1d,0x9f,0x05,0x1f,0xe7,0xca,0x5f,0x42,0x83,0x88,0x07,0xc5,0xa6,0xa5,0x83,0x8a,0x88,0x50,0x6c,0xd4,0x3d,0x64,0x78,0x65,0xff,0x0b,0x70,0xd4,0xc0,0x44,0x3a }, { 0xe9,0xc9,0xb6,0x11,0xf0,0x42,0x20,0xa6,0x60,0x73,0x71,0xa2,0x6d,0x32,0x77,0xcf,0xba,0x08,0xc2,0x61,0x78,0x1d,0x5d,0x13,0x90,0x03,0xce,0xc9,0x3f,0xd8,0x77,0x38 }, { 0xf7,0x74,0x72,0xb3,0x27,0x16,0x85,0x8b,0x66,0x2a,0x57,0x9a,0x4f,0x09,0x93,0x33,0x9b,0x5e,0x6f,0x42,0xdb,0x3e,0x25,0x82,0x0a,0x88,0x5c,0x95,0x0b,0xb1,0x6f,0x3e }, { 0x5f,0xb0,0xde,0x2b,0xf5,0x4b,0x1a,0x6e,0x9e,0xfb,0xd0,0x60,0x39,0x0c,0x36,0x57,0xe7,0x87,0x23,0x4c,0xd7,0xae,0x00,0x96,0xe1,0x5f,0x81,0x30,0xb8,0xe3,0x7b,0x2d }, { 0x00,0xb5,0x5c,0xb2,0xdf,0x93,0xc8,0x71,0x05,0x23,0x9e,0x04,0xa5,0xa6,0x56,0xe1,0x82,0xb0,0x46,0xef,0x70,0x49,0x8d,0x31,0x65,0xcf,0x25,0xf4,0xd4,0x9d,0xcf,0x4c }, { 0x0c,0xa0,0x62,0x53,0xfe,0xee,0xfd,0x71,0x94,0xdc,0x29,0x3b,0x2b,0x20,0x30,0xda,0x4e,0x67,0x64,0xe2,0xae,0x70,0xeb,0xf4,0x17,0x79,0x48,0x5d,0x1d,0xcb,0x15,0x24 }, { 0x9f,0x20,0x54,0x91,0x80,0xd4,0x89,0x42,0x1b,0xce,0x91,0x6f,0x9a,0xd6,0x87,0xf3,0xef,0xaa,0xc4,0xab,0x92,0xf6,0x12,0xc9,0xc6,0x91,0xf7,0xaf,0xe7,0x75,0x96,0x2a }, { 0x02,0x67,0x84,0x0e,0xb3,0x38,0x76,0xf0,0x63,0xfe,0xe9,0xc9,0xca,0xea,0x3d,0x10,0x1c,0x47,0xfc,0xc9,0x81,0x44,0xa3,0x92,0x77,0x9f,0xf5,0x70,0xf9,0x37,0x59,0x37 }, { 0x90,0x41,0x3e,0xf8,0xc4,0x32,0xad,0x51,0xd8,0x63,0xb3,0x8a,0xcf,0x71,0x01,0xcb,0xa1,0x27,0xfc,0x5d,0xfb,0x44,0x4e,0xe0,0x7f,0xc8,0xfa,0x2c,0x47,0x37,0x64,0x6e }, { 0xc7,0x77,0xe0,0x64,0xde,0x3b,0x80,0x1f,0x6c,0xf0,0x2e,0xeb,0xd7,0xeb,0x50,0x2c,0x7d,0xa5,0x6c,0x46,0x5e,0xba,0x1e,0x28,0x64,0x3a,0x03,0x82,0x15,0x0c,0x1f,0x18 }, { 0xc5,0x1d,0x2b,0xbf,0x2f,0xaa,0x13,0x8b,0xb5,0xd8,0xdd,0xf8,0xba,0x6c,0x7f,0xa0,0xff,0xdb,0xf9,0x60,0x4a,0x04,0x64,0x0b,0x4b,0x74,0x9c,0xc8,0x68,0xa4,0xc9,0x43 }, { 0xdf,0x13,0xb4,0x92,0x56,0xa4,0xa4,0x61,0x5f,0xc2,0xc6,0xca,0x1e,0x1d,0x29,0x9e,0xaf,0x35,0x01,0x47,0x55,0x1d,0xbd,0x8a,0x91,0x05,0xcf,0xd6,0xa4,0x33,0x53,0x1b }, { 0xd4,0x80,0xe7,0xd9,0xcc,0x83,0x6e,0x32,0xb5,0x49,0x61,0xbd,0xc7,0xcf,0xeb,0xeb,0x50,0x83,0xb9,0x8b,0x60,0x32,0xdc,0xa8,0x5f,0x9e,0x3e,0x67,0x5e,0x93,0xaf,0x7e }, { 0x5b,0xb3,0x37,0x01,0xc9,0x3b,0x12,0x65,0x35,0x7f,0x6f,0xd8,0xfe,0xb5,0x57,0x49,0x3e,0xf3,0x20,0x07,0x18,0x85,0xa9,0x58,0xfc,0x72,0x50,0xab,0x59,0x7e,0x23,0x53 }, { 0xe6,0x2b,0x86,0x67,0x77,0x6e,0x1f,0x7f,0x87,0x0a,0x6f,0x07,0x99,0xd7,0x40,0xb3,0x03,0x99,0x63,0x09,0xdb,0xcd,0xf4,0x48,0x79,0xc2,0xc6,0xbc,0xe4,0x2c,0xb0,0x0a }, { 0x1b,0x58,0x7e,0x47,0x26,0x04,0xf4,0x2d,0xcd,0x58,0x78,0x55,0xd4,0x73,0x2d,0x5c,0x3e,0x8d,0x82,0x44,0xb1,0x34,0x52,0xc2,0x28,0x90,0x47,0x5a,0x22,0x0a,0x6c,0x74 }, { 0x57,0x36,0xb5,0x3e,0xa0,0x6f,0x9e,0xe9,0x6c,0x99,0x2b,0x00,0xd5,0x41,0x25,0x26,0x85,0x6e,0xd5,0x25,0x48,0x5a,0x96,0x4f,0x8f,0xcf,0x96,0xd7,0xeb,0xcd,0x60,0x2b }, { 0xb8,0x2e,0x36,0xc6,0xa6,0xea,0xa7,0x07,0x88,0x39,0x63,0xb3,0x6d,0x75,0x0f,0xa0,0x33,0xf0,0x5f,0x77,0x14,0xe7,0x93,0x30,0x49,0xd1,0xfc,0x08,0x50,0x92,0x2a,0x4e }, { 0x8c,0x59,0x8e,0x7f,0x83,0x17,0xcd,0x20,0x36,0xd3,0x5a,0xce,0x9b,0x83,0x72,0xfe,0xcb,0xd1,0xce,0x83,0x68,0xbc,0x47,0xdb,0xbd,0x46,0xc1,0x10,0xf8,0x10,0x8d,0x1e }, { 0x23,0xb5,0xd3,0xd9,0xb9,0x84,0xab,0xd5,0x9e,0x32,0xac,0xff,0x41,0x1a,0x10,0x68,0x46,0xc0,0xce,0xd7,0xad,0x5c,0xaa,0xef,0x8b,0x07,0x6f,0x5b,0xd1,0xe9,0x3b,0x58 }, { 0x01,0x88,0xcf,0x17,0x11,0x2c,0x9b,0x3e,0x94,0x8c,0xcd,0x8c,0xeb,0xb6,0xbc,0xf2,0xf7,0x50,0xd4,0xe5,0x44,0x14,0x5d,0x01,0x73,0xc5,0x91,0x6b,0xc1,0xd6,0xc2,0x7b }, { 0xec,0x5f,0x18,0xa4,0x82,0x96,0xd5,0xad,0x20,0x27,0x98,0x65,0xa5,0x11,0x14,0xe8,0x0b,0x0c,0x76,0x29,0x80,0x76,0x61,0x70,0x05,0xa3,0x1a,0x23,0x73,0xfa,0x57,0x12 }, { 0x15,0x6f,0x13,0xfd,0xf6,0x62,0xf4,0xb7,0x21,0xc5,0x77,0xdf,0x32,0xfc,0x23,0xf4,0x71,0x62,0xa4,0x0d,0x92,0x83,0x77,0x3a,0x5b,0xae,0xeb,0x3e,0xe6,0x68,0x36,0x71 }, { 0xaa,0x95,0x4e,0x75,0x92,0x82,0x18,0xcb,0x93,0xdf,0x15,0xb3,0x74,0xc6,0xe1,0x77,0x00,0x23,0xf9,0x1b,0x61,0xaa,0x20,0x70,0xb2,0xf1,0x64,0x6f,0xf4,0x21,0x88,0x06 }, { 0x17,0x70,0xaf,0x05,0xab,0x90,0xaa,0x4c,0xae,0xe8,0x09,0xb1,0xa1,0x56,0x89,0xd5,0xe1,0x44,0x47,0x07,0x7f,0x46,0x4b,0x08,0x19,0x38,0x54,0xfc,0xe0,0x4f,0xbf,0x1d }, { 0x5b,0xa0,0x6c,0x7a,0xb0,0x75,0xc5,0x77,0xcc,0xbb,0x7a,0xdf,0x15,0x39,0xc8,0xf8,0xe4,0x30,0x07,0xcf,0xe2,0xfa,0xfc,0xd7,0x0c,0x95,0xc4,0xe2,0x56,0xd1,0xde,0x71 }, { 0x81,0x94,0x4e,0x3d,0x73,0xfb,0xac,0xcb,0x1a,0x09,0x6a,0x5d,0x21,0xb4,0xaf,0xc6,0x96,0x5e,0xfb,0x08,0x23,0x59,0xcc,0xf9,0x31,0x1e,0x26,0x90,0x08,0xe5,0x1b,0x4b }, { 0x1a,0x13,0xed,0xa9,0xbe,0x1d,0xb8,0x1f,0x1f,0xcf,0xc2,0xa0,0x36,0xac,0x44,0xb2,0xdf,0x1d,0xba,0xc7,0x5d,0x23,0x4e,0x94,0xd8,0xcf,0x23,0x9c,0x7f,0x27,0x8d,0x4c }, { 0x62,0xe3,0x37,0x29,0xf4,0x75,0xf9,0xe6,0xf6,0x5a,0x99,0x1c,0x81,0xfe,0x0c,0x10,0x07,0xe8,0xf3,0x12,0x34,0x86,0x12,0xdb,0x6c,0x39,0x03,0xf2,0xcd,0xec,0x4a,0x17 }, { 0x4d,0x08,0x8d,0x47,0x12,0x09,0xb7,0xf9,0x66,0x5a,0x3c,0xfd,0xd9,0xa3,0x02,0x25,0x46,0x3f,0xbd,0x6a,0x8d,0x2f,0x9c,0x18,0xa2,0x4e,0x91,0x98,0x20,0xd2,0x61,0x58 }, { 0x43,0x15,0xdb,0x9b,0x50,0x4e,0x32,0xbf,0xd6,0x8f,0xc1,0xe4,0x20,0x85,0x7f,0x13,0xd1,0xb4,0xa0,0x77,0xc5,0xb4,0xd6,0x49,0x6c,0x23,0x65,0x0c,0x30,0x83,0x37,0x30 }, { 0xce,0xd4,0x5b,0xe3,0xa7,0xc1,0xfd,0x12,0xfa,0x61,0x0c,0x19,0x4e,0x2c,0xf1,0x78,0xb9,0x1d,0x02,0x1b,0xd4,0xdf,0xc4,0x6e,0xbd,0xc8,0x01,0xa2,0xda,0x43,0x36,0x11 }, { 0x07,0x58,0x6e,0xa8,0x51,0x6e,0xd9,0xb8,0x38,0x51,0x8f,0x17,0x55,0xcd,0x89,0xe9,0x2b,0xd3,0x4d,0x36,0xeb,0xd5,0xf5,0xa3,0x98,0x36,0x89,0xd5,0x18,0x13,0x14,0x0a }, { 0xb0,0xce,0x16,0x3e,0xd1,0x0d,0x92,0x7a,0x9b,0xb5,0x05,0x20,0x35,0x93,0x7d,0xd8,0x4e,0x9f,0x26,0xf9,0x96,0xfc,0x5d,0xfa,0xfb,0x22,0x31,0xad,0x89,0x28,0x7c,0x64 }, { 0x7f,0x4e,0x70,0xd0,0xd7,0x40,0xfe,0xd8,0xa0,0x85,0x23,0xe2,0xca,0x10,0xd7,0xaf,0x63,0x33,0x43,0x28,0x84,0x9c,0xed,0x90,0x6d,0xd7,0xcf,0x69,0x37,0x01,0xfc,0x07 }, { 0xde,0x54,0x6e,0x24,0x94,0x63,0x67,0xf1,0xaf,0x45,0xf0,0xc0,0xe4,0xc4,0x12,0x3c,0x16,0xbf,0x01,0x7e,0xaf,0x24,0x0a,0xf1,0x2e,0xd0,0x37,0xe0,0x08,0xdd,0x9c,0x69 }, { 0x5c,0xc9,0x43,0xc9,0x87,0x5d,0x0c,0x26,0xd8,0x4a,0xfb,0x56,0x07,0xb5,0x3a,0x2c,0x2b,0xa3,0xa5,0xb6,0xce,0xe0,0x8d,0xbb,0x2d,0x0a,0xb3,0x8c,0x29,0x35,0xdb,0x00 }, { 0x27,0x47,0x25,0x12,0xec,0xd0,0xe0,0x9f,0x38,0xf5,0xd5,0xa0,0xc5,0x19,0x45,0xdd,0x88,0x5d,0x1c,0xca,0x76,0x19,0xbc,0xc0,0xbe,0x8c,0xfd,0x54,0x8d,0xa5,0xf4,0x12 }, { 0x2f,0xa5,0x00,0x85,0xcd,0xb6,0x87,0x84,0x47,0xe3,0x91,0xfb,0x7e,0x2f,0xfa,0x26,0x7a,0x3d,0x47,0xe5,0x2b,0xb2,0x6b,0xf4,0x11,0x31,0x5f,0x82,0x22,0x16,0xf5,0x21 }, { 0x67,0xfd,0x1b,0x2b,0x8b,0x38,0x69,0x8c,0xcf,0x9a,0x2c,0x1f,0x66,0x09,0x9d,0x08,0xf3,0x1e,0x21,0x91,0x2d,0xce,0xd7,0x00,0x44,0x6a,0x9b,0xc0,0x8d,0xc4,0x16,0x13 }, { 0x44,0xc8,0xab,0x78,0x55,0x7c,0x51,0xe7,0x27,0x47,0x8f,0xd9,0x7b,0xdc,0x3e,0x54,0xbc,0x9a,0xb7,0x01,0x4e,0xd9,0x23,0x62,0xab,0x0c,0x5f,0x7c,0x1a,0xad,0xf2,0x3a }, { 0xbd,0xa4,0x04,0x6e,0x0d,0xfc,0x75,0x51,0xe0,0x3c,0x61,0x9e,0x1e,0x65,0x87,0x6b,0x73,0x1c,0xbe,0xc1,0xf2,0x8b,0x5d,0xa6,0x50,0x1a,0x30,0x55,0xd9,0x47,0x96,0x55 }, { 0x41,0xa1,0x84,0x4a,0xcc,0x12,0x9c,0x44,0x7d,0xd3,0x4e,0x2e,0x9b,0x7a,0xfe,0x5a,0x2f,0xd2,0x37,0xca,0xa8,0xb7,0x4f,0x8d,0xd2,0x2b,0xa5,0x19,0x51,0xa8,0xc4,0x4c }, { 0xd4,0xa5,0x30,0x9d,0x76,0xcd,0x35,0x3a,0x56,0xde,0xae,0xdd,0xba,0xe2,0x8c,0xb1,0x08,0x84,0x6a,0x19,0xc4,0x8e,0x52,0x26,0x77,0x22,0x7e,0x35,0x97,0x43,0x0c,0x39 }, { 0x0a,0x22,0x22,0x2c,0xfa,0xcd,0x82,0x65,0xae,0xac,0x1b,0x21,0x1b,0x78,0xb6,0xa0,0xe1,0x5e,0xa5,0x2b,0x95,0xe7,0xe7,0xb9,0x27,0x87,0xa8,0x27,0x20,0x5c,0x1d,0x30 }, { 0x74,0xf4,0x16,0x86,0x45,0xed,0xc8,0xf2,0x2a,0x7e,0x88,0x72,0x0c,0xe6,0x6e,0x21,0x04,0x62,0x20,0x2d,0xdf,0xae,0x5e,0x7c,0xc0,0xc1,0x0b,0xa0,0x73,0xe2,0xad,0x45 }, { 0xbc,0x71,0x1f,0x5a,0xfe,0x50,0x4b,0xbe,0x65,0xa7,0xcd,0x0f,0x03,0x0a,0x12,0xf5,0x08,0x72,0xd0,0xd5,0xb2,0x80,0x62,0x89,0x86,0x17,0xcc,0xbf,0x66,0xeb,0xfc,0x01 }, { 0x6b,0x4a,0x14,0x57,0xfa,0xbb,0x8c,0x29,0x59,0x48,0x55,0x02,0x86,0x72,0x46,0x90,0xce,0x7c,0x2b,0x79,0x0e,0xca,0x71,0xee,0x01,0x7e,0xf6,0x11,0x68,0x8e,0x1a,0x4e }, { 0xf4,0xe8,0x6e,0x99,0x20,0x3c,0xa9,0xa8,0x19,0xfb,0x27,0x45,0x52,0x8c,0x55,0x99,0xa5,0x7b,0xb4,0xf5,0x9c,0x48,0x29,0x19,0x92,0x08,0xed,0x9a,0x77,0x08,0x25,0x64 }, { 0xd5,0xc4,0xd2,0x24,0x3e,0x76,0x5d,0x04,0x76,0x66,0x6c,0xa4,0x2d,0x0b,0xac,0x9a,0x84,0xaa,0xc2,0x15,0xb1,0x00,0xbe,0xe2,0xfd,0x96,0x4e,0x15,0x30,0xda,0x61,0x4d }, { 0xc4,0xcf,0xab,0xfc,0x19,0x83,0x2f,0xd1,0x87,0x0e,0x35,0xb3,0x16,0x2a,0x2b,0x8e,0x65,0xa0,0x42,0x3b,0xb1,0x4c,0x1c,0x03,0xbf,0xeb,0xea,0x01,0x1a,0xe4,0x7d,0x09 }, { 0x56,0x46,0xfc,0x99,0x69,0xbd,0x53,0xe1,0x57,0xe7,0x8d,0x5a,0x05,0x1a,0x95,0xfb,0x3a,0x0e,0xd2,0x12,0x9b,0x9c,0x1d,0x58,0x4b,0x12,0xee,0x74,0xc0,0xab,0x8f,0x1e }, { 0x58,0x1f,0x41,0xe1,0x16,0xde,0x0f,0xe8,0x5f,0x9f,0x39,0x69,0x05,0x46,0xbf,0x6d,0xea,0x88,0xc5,0xf3,0xb4,0x39,0x55,0x60,0x79,0x03,0xf8,0xa1,0xf7,0x7d,0x05,0x03 }, { 0xa4,0xc4,0x06,0x76,0x51,0xa4,0xd7,0x90,0x5e,0x14,0xbf,0x61,0x74,0x84,0x97,0x3c,0xf6,0x0a,0xae,0x67,0x65,0xa6,0xe5,0x28,0x3a,0x1e,0x50,0xb0,0x6d,0x38,0x9a,0x14 }, { 0x43,0xf8,0x26,0xb5,0x25,0xe5,0x99,0x6a,0x84,0xa0,0xa5,0x1c,0x8f,0xd8,0xcb,0xce,0x8b,0xb3,0x91,0xe5,0x11,0x38,0x43,0x3a,0xe5,0x38,0x09,0x10,0xee,0xc0,0x4b,0x4a }, { 0x11,0x1d,0xa8,0xc0,0x08,0x07,0xe0,0x42,0xff,0xb4,0x88,0x97,0xb3,0xeb,0x1e,0x25,0x7c,0xe9,0xa1,0x00,0x5b,0x6e,0x9e,0x07,0xf7,0xfa,0x59,0xe7,0x5b,0x68,0xc3,0x5a }, { 0x6a,0xd8,0x55,0x3b,0x8c,0x90,0x56,0x6d,0xdd,0x90,0x42,0xff,0x84,0x55,0x3d,0xa4,0x9f,0xb2,0x56,0x53,0x2b,0x52,0x20,0x7b,0x9d,0xfa,0x4a,0xb8,0x35,0x35,0xd6,0x3b }, { 0x09,0xe8,0x7f,0x29,0xf5,0xa7,0xed,0x7e,0x23,0x42,0x44,0xf4,0x78,0x01,0x71,0x36,0xdd,0xed,0xf5,0x58,0x4d,0x69,0x33,0x19,0x8f,0x3f,0x63,0xd2,0x87,0x97,0x82,0x59 }, { 0x1c,0x0b,0x70,0xce,0xc0,0xbb,0xd0,0x96,0x36,0xc5,0x49,0xd6,0xa8,0x28,0x8b,0x66,0x4b,0x8c,0x31,0x59,0x31,0x3f,0x27,0x91,0xa0,0x52,0x71,0x3d,0x8e,0x95,0x2d,0x18 }, { 0xf1,0x97,0xc8,0xd8,0x37,0x9e,0xcb,0xbd,0xe1,0xd0,0x39,0x92,0x55,0xe6,0x10,0x8a,0x62,0x4a,0x17,0x4b,0x81,0x16,0x11,0xe9,0x01,0x50,0x66,0x49,0xa3,0xc2,0xdf,0x0a }, { 0xde,0x0b,0xb8,0xe1,0x12,0x1c,0xe1,0x76,0xdf,0x5c,0xdb,0xd2,0x6f,0x7a,0xc5,0x75,0x10,0x17,0x71,0x3a,0x19,0xf4,0x5e,0xa8,0x34,0x4f,0xb2,0xae,0xb6,0xec,0x0c,0x23 }, { 0x7f,0xe4,0xe7,0x36,0x51,0xa8,0x17,0xcb,0x02,0xe2,0xea,0x99,0x7d,0x2c,0xc6,0xfe,0x6a,0xed,0x8e,0x4a,0xbc,0x4a,0xb8,0x66,0xe5,0x2c,0xed,0xea,0x04,0xd0,0x8d,0x14 }, { 0xeb,0x2a,0x73,0x9d,0x41,0x78,0xd7,0x07,0xc3,0x58,0xd1,0x99,0xf5,0xf9,0xa8,0x3b,0xd8,0xfd,0xf5,0xc5,0x4d,0xe3,0xb1,0x6d,0xda,0x2d,0x41,0xb2,0xf8,0xe5,0x3d,0x14 }, { 0x46,0x64,0x7a,0x0d,0x2d,0x13,0xb4,0x16,0xcc,0x95,0x3e,0xbd,0x89,0xb7,0x5a,0xec,0x0c,0xe5,0x74,0x35,0xba,0x88,0x4e,0xfd,0x3c,0x7d,0xcf,0x4e,0x6a,0x42,0x35,0x21 }, { 0xba,0xcf,0xff,0x26,0x47,0x2d,0x4a,0xc7,0x72,0x76,0xda,0x30,0x7c,0xf8,0xfb,0x67,0x55,0xbb,0x74,0xc1,0x92,0x0a,0xfb,0xd0,0x9f,0xfa,0x2b,0xe1,0xfc,0xe2,0x81,0x2a }, { 0xc2,0x1d,0x44,0x8c,0x49,0x1b,0x62,0x15,0x69,0xff,0x3b,0xdb,0xfe,0x36,0x75,0x64,0xfd,0x75,0xcd,0x8f,0xe9,0xbf,0xe0,0x48,0x3d,0xdd,0x52,0xb4,0x0e,0x70,0xb0,0x1d }, { 0x8d,0xad,0xb3,0xad,0x10,0xcf,0xd7,0x76,0x10,0x3c,0xed,0xaa,0x1b,0x31,0x39,0x0b,0x8d,0x8d,0x58,0xab,0xe1,0x38,0xb6,0x3c,0x87,0xae,0x27,0x58,0xa1,0x17,0x64,0x76 }, { 0x67,0xf5,0xa6,0x41,0x7c,0x44,0xac,0xe9,0x58,0xbe,0x1f,0x1f,0x80,0x8d,0xc5,0x8b,0xbc,0x02,0x28,0x35,0xd1,0x1a,0xe6,0x9b,0x40,0x6a,0xed,0x96,0x85,0xaa,0xd9,0x28 }, { 0x83,0x24,0x5c,0x8f,0xb1,0x70,0x05,0x99,0x83,0x32,0x8f,0x61,0x8b,0x6e,0x1d,0xf4,0x30,0xf7,0x53,0x16,0xf7,0xcb,0x3e,0x0c,0x20,0xcd,0x82,0xa9,0x03,0xf2,0x27,0x29 }, { 0xa4,0x9a,0xf0,0xd3,0xf1,0xb0,0x5c,0x6e,0xd1,0x31,0x66,0x0c,0xcf,0xd1,0x1c,0x71,0x53,0x02,0x9c,0xa6,0xa7,0x92,0x1e,0x73,0xb4,0x13,0x38,0xfd,0xc9,0xf2,0x63,0x3b }, { 0x6b,0x5f,0xff,0x46,0xbd,0x5c,0x7c,0x9a,0x58,0xdd,0xd3,0xf5,0xbb,0x77,0x9c,0x47,0xad,0x00,0xf7,0x58,0xc5,0x92,0x00,0xb7,0x3b,0x17,0x86,0xa9,0xae,0x84,0x6c,0x01 }, { 0xab,0x41,0xcc,0xcd,0x3b,0x5d,0x57,0x77,0x40,0x35,0x83,0x79,0x5f,0x71,0x2a,0xf0,0x88,0x93,0xec,0xb1,0xa7,0x1c,0x4e,0x47,0x17,0x63,0x6f,0x26,0x14,0x04,0x45,0x70 }, { 0xa4,0x5c,0xc2,0x5a,0xe0,0x44,0xb8,0xad,0x9f,0x0b,0x67,0x32,0xa7,0x33,0x01,0x13,0x92,0x85,0x1d,0x3b,0x5f,0xb8,0x4f,0x0b,0xd9,0x8a,0x5f,0xa7,0xc2,0x00,0x13,0x6e }, { 0xf9,0x29,0xf6,0x70,0xfd,0x8c,0x0e,0x71,0xe3,0x2b,0x00,0xab,0xd2,0xed,0x83,0x5f,0xc9,0x0d,0x26,0x5d,0x25,0x68,0xf5,0x6d,0x79,0xf7,0x8c,0xb5,0x79,0x6a,0x71,0x74 }, { 0x45,0x74,0x8f,0x88,0x67,0x27,0x8f,0x64,0x06,0x22,0xf4,0x66,0x48,0xbf,0x1a,0x38,0x5a,0x82,0x03,0x5b,0xde,0x65,0x5b,0x03,0xcb,0x3e,0x11,0xd7,0xde,0xb2,0x33,0x5d }, { 0xf4,0x4c,0xb6,0x3f,0x71,0x62,0xfb,0x39,0xdd,0x2b,0x91,0xed,0x9b,0x95,0x27,0x72,0xb8,0x30,0x7a,0xdf,0x99,0x09,0xba,0x11,0x4e,0xa9,0x4d,0x3b,0x41,0x0f,0xf9,0x63 }, { 0x02,0x65,0x18,0x81,0x56,0x16,0xd4,0x0d,0x5b,0x4e,0xff,0xd1,0x3e,0xa3,0x87,0x5c,0xc1,0x9d,0x3c,0x64,0x8e,0xfb,0x6e,0x42,0x09,0x1d,0x4c,0xdf,0xf3,0x67,0xb3,0x75 }, { 0xea,0xa0,0x44,0xeb,0x2d,0xae,0x96,0x12,0xd8,0x4f,0x8b,0x49,0x57,0xf2,0xfd,0xa6,0x43,0x67,0xeb,0x15,0xc9,0x27,0xb5,0x4f,0xca,0xcd,0x14,0xc8,0xc3,0x60,0xf8,0x56 }, { 0x9c,0x91,0x03,0xd2,0xa8,0x3f,0x76,0xc7,0x76,0x0e,0x81,0x6e,0xaf,0xeb,0xa0,0xc9,0xbc,0x15,0xf7,0xdc,0x25,0x1d,0xf0,0x8c,0xa5,0x76,0xcb,0xa8,0x85,0xbd,0x50,0x43 }, { 0x65,0x97,0xe3,0x4d,0x6b,0x84,0x20,0x34,0xc6,0x6f,0x78,0x5e,0x28,0x47,0xd2,0x7a,0xa2,0x96,0x2a,0x83,0xa0,0x94,0x92,0xcc,0x32,0x35,0x13,0xa8,0xe7,0xec,0xce,0x60 }, { 0x8b,0x02,0x18,0x93,0x66,0x58,0x11,0x59,0xd7,0xf0,0x95,0x72,0x4e,0x37,0x49,0xe4,0x07,0xbd,0x34,0xb5,0x6c,0xc2,0x3e,0x73,0x19,0x01,0x2d,0x3f,0x68,0x17,0x87,0x21 }, { 0xc4,0x57,0xb6,0x1d,0x13,0x42,0x2e,0xb0,0xbc,0xb6,0x2a,0x9d,0x77,0x07,0x82,0x68,0xfc,0x79,0xd6,0xa1,0x53,0xd0,0x53,0x76,0x5d,0x3b,0xa1,0xe1,0x22,0x12,0x63,0x00 }, { 0x9f,0x82,0x83,0x78,0x3f,0x11,0x0b,0x65,0x27,0x30,0x3f,0x85,0xb3,0x71,0x61,0xd4,0x69,0x7c,0xbd,0xb0,0xbf,0xf0,0x1a,0xa1,0x3d,0xab,0xc6,0xec,0x87,0xd2,0x07,0x4f }, { 0x67,0x1a,0xfb,0xe9,0x9e,0xb1,0xe2,0x3b,0xf4,0x35,0x2e,0xc8,0xed,0xe5,0xa8,0x5d,0xa4,0xa5,0x57,0x60,0xc7,0xaa,0x02,0xeb,0xdd,0x3f,0xba,0xd6,0x90,0xc5,0xae,0x30 }, { 0x72,0x35,0x3f,0x3d,0xe7,0x6e,0xdb,0x23,0x59,0xfe,0x48,0x08,0x31,0xdf,0xbb,0xe9,0xca,0x5a,0xf3,0xa3,0x7a,0x9c,0x2d,0x47,0x5b,0x04,0x96,0xd4,0x18,0x6b,0x55,0x12 }, { 0x26,0x30,0x8c,0x96,0x90,0x24,0x6d,0x0f,0x87,0x37,0xb1,0x63,0x46,0x46,0x93,0x62,0x7f,0x68,0x80,0x23,0x07,0x21,0x89,0xdf,0x7a,0x5f,0x01,0x37,0x91,0x35,0x03,0x7c }, { 0x7b,0xaa,0xc0,0xfd,0x67,0x4e,0xec,0xe1,0x66,0x06,0xdc,0x93,0xe4,0xf9,0x4f,0xc1,0xbb,0xae,0xdf,0x77,0xe5,0x47,0xa5,0x6c,0x02,0x58,0xdc,0x95,0x5c,0xde,0x62,0x17 }, { 0xb9,0x0f,0x84,0xdd,0xfd,0xdd,0xb2,0x97,0x38,0x7f,0xda,0x37,0x84,0x87,0x26,0xfe,0xf6,0x95,0x56,0xdf,0x7a,0x75,0x46,0x68,0xb8,0x69,0x24,0xac,0x03,0x41,0x76,0x58 }, { 0xd7,0xe5,0xa5,0xca,0x28,0x94,0x61,0xcd,0x2f,0xe2,0xbc,0x47,0xd6,0x1d,0xee,0x70,0xb5,0x48,0x34,0x95,0x41,0xb6,0x7a,0x54,0xd4,0x30,0xff,0x0c,0xbc,0xe3,0xd6,0x5d }, { 0x05,0x31,0xf7,0x7b,0x60,0xe6,0xbb,0x28,0xfc,0xf4,0x34,0x28,0x13,0x38,0x93,0xd4,0x95,0x87,0x3e,0xd2,0x4a,0xb9,0xc2,0xa5,0x03,0x22,0xa4,0xd0,0x99,0x79,0xd2,0x49 }, { 0x13,0xe2,0x91,0x56,0x2c,0x1f,0x0c,0xc8,0xab,0xed,0x40,0x43,0x82,0x8c,0xa1,0x5a,0x78,0xa3,0x1f,0x33,0x8d,0xd1,0x9c,0xc0,0x99,0x0c,0x7b,0xfe,0xbf,0x99,0x64,0x56 }, { 0x30,0x42,0x0a,0x74,0x98,0x22,0x3a,0x4e,0xfc,0x4e,0xcd,0xd6,0x7d,0xdc,0xca,0xed,0x9c,0x0a,0x38,0xc3,0x1f,0x59,0xd7,0xc4,0xa7,0xae,0x65,0xe6,0x6f,0x1f,0x75,0x66 }, { 0xb6,0xda,0xdf,0xd9,0xc2,0xbb,0x56,0x48,0xaf,0xeb,0x2c,0x7a,0x06,0x2f,0x02,0x99,0x77,0xac,0x38,0x09,0xc5,0xd8,0x76,0x5d,0xeb,0xfb,0x30,0x24,0x25,0xc9,0x93,0x4d }, { 0xfe,0x85,0x3a,0x6c,0xaf,0x57,0x19,0xeb,0xfb,0x88,0x70,0x0a,0xe5,0x18,0x13,0x71,0xb1,0x7b,0x45,0x17,0x57,0x4b,0x6f,0xad,0x88,0x8b,0x71,0x94,0xa8,0x0d,0x91,0x2c }, { 0x82,0x5a,0xaf,0xf3,0x00,0x87,0x75,0x23,0x0b,0x80,0x35,0x5c,0x72,0x46,0xb0,0x97,0xa7,0x28,0xea,0xde,0x0a,0x6f,0x1f,0x50,0xd8,0x18,0x1d,0xa1,0xf4,0x52,0x2c,0x69 }, { 0x16,0x86,0xd7,0x6c,0xe5,0x91,0xa7,0x65,0x1e,0x28,0x91,0xb9,0x7e,0x4c,0x86,0x2a,0x0d,0xc4,0xaa,0xb3,0xd4,0x63,0x60,0x61,0x1f,0xc6,0x98,0x70,0x09,0x52,0x4f,0x63 }, { 0x53,0xbd,0x97,0x70,0x29,0xa8,0xf6,0xd4,0xfa,0x38,0x7d,0xf8,0x17,0xd2,0x52,0x79,0x50,0x1a,0x75,0x9a,0x24,0xe2,0x3c,0xef,0x79,0x98,0x0e,0x28,0x99,0xf0,0x10,0x79 }, { 0xd1,0x03,0x27,0x04,0xf2,0xae,0x23,0x80,0x76,0x2e,0xee,0x06,0x00,0x16,0x5d,0xc8,0x26,0x95,0x41,0x98,0xe6,0xc0,0xe7,0x92,0xc4,0x8a,0x52,0x14,0xe1,0x80,0x73,0x5d }, { 0xdb,0xa7,0xd5,0x4c,0xcc,0x10,0xd1,0x3e,0xf5,0xaa,0xb3,0x0c,0xc5,0xd1,0x7c,0xa4,0xc4,0x5e,0x6b,0x8e,0x3d,0xec,0x3a,0x31,0x0f,0xda,0x9d,0x47,0x07,0x9d,0x17,0x01 }, { 0x36,0x06,0xe2,0xd3,0x45,0x9f,0xb0,0xeb,0x81,0x18,0x6a,0x79,0xf3,0xc7,0x69,0x97,0x12,0x53,0x73,0x43,0x39,0x76,0xe2,0xa0,0xb4,0x92,0xd2,0xa6,0x64,0x06,0x32,0x2d }, { 0xb3,0x54,0x22,0xd8,0xd6,0x79,0xc6,0xc9,0xff,0x24,0xdd,0xfc,0xb2,0x27,0x3c,0x3e,0xb9,0x3f,0x86,0xfc,0xf9,0xe5,0xb1,0x07,0x0a,0xea,0xa3,0x44,0xbd,0x89,0xe9,0x21 }, { 0x01,0x41,0x19,0xb4,0x1a,0x0f,0xb3,0x21,0xcd,0x15,0x8c,0xfa,0x51,0xf8,0x6b,0x82,0x96,0xbd,0xce,0x06,0x5e,0x5d,0xc4,0x50,0xff,0x17,0x9c,0x16,0x7e,0xbd,0x8b,0x0a }, { 0x26,0xad,0x5e,0x96,0xa3,0x36,0x4d,0x1d,0x1e,0xbb,0xd6,0xbb,0x94,0x23,0x30,0x26,0x91,0x99,0x72,0xa0,0xdf,0xeb,0xe6,0xef,0x21,0xf5,0x33,0x8b,0xf2,0xda,0xca,0x30 }, { 0x24,0x17,0x02,0x35,0xd3,0xfc,0x81,0x27,0x28,0x6b,0x68,0x91,0x29,0xde,0xb1,0x0b,0xe0,0x8e,0x5a,0x2c,0x7f,0x96,0x37,0x61,0x28,0x29,0x39,0x39,0x22,0x81,0xb2,0x14 }, { 0x35,0xe2,0x51,0x4c,0x94,0xb9,0x30,0x30,0x87,0xb6,0xd2,0xe3,0xfe,0x83,0xd0,0x56,0xdc,0xc0,0xd2,0x6f,0x44,0x54,0xca,0x1a,0x2c,0xe1,0x6c,0xf8,0x78,0x1b,0x4e,0x6e }, { 0x04,0x9c,0xed,0x05,0x96,0x92,0x68,0x9b,0x56,0x6f,0x63,0x34,0xf4,0x31,0x47,0x7e,0x28,0xc6,0xf6,0xdb,0x52,0xcf,0x86,0x69,0x98,0x39,0x12,0x55,0x68,0x89,0x01,0x4d }, { 0xdd,0x26,0x39,0x4f,0xab,0xc7,0xdd,0x3d,0x40,0xe9,0xf5,0x82,0x00,0xdc,0x79,0xd7,0x05,0xfc,0x7c,0x61,0x5b,0x6a,0x9a,0x7f,0x64,0x73,0xfa,0xfe,0xac,0x5a,0xf3,0x37 }, { 0xae,0xf9,0x1e,0xac,0xff,0x83,0xd5,0x0f,0xc3,0x5c,0x5c,0x5c,0x3b,0xe7,0x1d,0x84,0x54,0x6d,0xaf,0xc2,0x4d,0xd0,0x15,0x2c,0xc0,0xbc,0xc8,0xb4,0x3a,0xa4,0x99,0x79 }, { 0x58,0xbb,0xb0,0x19,0xf3,0x41,0x77,0x58,0x04,0x74,0xdf,0xcd,0x31,0x39,0x00,0x08,0x1e,0x24,0xe6,0xed,0x30,0x4a,0x08,0x04,0x3f,0x0b,0x6a,0x9e,0xe1,0xf5,0x9f,0x5d }, { 0x2d,0xe1,0x43,0x4f,0xef,0xb9,0x44,0x27,0x5b,0x87,0xd7,0x8a,0xf3,0xb4,0x7f,0x0f,0xd2,0x73,0xc1,0xdf,0x6e,0x91,0x5e,0xc3,0xb5,0x7b,0xd7,0x5f,0xeb,0xd5,0x05,0x13 }, { 0xea,0x6b,0x13,0x6b,0xd9,0x6f,0xc1,0xcb,0x91,0x90,0xf8,0x9d,0xb9,0xe7,0xfe,0x18,0xd8,0x03,0xb2,0xcf,0x06,0xed,0x89,0x0b,0xf0,0x6d,0x91,0xeb,0x3b,0xa2,0xd5,0x17 }, { 0x45,0x32,0x1d,0xe5,0x5f,0x05,0xe0,0xe8,0xbb,0x62,0xc9,0x8d,0xc3,0x07,0xb4,0x24,0x02,0x0b,0x08,0x2b,0x5b,0xff,0x9a,0x3b,0x98,0xa1,0xf0,0xf8,0x45,0x55,0xdf,0x4a }, { 0xc9,0x20,0xbf,0x9a,0x5d,0x70,0x47,0x5d,0xac,0x11,0x53,0xa7,0xcb,0x0c,0x01,0x45,0x12,0x5c,0xc1,0xff,0x81,0xf4,0xb9,0x31,0x5b,0xfd,0x9b,0x0a,0x7a,0x5f,0x07,0x20 }, { 0x99,0x3f,0xb2,0xf0,0xa8,0xb6,0x3b,0xb8,0xe8,0x45,0x13,0xce,0x7b,0xc8,0x2e,0x86,0x2f,0x43,0xba,0x3e,0xb0,0x53,0xf4,0x86,0xc2,0x5e,0xae,0xe2,0x6c,0x58,0x13,0x3d }, { 0x79,0x86,0xe9,0xd8,0xc5,0x5e,0x4e,0x46,0xf7,0x2e,0x6d,0xb4,0x1c,0x1d,0xbf,0x4c,0xe4,0xc6,0xb9,0x23,0xfd,0xb4,0x50,0x65,0x0a,0xf6,0xa4,0xe4,0x91,0xa9,0x33,0x4a }, { 0xc6,0xff,0xb8,0x3e,0xbc,0x90,0xdb,0xf5,0xa8,0x60,0xa2,0x52,0x65,0xa6,0xa8,0x4d,0x88,0x0c,0x91,0xe9,0xa5,0x75,0x03,0xbb,0x26,0x25,0x95,0xa3,0x1f,0x0f,0x14,0x58 }, { 0x5c,0x1d,0x46,0x11,0x44,0xfc,0x18,0xd9,0x87,0xa7,0x4d,0x85,0x5f,0xba,0xe5,0xa2,0x47,0x46,0xd1,0x2d,0xac,0x89,0x00,0xe6,0xa9,0x19,0x08,0x24,0xc8,0xe5,0x4a,0x4e }, { 0xd6,0x7e,0x83,0x7f,0x60,0xcb,0x6e,0xfe,0xd7,0x00,0x80,0x29,0xdd,0x4e,0x51,0x93,0xc1,0x01,0xb9,0x52,0x98,0x3c,0x31,0x2c,0xd3,0xec,0x5a,0xf7,0x0d,0xca,0x28,0x12 }, { 0x7c,0x29,0x7f,0x07,0xc2,0x59,0x6d,0x43,0xae,0x97,0x1e,0x2e,0x54,0x0d,0x3b,0xdb,0x2f,0x98,0xa5,0x85,0xc1,0x89,0x31,0x44,0xa0,0x9e,0x79,0xe2,0x42,0xfe,0xad,0x7c }, { 0xae,0x09,0x91,0x25,0x29,0x83,0xbc,0x08,0xaf,0x26,0xd1,0xec,0xd6,0x9c,0x1a,0xf0,0x9f,0xcf,0xad,0xf8,0x85,0xdf,0x4e,0xca,0xb5,0xb1,0xd3,0x70,0x8e,0x17,0x51,0x6b }, { 0x30,0x90,0xdd,0x7e,0x64,0x77,0xe6,0x6d,0x0a,0xb0,0x79,0x2b,0x49,0xe9,0xbb,0xc9,0x44,0xa2,0x99,0x4b,0x78,0x2f,0x9e,0xbc,0x06,0x89,0x32,0xf3,0x66,0x11,0xb6,0x5f }, { 0x33,0xa5,0x0f,0x46,0x5f,0x73,0xef,0x0b,0xb1,0xf6,0x56,0x76,0x6a,0x17,0xd7,0xeb,0xbd,0x71,0x45,0x74,0x80,0x08,0xa2,0xd1,0xf9,0xdb,0xfb,0x57,0x8d,0x55,0x95,0x0b }, { 0xa3,0xad,0xbc,0x21,0x57,0x21,0x70,0xaa,0x1f,0xb0,0x14,0x91,0xb7,0xdc,0xa8,0x1a,0x9a,0x55,0x4c,0xc1,0x7c,0xe2,0x3c,0x6e,0x83,0x06,0xb5,0xb3,0x24,0xb1,0x4b,0x30 }, { 0x09,0x56,0x41,0x4e,0x3d,0x91,0x0b,0x4e,0x62,0xb9,0x40,0x17,0xa9,0xd3,0x1f,0x67,0x6e,0xf2,0x35,0x59,0xc2,0xfe,0x69,0x1f,0x79,0xe7,0x81,0x3a,0x93,0x11,0x0e,0x41 }, { 0x16,0x78,0xb5,0xa4,0xaf,0x75,0x55,0xa6,0x84,0xcb,0x33,0x3c,0x72,0x35,0x83,0x96,0x81,0x08,0x86,0x53,0x3f,0x43,0x70,0xac,0x68,0x6e,0xe2,0x10,0xdc,0x2c,0x07,0x58 }, { 0x44,0xa7,0x85,0x3e,0x98,0x11,0x16,0xc8,0xd2,0x11,0xde,0x58,0x49,0x44,0xf5,0x76,0x3d,0x8e,0xb3,0x28,0x9e,0x2b,0xa7,0x8e,0x7b,0xfe,0x79,0x51,0x27,0x7b,0xe1,0x33 }, { 0x55,0xf9,0x8b,0x57,0xcf,0xe6,0xb2,0xbb,0xa8,0x69,0xb8,0x70,0x87,0xcd,0xa7,0xa5,0xb9,0x06,0x23,0x9f,0x98,0x41,0x81,0x90,0x44,0x2c,0xe6,0x7f,0x72,0x83,0xd5,0x03 }, { 0xcf,0x15,0xef,0x36,0x68,0x64,0xee,0xd7,0x42,0x60,0x3f,0xc2,0x7e,0xd1,0x72,0xac,0x5b,0xb2,0x9f,0xe0,0x7b,0xe2,0x1e,0x6c,0xe7,0x52,0xc6,0xf4,0x30,0xa5,0xe1,0x26 }, { 0x06,0x11,0xb9,0x3f,0x63,0x0a,0xa8,0x17,0x2d,0xc8,0x28,0x09,0xd5,0x7a,0x0f,0x9c,0x53,0x5d,0xe7,0xdc,0x25,0xb7,0x97,0xf8,0x98,0x8b,0xbe,0x4f,0x2d,0xb1,0x47,0x3e }, { 0xfe,0xba,0x96,0xda,0x07,0x00,0x35,0xe6,0x3c,0xcb,0x52,0x09,0xb6,0xc2,0x0a,0x8f,0x8d,0xa1,0xe1,0x56,0xa2,0x37,0x4a,0x6a,0x7b,0x2a,0x5f,0x39,0xeb,0x90,0x0b,0x36 }, { 0xd6,0x5a,0xf8,0x09,0x56,0xe7,0x52,0xcc,0xf1,0x62,0xf2,0x02,0x53,0x5e,0x8e,0x6e,0x6f,0x74,0x85,0xf9,0x74,0x79,0xaa,0x6c,0x9b,0x3b,0xe8,0x8d,0x00,0xe9,0x28,0x76 }, { 0x09,0xfe,0x86,0xc0,0x14,0x74,0x1c,0x63,0x30,0x2b,0x8d,0xc5,0x2b,0x58,0x62,0x8c,0x7c,0x49,0x22,0x27,0xa2,0x82,0x21,0x7d,0x26,0x79,0x34,0xba,0xf4,0xda,0x38,0x6b }, { 0xe0,0x19,0x55,0x3a,0xe2,0x26,0x7b,0x6b,0x3a,0xde,0x66,0x44,0xce,0x94,0x15,0xa7,0x3e,0xdb,0x75,0x1f,0xde,0x1e,0xb5,0xd5,0x22,0xfa,0xf8,0xff,0x32,0x67,0x99,0x11 }, { 0x2a,0x40,0x9d,0xdc,0xd9,0x81,0x45,0x93,0x01,0x93,0x61,0xee,0x3d,0xc1,0x59,0x32,0xcf,0xcb,0x4f,0xf7,0x88,0x6d,0x43,0x81,0x49,0xae,0x9f,0xff,0x9d,0x17,0x2e,0x64 }, { 0xfa,0x57,0x3a,0xfa,0x86,0xec,0x1e,0x23,0xa5,0x6b,0x0d,0x0e,0x67,0x79,0x03,0xf7,0x81,0xa8,0xca,0x0c,0xa6,0x20,0xa0,0x3d,0xd7,0x9d,0xc4,0x67,0x90,0x92,0xa1,0x48 }, { 0x30,0xe0,0x60,0x8a,0xdc,0xad,0x12,0x35,0xa2,0x9e,0x8a,0xb0,0x06,0x09,0xc3,0x19,0xf4,0x2d,0xee,0x34,0xfb,0xe2,0x61,0x4c,0x57,0x53,0x24,0x54,0x83,0x59,0xf1,0x79 }, { 0x61,0xce,0x81,0xf7,0x35,0x50,0x80,0xf5,0x00,0xd8,0x88,0xe8,0x94,0x61,0x86,0xfb,0xc3,0xd8,0xda,0x74,0xf5,0xe5,0xec,0x72,0x0c,0x33,0xcb,0x69,0x4e,0xe4,0xb3,0x22 }, { 0x85,0x52,0xcb,0x58,0x36,0x08,0x0b,0x67,0x0b,0x76,0xc8,0x6b,0xc8,0xf9,0x11,0x74,0x8c,0xf2,0x73,0x1d,0x48,0x6e,0xf3,0x17,0xe0,0xbe,0xd8,0x2b,0xa8,0xcb,0x0a,0x43 }, { 0x6d,0x15,0x9d,0x2f,0x88,0x8b,0xb7,0x2d,0x18,0x9e,0xa0,0x4f,0x8c,0xff,0x6f,0x33,0xb7,0x83,0xfe,0x50,0x16,0x04,0x61,0x28,0x72,0xcc,0x34,0x88,0xdf,0x79,0x48,0x0b }, { 0x91,0x47,0xde,0x37,0xb3,0x7a,0xfb,0xc2,0xd1,0x53,0xbb,0x72,0xb1,0x4c,0xb9,0xfa,0xd3,0x66,0xbf,0x4a,0xba,0xb4,0x3d,0x7d,0x06,0x7b,0x2e,0xa0,0x5e,0x5a,0xe3,0x18 }, { 0xa2,0x0e,0x67,0x78,0x99,0x9a,0xd0,0x0e,0xd5,0xf5,0xcc,0x0d,0xf9,0x70,0xc9,0x20,0x24,0x07,0x80,0xcb,0xa3,0xca,0x35,0x07,0x14,0x7e,0x84,0x8a,0x2d,0x52,0xb2,0x28 }, { 0xfb,0xb1,0xdc,0x5c,0x64,0xed,0x08,0x6e,0x13,0x59,0xcf,0x5d,0x90,0x46,0x70,0xc0,0x95,0x1b,0xd0,0x01,0xfb,0x5e,0x4c,0xf3,0xcf,0x56,0xa9,0xa9,0x05,0x87,0x7f,0x2f }, { 0x94,0x2e,0x8d,0x41,0x92,0x9c,0x8e,0xf6,0x3c,0xe3,0xab,0x38,0x81,0x5e,0x31,0x42,0x14,0x10,0x09,0xed,0xb0,0xb0,0xae,0x9e,0x00,0xca,0x71,0xb0,0xa7,0x1b,0x17,0x21 }, { 0x4a,0xd0,0x13,0xd1,0x62,0xaf,0xc1,0x58,0x70,0x1e,0xdf,0x5b,0x24,0x3e,0x42,0x83,0x0e,0x5a,0x51,0xb9,0xf3,0x02,0x40,0x86,0x00,0xe2,0x0d,0x4e,0x42,0xa2,0x97,0x55 }, { 0x0d,0x06,0x71,0x04,0xd0,0x0f,0x9f,0xf9,0xdb,0x4f,0x82,0x92,0xe9,0x5b,0x4c,0x0c,0x0a,0x56,0xf3,0x15,0x7f,0x2a,0x15,0xf8,0x74,0xad,0x0b,0x79,0xa4,0x61,0xe2,0x7f }, { 0x3c,0x03,0x37,0x30,0x23,0x97,0xdf,0x1f,0x89,0xad,0x7b,0xc1,0xf8,0x01,0x4a,0xe7,0x02,0x62,0x21,0xb6,0x44,0x04,0xde,0x6c,0x89,0x59,0x98,0x69,0x0a,0xc6,0xb9,0x12 }, { 0xbf,0x27,0xee,0x3c,0xf3,0x59,0x6f,0x3c,0x88,0xc4,0x09,0x7b,0xcc,0xe0,0x39,0xe8,0x7d,0xb5,0xfa,0xd7,0x1f,0x67,0x3e,0xd1,0x30,0x96,0x1e,0x74,0x7a,0x59,0xd1,0x17 }, { 0x1f,0xda,0xe5,0x8f,0x07,0xaa,0x07,0xab,0x1e,0x80,0x2a,0xd0,0xf2,0x92,0x6c,0x2b,0x51,0x7f,0x41,0xc7,0xc7,0x26,0xc2,0x90,0x87,0xa4,0x46,0xf1,0xb9,0x31,0xcd,0x78 }, { 0xb1,0xe3,0x73,0xe4,0x35,0xb9,0x34,0x31,0x30,0x35,0xc2,0x14,0xec,0xb2,0x99,0xbf,0xd2,0xff,0xeb,0x62,0x7e,0x93,0xfe,0xab,0x56,0x0f,0xcb,0x3d,0x7e,0x1f,0xf1,0x52 }, { 0xb8,0x58,0xec,0x64,0x5d,0x14,0x9e,0xbf,0xf2,0x68,0x8e,0x05,0x36,0x70,0xd2,0x2b,0x80,0x61,0x07,0x1e,0x45,0x91,0x22,0xd6,0x0c,0x0a,0x0f,0xc2,0xf3,0xcb,0xd9,0x36 }, { 0x9c,0x35,0x06,0x4e,0xbe,0x98,0x7c,0x17,0x7b,0xe1,0xf9,0x55,0xa8,0x8b,0xee,0x72,0xf0,0x6b,0x90,0x31,0x73,0x94,0x64,0x58,0xfe,0x02,0x08,0x13,0x42,0xbf,0xdd,0x46 }, { 0xd4,0x2b,0x60,0xff,0xab,0x4f,0x32,0xfc,0xb0,0x61,0xf5,0xfb,0x65,0x6f,0x0a,0x53,0x57,0x81,0x7c,0x33,0x71,0x0a,0x17,0xdb,0x4e,0x20,0xa2,0xf8,0x37,0x41,0xd9,0x3b }, { 0xbc,0x4c,0x41,0x26,0x6d,0xd5,0x55,0xea,0x44,0x57,0x53,0x3e,0x46,0x87,0xbe,0x75,0x96,0x69,0x1a,0xea,0x89,0xf3,0xd0,0xd0,0x1f,0x2b,0x2a,0xcc,0x1c,0x51,0x82,0x3a }, { 0x9c,0x35,0x03,0x63,0xbb,0xaf,0x75,0xd6,0xbf,0xb7,0xa1,0x73,0xc8,0xfc,0x1b,0xbb,0x6f,0xbb,0x7d,0xf4,0x5e,0x67,0x28,0x94,0x90,0x2c,0x38,0xda,0x93,0xe5,0x5d,0x58 }, { 0xbd,0x49,0xcf,0xc5,0x3f,0xfc,0xab,0x6a,0x6f,0x85,0xc7,0xf9,0xfb,0xad,0x32,0x8d,0xc8,0x00,0x3a,0x89,0x35,0xaf,0xbd,0xee,0x65,0x0b,0x41,0x43,0xab,0x6e,0xe6,0x1d }, { 0x3b,0x6f,0xe3,0xaf,0xb4,0x3c,0xdf,0x78,0x18,0xa3,0xc0,0x53,0xd2,0x76,0x44,0xb0,0xad,0xd9,0x65,0x33,0xb2,0x4b,0x50,0x6e,0x86,0xbe,0xe9,0x1a,0x5b,0xca,0x77,0x59 }, { 0xb9,0xca,0x85,0xd5,0x04,0xac,0xf8,0x61,0xe6,0xa0,0xf0,0x3a,0x22,0x50,0xc1,0x2b,0xc1,0xf6,0x03,0x6a,0xeb,0xb8,0x02,0x72,0x09,0x6c,0x20,0x9a,0xab,0x5b,0xc5,0x77 }, { 0x29,0x31,0x0e,0x7b,0x19,0x56,0x47,0x73,0x65,0x34,0x0b,0x8c,0x7b,0xde,0xc5,0xae,0x86,0x2b,0x73,0xda,0x7d,0xb4,0x47,0x6e,0x3e,0x53,0x0f,0x06,0xff,0x01,0x33,0x37 }, { 0xaa,0x24,0x7d,0xb4,0x63,0xf0,0xa1,0xd0,0x88,0x36,0x49,0xb3,0x75,0x16,0x50,0x57,0xdb,0xb2,0x31,0x7e,0x6e,0x71,0x2e,0xd9,0x9f,0x0c,0x7f,0xf5,0x53,0x07,0xbb,0x48 }, { 0x03,0x80,0x10,0x30,0x8f,0x4d,0x85,0x12,0x0a,0xe7,0x97,0xf3,0x6d,0xaa,0xf5,0x4d,0xb5,0xab,0xb6,0xe6,0xce,0xbc,0xb4,0x43,0xeb,0xe2,0x92,0xfb,0xa3,0x89,0x80,0x03 }, { 0x30,0xd7,0x15,0xbb,0x78,0x1f,0x56,0xcb,0x75,0xa8,0xa0,0x00,0xa3,0x87,0x3d,0x69,0xa5,0x7e,0xa3,0x91,0x24,0x2c,0xfc,0x8f,0x83,0x22,0xe6,0xc1,0xec,0xf5,0x4d,0x17 }, { 0xb1,0x20,0xdd,0xe9,0x40,0xda,0xe4,0xa2,0x66,0xb0,0xdf,0x1e,0x61,0x2c,0xf4,0x5b,0x1d,0x50,0xc3,0xcd,0x24,0xd5,0x10,0xa7,0x73,0x14,0x4f,0xbf,0xb4,0xe9,0x22,0x18 }, { 0xe1,0x11,0xda,0x76,0x36,0x56,0x93,0x00,0x08,0xe5,0x5d,0x2d,0x6e,0x40,0x27,0xe5,0x8f,0x19,0x51,0x1b,0xc7,0xd6,0x51,0x74,0x79,0xb2,0x82,0x74,0xbb,0xb3,0xb4,0x58 }, { 0x38,0x38,0x9f,0x47,0xde,0xc6,0x76,0xdc,0x82,0xaa,0xbd,0x3b,0xb2,0xbd,0x65,0x42,0x47,0x48,0x33,0xb1,0x92,0xfd,0x63,0xa7,0x53,0xbf,0x9b,0x3c,0x72,0x8e,0x19,0x71 }, { 0x93,0x2f,0xc2,0x83,0xe3,0xd3,0xf9,0xbd,0xa4,0xbc,0xff,0x5a,0x1c,0x81,0xb5,0x26,0xdb,0x7b,0x6b,0xad,0x15,0xf1,0xad,0xa5,0x1e,0xd0,0x77,0x4f,0x79,0x50,0x72,0x51 }, { 0xc2,0x1a,0x26,0x9b,0x90,0x1b,0x5c,0x63,0x86,0xf8,0x62,0x22,0xae,0xe8,0x80,0x43,0xf3,0x36,0x78,0xae,0x69,0xc5,0x6b,0xb0,0x42,0x97,0x79,0x3e,0xa7,0xea,0x8e,0x3f }, { 0x85,0x51,0x71,0x14,0xcc,0xc4,0xa8,0x6c,0x94,0x30,0x56,0x0a,0xcf,0x78,0x5d,0x2f,0x1d,0x3c,0x90,0x36,0x25,0xbf,0x34,0xe4,0xb6,0x0a,0x0e,0x7e,0x17,0x30,0x44,0x15 }, { 0x54,0xad,0xfd,0x98,0x6a,0x65,0xd8,0xf5,0x93,0xde,0x95,0x49,0xce,0xf3,0x06,0x0e,0x4e,0x83,0xdd,0x79,0x7c,0xa8,0xf4,0x84,0x52,0x4f,0x99,0xf6,0x50,0xb7,0x61,0x1b }, { 0x23,0x04,0xe4,0x38,0x40,0xd0,0x76,0xa2,0x53,0x6e,0x1a,0x7d,0x13,0x4b,0xc6,0xb3,0xb1,0x9d,0x70,0xdf,0xde,0x26,0xa3,0xb1,0x1a,0x6d,0x46,0x4c,0x25,0x7a,0x1f,0x12 }, { 0x63,0x36,0x74,0xc9,0x40,0x98,0xdf,0x83,0xcc,0x5f,0xf4,0x6a,0x1b,0xea,0xab,0xab,0x38,0x6a,0x01,0xe9,0x67,0xf3,0xb7,0xb8,0x11,0x89,0x7d,0x62,0x44,0x43,0x58,0x59 }, { 0x6d,0x18,0x8f,0x5c,0xf2,0xe0,0x7d,0xe1,0x32,0x8d,0xc9,0x23,0xb9,0xf3,0xa5,0xc6,0xc7,0xb6,0x03,0xd2,0xc0,0xef,0xeb,0x6d,0x4f,0x00,0x03,0xe5,0x1f,0x5e,0xb9,0x00 }, { 0x3d,0x37,0x32,0xa1,0x9a,0xc8,0x9c,0xeb,0x88,0xbd,0x71,0x19,0xd7,0x35,0xaa,0xcd,0xbc,0x7d,0xd7,0xa8,0x61,0x68,0x18,0xaf,0x77,0xd1,0xcd,0xf4,0xf3,0xb5,0xad,0x30 }, { 0x52,0x5b,0xe3,0xd5,0xe2,0xd2,0x4e,0xec,0xc2,0x47,0x17,0xf1,0x01,0xc5,0x81,0x18,0x44,0xd6,0x92,0xcf,0x7e,0xbe,0xcc,0x9c,0x2f,0xb5,0x50,0x3a,0xb8,0x50,0x0a,0x0c }, { 0x12,0x7c,0x6e,0x40,0x7f,0x26,0xeb,0x4d,0x1c,0x76,0xc4,0xfc,0x58,0x7a,0xbb,0x4f,0x2c,0x22,0xaf,0xcc,0x61,0x40,0xed,0x23,0xfd,0x3e,0x3b,0x20,0x0d,0x52,0x41,0x10 }, { 0x33,0xc8,0xab,0xac,0x0f,0x23,0x3e,0x33,0x98,0x55,0x71,0x85,0x7f,0xc2,0x86,0x67,0x2e,0x1f,0x3c,0x89,0x0f,0xef,0x9c,0x3b,0xaf,0x12,0x70,0xf1,0x87,0x1f,0x31,0x38 }, { 0xb7,0x53,0x54,0x8a,0xa2,0xde,0xd0,0x3b,0x7d,0x4b,0x51,0x78,0x5e,0xcc,0xc5,0x3b,0x75,0x7f,0x9a,0xc4,0xee,0x9c,0x7a,0x9a,0x38,0x09,0x98,0x97,0x20,0xff,0x9b,0x5e }, { 0xd4,0xe9,0x73,0x2c,0xef,0xd6,0xcd,0xc9,0xf6,0x9b,0x60,0x71,0x79,0x75,0x69,0xbf,0x89,0xc8,0x36,0x37,0x6b,0xd4,0x36,0xe9,0x64,0xcd,0x71,0x62,0xc5,0xf1,0x7e,0x62 }, { 0x97,0x80,0x0a,0xd7,0x3c,0xbe,0x4f,0x6d,0xdc,0xa6,0xd8,0xda,0x02,0x51,0xb8,0xf9,0x5e,0x41,0x36,0x59,0xe7,0x44,0x92,0x20,0xf1,0x40,0x82,0xd5,0xb5,0x99,0x47,0x7f }, { 0xee,0x39,0xc1,0x14,0xb3,0x93,0x8a,0xb4,0x71,0x3d,0x60,0xf5,0x7a,0x4d,0xcb,0xcb,0xe7,0x38,0x35,0xae,0x6e,0xdd,0x29,0x71,0x55,0x24,0xea,0xb4,0x83,0xfc,0x85,0x3b }, { 0x6a,0xc9,0x2f,0xb9,0x60,0xe5,0xb2,0x2e,0xef,0xa2,0x90,0x9a,0x2f,0xc6,0x1d,0xe2,0x2c,0x48,0x1f,0xa2,0xeb,0x45,0x65,0xc3,0x78,0xb6,0xb6,0xaa,0x37,0x12,0x43,0x46 }, { 0xe2,0x9f,0xd5,0xd3,0x11,0xee,0xb1,0x7d,0x4d,0xba,0x70,0x24,0x52,0x96,0xc8,0xb9,0xec,0x59,0x69,0x50,0xa3,0x0e,0xa7,0xd4,0xcb,0x13,0x36,0x8d,0x7a,0x93,0xd2,0x3a }, { 0xcd,0x87,0xe4,0x30,0x44,0x8f,0xf6,0xda,0xb8,0xfa,0x96,0xdb,0x80,0x5c,0xb0,0x00,0xc2,0x89,0x26,0x25,0x34,0x15,0x06,0x89,0x0a,0x4a,0x06,0xa6,0x66,0xa2,0xb2,0x42 }, { 0x5f,0x4c,0x0a,0x5b,0x4e,0x16,0x76,0x56,0x46,0x66,0x0e,0x7b,0xb9,0x36,0x26,0x83,0x70,0x4b,0x80,0xaf,0x09,0x10,0x69,0xae,0x2f,0x41,0xcc,0x9e,0xcf,0x70,0x41,0x33 }, { 0x4a,0x41,0x9a,0xf2,0x2f,0x22,0xfc,0xad,0x19,0x15,0x59,0x68,0xb1,0x4e,0xdb,0x4b,0xd5,0x65,0xb9,0xbd,0x70,0x5a,0x57,0x96,0x2a,0x9c,0xf7,0xc1,0x39,0x43,0xa3,0x0a }, { 0xb6,0xb4,0x9d,0x85,0x3a,0x22,0x01,0xf0,0x77,0x4a,0x63,0xce,0x6f,0xa6,0xf5,0x38,0xaf,0xd8,0xc7,0x78,0x5a,0x9c,0x28,0xe4,0xed,0xc6,0xe7,0xfa,0x00,0x94,0x1f,0x60 }, { 0x15,0x4d,0xb9,0xd8,0xb9,0x54,0x56,0xc2,0x13,0x17,0x41,0x9a,0xab,0x50,0xa0,0x2c,0x05,0xf2,0x65,0x46,0x4f,0xa4,0x7a,0xdb,0x35,0x90,0x4a,0xc3,0x41,0x0e,0xc5,0x7c }, { 0x4f,0xd9,0x48,0x2d,0x78,0x66,0xe6,0xf6,0x4b,0x8d,0x52,0xe0,0x70,0x18,0x10,0xde,0x3e,0x22,0x24,0x41,0xcf,0xa7,0x4c,0x44,0x99,0x75,0x32,0x39,0x87,0x88,0x35,0x7b }, { 0x7c,0xd6,0x13,0x44,0xfc,0xae,0x17,0x11,0x6f,0xe1,0x75,0xcc,0xf8,0xcc,0x97,0xe9,0x0e,0xf9,0x68,0x9c,0xc4,0x0f,0xb3,0x42,0x71,0x72,0xb4,0x54,0x46,0xa3,0xdf,0x1f }, { 0x40,0xe9,0x84,0x24,0x68,0x8a,0x55,0x8e,0x98,0xaa,0xc2,0xdd,0xb6,0xd1,0xd2,0x35,0xcf,0x93,0x3b,0xc4,0xa1,0x70,0xf5,0x20,0x45,0x8a,0xbb,0x0c,0x9d,0xec,0xe9,0x78 }, { 0xdf,0x44,0xdf,0x54,0x1f,0x74,0x97,0x0e,0x53,0xc9,0x53,0x2c,0x5e,0x85,0x7a,0xbd,0xb0,0xde,0xe8,0xca,0x54,0x6b,0xda,0xcd,0xbe,0x9a,0x33,0x8d,0xd6,0x98,0x50,0x0b }, { 0x24,0x67,0xfa,0x57,0x94,0x65,0x94,0xfd,0xf5,0x97,0xc6,0xc2,0x59,0xb7,0xb8,0x94,0xdc,0xc7,0x1f,0xa0,0x7a,0x3d,0x4f,0x83,0xc1,0xa7,0xfc,0x11,0x4a,0x35,0xdf,0x37 }, { 0x2b,0x9d,0x2a,0x7f,0x1a,0x41,0x0b,0xe2,0x9c,0xb8,0x06,0xeb,0xa6,0xb2,0x78,0x8e,0x70,0xbd,0x28,0xa7,0x49,0x5d,0x22,0x03,0x03,0x9e,0xd5,0xd0,0x3b,0xec,0x8d,0x39 }, { 0x7a,0xaf,0x4c,0xa9,0x70,0xc6,0x2a,0xe5,0xc9,0xdd,0xc5,0x66,0xda,0x6b,0x07,0x48,0xee,0xf3,0xab,0x66,0xa3,0x46,0xd6,0xd1,0x5b,0xcd,0xd0,0xbf,0xe6,0x63,0x5e,0x15 }, { 0xa9,0xb7,0xa6,0x71,0x28,0x68,0x15,0xb9,0xa6,0x7f,0xdf,0x5c,0x1a,0x05,0xdd,0x5f,0x91,0x22,0x8f,0xc0,0xc3,0x3f,0xa9,0x49,0x90,0xec,0x5a,0x1e,0xe8,0x77,0x46,0x37 }, { 0xf1,0x36,0x52,0xf6,0xdb,0x37,0x58,0x59,0xba,0x6f,0xf8,0xd0,0x5c,0x97,0xfd,0x73,0xcb,0x6c,0x5a,0x5e,0x66,0xc7,0xc9,0x7d,0xb4,0x68,0xbb,0x1b,0x32,0x1f,0x22,0x05 }, { 0xdf,0xef,0x21,0x2b,0x7b,0x1b,0xd7,0xeb,0xca,0x97,0x88,0x1a,0x2a,0x39,0xbf,0xc4,0x72,0xdc,0x16,0x63,0x20,0x30,0xe7,0xe7,0x24,0x2e,0x23,0xbc,0x91,0x66,0x61,0x33 }, { 0xa9,0x4b,0x20,0x43,0xcc,0x47,0x52,0x5b,0x9f,0xf8,0x7f,0x5a,0x19,0x7f,0xe0,0xb6,0xbf,0xe6,0x50,0x73,0x63,0x9a,0xef,0x3d,0x40,0x9f,0x4e,0x1b,0xb4,0x09,0xf2,0x5a }, { 0x5d,0xdd,0x74,0x54,0x84,0x17,0xa6,0xe7,0xfa,0x81,0xd2,0x46,0xc8,0xc5,0x97,0x07,0x9d,0xf6,0x35,0xc1,0xa6,0x67,0xa1,0x91,0x6d,0x64,0x90,0xe4,0x17,0xd0,0x69,0x46 }, { 0xe5,0x01,0xb2,0x2b,0xbf,0x83,0xfc,0xed,0x61,0x72,0x30,0x97,0xb2,0x45,0xa2,0x6e,0x09,0x67,0x79,0xe2,0xa3,0xe2,0x5b,0x19,0x47,0x4a,0x33,0x17,0xe9,0x2e,0x05,0x1c }, { 0x9c,0x0d,0x8c,0x7f,0x0f,0x0a,0x02,0xcb,0x2d,0x64,0xbd,0x61,0x00,0xe5,0xf7,0x38,0x38,0x47,0x0f,0x3e,0x7b,0xd2,0xf1,0x02,0x07,0xa7,0xf5,0xf7,0x84,0x77,0x30,0x2c }, { 0x4c,0x7d,0x7a,0xfa,0xfd,0x05,0x87,0x84,0x41,0x3a,0x59,0xbc,0xee,0x5c,0x15,0x6b,0x89,0xc5,0x53,0x4b,0x63,0x47,0xae,0x16,0x68,0x2e,0xd8,0xba,0x82,0x79,0xe1,0x11 }, { 0x51,0x6e,0x95,0x14,0xca,0x55,0x2e,0x4b,0x35,0x06,0x3b,0x4d,0xf9,0xfb,0x25,0x8f,0xc5,0xbe,0x94,0xf1,0xf2,0x3b,0x18,0x43,0x47,0x29,0x74,0x1a,0xf9,0x77,0x62,0x5c }, { 0x6c,0x26,0x58,0x53,0x8d,0x12,0xc6,0xe0,0x5c,0xae,0xa5,0x55,0x48,0x1d,0x3a,0xf3,0xe0,0x53,0x2e,0xb8,0xdd,0x40,0x00,0x7b,0x6e,0x8f,0xdc,0x4a,0x7b,0x33,0x59,0x31 }, { 0x96,0x1c,0xba,0x05,0xd5,0x1a,0xce,0x8e,0xab,0xcd,0x42,0x57,0x43,0xd1,0xa1,0x66,0xce,0x26,0xb0,0x64,0x4a,0xa4,0xa7,0xc0,0x85,0xc3,0x26,0x3c,0xd2,0xbd,0x82,0x26 }, { 0x8b,0xe9,0x16,0x2a,0x7e,0x07,0x62,0xc9,0x1f,0x9e,0xa9,0x4f,0x77,0xd8,0xab,0x9f,0x29,0x9e,0xdc,0x2a,0x39,0x23,0x5c,0x05,0x76,0x68,0xd1,0x27,0x7c,0x1b,0x88,0x45 }, { 0x96,0x71,0x4f,0x71,0x31,0x34,0x71,0xfc,0x59,0x3c,0x8a,0x5a,0xd6,0xe6,0xd7,0x13,0xe4,0x43,0xb2,0x39,0x23,0xdb,0xe9,0x51,0x8f,0x25,0x46,0xcb,0x7a,0x29,0x76,0x54 }, { 0x6b,0x29,0xfe,0xdb,0x44,0x22,0x72,0xad,0x86,0x2d,0x8a,0x7d,0xc5,0xd2,0xe2,0x79,0x86,0x56,0xce,0xc4,0x39,0x0a,0x21,0xd4,0x72,0xf8,0x67,0x05,0x50,0x83,0x5d,0x08 }, { 0xc9,0xf8,0xd9,0x8c,0xe6,0x01,0x22,0xb7,0xf3,0x98,0x2e,0x4e,0x06,0x13,0x43,0x42,0xfa,0xb3,0x62,0x15,0xa6,0xb6,0x94,0xd9,0x54,0x86,0xd4,0x37,0x16,0x26,0xef,0x4e }, { 0x3f,0x75,0xa9,0xa1,0xcf,0x61,0x9d,0x15,0x1f,0xcd,0x9c,0x00,0x6d,0x87,0x0f,0x53,0x43,0x62,0x98,0x08,0x54,0x64,0x9d,0x65,0x88,0xe2,0x6a,0x11,0xa9,0xd8,0x8a,0x45 }, { 0xd8,0x95,0x4b,0x57,0xf3,0x13,0x15,0x78,0x01,0x2a,0xe6,0xc2,0x53,0xd5,0x98,0x9b,0xc5,0xac,0xa8,0xfd,0x4f,0xa4,0xcb,0x2b,0xf8,0x78,0xdb,0x24,0x62,0xe6,0x5b,0x4d }, { 0xdd,0xb9,0xbc,0xcf,0xe1,0x09,0x96,0xf0,0x00,0x9c,0x7b,0xc3,0x25,0xc2,0x09,0xc3,0x42,0x6b,0xcc,0x47,0x5f,0x19,0xc7,0xa0,0x9c,0x3f,0xaa,0xec,0xbd,0x5a,0x76,0x06 }, { 0x6f,0x7a,0x97,0x6d,0x24,0xd0,0x5f,0x2f,0xd9,0x5c,0xfb,0x03,0x6b,0x90,0xca,0x47,0x61,0x12,0x61,0xa2,0xed,0xc3,0x42,0xa9,0x1f,0x2d,0x99,0x72,0x32,0x8c,0x65,0x08 }, { 0x03,0x4a,0x56,0x4b,0xb1,0xeb,0x9a,0x51,0x30,0x58,0xb1,0x6a,0x69,0x5c,0xdf,0xfe,0xe5,0x76,0x31,0x03,0x87,0xd1,0x26,0x9f,0x36,0x52,0x07,0xb3,0xc1,0xf5,0x4c,0x6d }, { 0x98,0xe2,0x77,0x13,0x92,0xb3,0xf6,0xd6,0x4b,0x2f,0xae,0xb1,0x07,0xc3,0x04,0x3a,0x0d,0x51,0x61,0x70,0x9d,0x1b,0xed,0x0c,0xd7,0x45,0x37,0xab,0x89,0xa3,0xeb,0x1d }, { 0xd4,0x60,0xaa,0x8e,0xe3,0xd5,0x07,0xa1,0x21,0x5e,0x28,0xce,0x9a,0x44,0xd6,0x39,0x4b,0xf8,0xf9,0x46,0x00,0x0e,0xa5,0x46,0xe1,0x28,0xf5,0x52,0x6c,0xa2,0x98,0x57 }, { 0xec,0xe6,0x64,0x3b,0x8f,0xa8,0x3b,0x94,0x82,0xf3,0x00,0x12,0x7f,0xb0,0xd9,0xd6,0xba,0x4f,0xba,0xf4,0x06,0x16,0xcf,0x8e,0x28,0x46,0x2b,0x96,0x4a,0xd2,0xec,0x0f }, { 0x47,0x86,0x58,0xac,0xb7,0x4e,0x51,0x85,0x39,0xe8,0x8b,0xd9,0x01,0x42,0x8a,0x04,0x6a,0x53,0xc1,0x53,0x14,0xa8,0xe7,0x65,0xe5,0x76,0x78,0xc5,0x2a,0x14,0xa5,0x00 }, { 0xe1,0xd0,0xe5,0xd3,0xf2,0xb1,0x5c,0x68,0x10,0x1a,0x6f,0x2b,0x6a,0xe1,0xa4,0x65,0x32,0x14,0x0f,0x61,0x5f,0xe7,0xf9,0xd6,0x1e,0xcf,0x8d,0xc4,0xfe,0xc0,0xf1,0x56 }, { 0x96,0x41,0xd5,0x43,0xaf,0x0f,0x36,0x58,0xfe,0x22,0x09,0x85,0x2f,0xf0,0x61,0xe1,0x3e,0x63,0x3d,0xfb,0xc5,0x3f,0xb7,0x16,0x40,0xf4,0x2b,0x15,0x8c,0xd8,0x2f,0x70 }, { 0x34,0x1b,0xab,0x95,0x71,0x61,0x27,0xfb,0xa7,0x05,0x48,0xa2,0xee,0x01,0xfa,0x55,0x43,0x2b,0x8c,0x6c,0x16,0x50,0x58,0x10,0x3f,0xf6,0x95,0xa2,0xd8,0x18,0x1d,0x62 }, { 0x0b,0x81,0x8d,0x2b,0xca,0x10,0x6b,0xcb,0x0e,0x2b,0x08,0x1d,0x62,0xf1,0x70,0x0a,0x20,0xf7,0xa2,0xca,0x0e,0x0f,0x7d,0x0a,0x67,0x8d,0x0d,0x45,0xca,0xe3,0xff,0x57 }, { 0xdb,0xe5,0x37,0xd6,0x40,0x25,0xb8,0xcb,0x44,0x36,0x3b,0xab,0x65,0xe9,0x83,0x0b,0x77,0x7c,0x73,0x84,0x45,0x4e,0x3c,0x27,0x24,0xba,0xee,0xe3,0x1f,0xd2,0x3c,0x53 }, { 0x66,0x6f,0x57,0x9d,0x5c,0xd0,0xe8,0x63,0xdd,0xe5,0x1e,0x7f,0x9e,0x7b,0xb2,0x13,0x43,0x74,0x6e,0x44,0xef,0x29,0x5d,0x24,0x9d,0x7f,0x12,0x3f,0xaa,0xec,0xa3,0x1c }, { 0x85,0xa0,0xce,0x79,0x20,0x90,0x28,0x71,0xa6,0x4c,0xf6,0xc8,0xbe,0x20,0x99,0x1d,0x6f,0x6c,0xd8,0xc1,0x8c,0x69,0xc9,0xee,0x66,0x33,0x40,0x0b,0xac,0x50,0x1e,0x7c }, { 0x68,0xb9,0xb3,0x31,0x4c,0x21,0xdc,0xef,0x16,0x0b,0x37,0x68,0x71,0x56,0x36,0xe8,0xb6,0x8e,0xc1,0x11,0x22,0x67,0x6d,0x58,0xc3,0xf4,0xc6,0x28,0x41,0xd8,0x9d,0x0d }, { 0xa3,0xaf,0x80,0x58,0x85,0xd9,0x8b,0xbf,0x39,0x35,0xee,0x9d,0xe9,0xbd,0x52,0x91,0xc3,0xbe,0xce,0xf2,0xcc,0x1f,0xaf,0xf7,0x16,0xfa,0x86,0x27,0xa8,0xa5,0xea,0x57 }, { 0x1c,0x5c,0x63,0xce,0x46,0xd2,0x0e,0x94,0xe4,0x34,0x81,0xa7,0xfa,0x84,0xcd,0xf0,0x75,0x60,0x98,0x17,0xf2,0x12,0x71,0x8e,0xdf,0x05,0xe6,0xba,0x87,0x94,0xa2,0x6e }, { 0x06,0xac,0x61,0x8b,0x0f,0x33,0x49,0xb5,0x60,0xf9,0x47,0x1f,0x02,0x4f,0x0e,0x65,0x0d,0x99,0x5a,0x98,0x1a,0x99,0x97,0xfe,0xae,0x4b,0xa4,0xa5,0x9b,0x4f,0x60,0x77 }, { 0xa2,0x99,0xa1,0x1a,0x0b,0x9d,0x18,0x41,0x97,0xf3,0x66,0xd7,0xb1,0x12,0xea,0xdf,0x8b,0x5d,0x45,0xf4,0x5e,0x63,0x14,0xc2,0x12,0x92,0x1e,0x1f,0x75,0xd0,0xb1,0x2a }, { 0xba,0x8b,0x9c,0x6b,0x38,0x14,0xed,0x35,0xb6,0x02,0x27,0x09,0x5b,0x69,0xdf,0x27,0x6a,0x30,0xae,0x33,0xa0,0x46,0x00,0x57,0x92,0x34,0x2c,0x5a,0xc2,0x4d,0x64,0x56 }, { 0xe4,0xc8,0x6a,0x69,0xe5,0xce,0xbf,0xc6,0xaa,0xd3,0x2c,0x99,0x44,0xe8,0x9e,0xc4,0xbc,0x0e,0x85,0xc2,0x81,0x90,0x38,0x3f,0x89,0xdf,0xd1,0xe6,0x41,0xfe,0x28,0x72 }, { 0xa1,0xc9,0x7a,0xf2,0xbf,0x11,0xcb,0x29,0x4a,0xe5,0xa7,0x91,0xfd,0x99,0xa1,0x66,0x6f,0xed,0x1d,0xd1,0xa3,0x9f,0x73,0x7c,0xf4,0x75,0x81,0xcf,0x4e,0x69,0x3f,0x55 }, { 0x25,0x99,0xeb,0xe6,0x53,0xf1,0x5e,0x06,0x38,0xf2,0xa4,0xd2,0xb3,0x46,0x30,0xad,0x8f,0x50,0xf4,0x7b,0x95,0x16,0xa5,0x4a,0xda,0xc3,0xaa,0x59,0x1f,0x94,0x3e,0x1e }, { 0x44,0x0d,0xe8,0x15,0x8b,0xf2,0xf2,0x5a,0xe6,0xb5,0x74,0x30,0xe4,0x7a,0x78,0x1a,0x57,0x6c,0xf1,0xda,0x38,0xfa,0x2d,0x01,0xf6,0x99,0xc2,0x60,0x82,0x5b,0xf7,0x45 }, { 0xe1,0x08,0xa0,0x7b,0xa7,0xf1,0x67,0xf9,0xc3,0x7b,0x5f,0x58,0xf2,0xc5,0x79,0x5e,0x0d,0x1f,0xa5,0x81,0x12,0x1b,0x88,0xa3,0xc0,0x54,0x5f,0x5d,0xc5,0x6a,0xe6,0x2f }, { 0x2c,0x82,0xdd,0x04,0xb4,0xba,0xe2,0x68,0x9a,0xf4,0x90,0x88,0xe0,0xb9,0x5e,0x4d,0x90,0x52,0x42,0x74,0xdf,0x81,0xa6,0x97,0x45,0x44,0xac,0xaa,0xce,0x0c,0xa5,0x7f }, { 0xce,0x8f,0x52,0xec,0xb3,0x1b,0xd4,0x43,0xfe,0x8a,0xa4,0x4a,0x49,0x1c,0x3a,0x3a,0x16,0x25,0x11,0xbb,0xd8,0x78,0x8a,0xab,0xf8,0x6a,0x6c,0x13,0xf3,0x07,0xeb,0x27 }, { 0xbd,0x14,0xbf,0x74,0x8d,0x71,0x78,0x9d,0x59,0xbe,0x89,0x27,0xb6,0x7f,0x77,0xe5,0x38,0xfb,0x13,0x9f,0x1f,0x74,0x91,0x3a,0xd7,0x58,0x98,0x06,0x53,0x80,0xcd,0x2f }, { 0x71,0xd5,0x96,0xaf,0xb9,0x34,0x30,0x00,0x59,0x7c,0x6e,0x2b,0x9b,0xf6,0xc5,0x0a,0x99,0x62,0x01,0xf4,0x4d,0xb5,0x7e,0x22,0x59,0x87,0x3b,0x76,0x9b,0x58,0x61,0x6c }, { 0x80,0x12,0xaa,0xa6,0xeb,0x0c,0x15,0xd0,0x4d,0x94,0x89,0x6c,0xcd,0x98,0x56,0xc4,0xa4,0x59,0x58,0x36,0xf3,0xf0,0x11,0xad,0x8a,0xad,0xe3,0xc8,0x21,0x99,0x00,0x79 }, { 0xe3,0xc6,0x3b,0x99,0x89,0x4a,0xfc,0x06,0xb9,0x78,0xd5,0x2e,0xac,0x9a,0xdf,0xf4,0x50,0x63,0xa9,0xf3,0x64,0x90,0xd5,0x40,0x92,0xc4,0x06,0x8f,0x42,0x51,0xb1,0x4b }, { 0xf0,0x5d,0xb2,0x1e,0x63,0x30,0x0b,0x8a,0x42,0x87,0x02,0x24,0xda,0x86,0xe7,0xc2,0x0a,0xc4,0xe7,0x59,0xa3,0x36,0xb0,0x30,0xdc,0x4b,0x54,0xef,0x24,0x72,0xb3,0x11 }, { 0x4d,0xd4,0x0f,0x13,0xa8,0xe9,0x7b,0x15,0x7b,0xa7,0xa5,0x13,0xb4,0x82,0xb4,0xb5,0xd8,0xc0,0x56,0x46,0x87,0x32,0x9d,0x3d,0x87,0x82,0xf9,0xce,0x6a,0xfa,0x71,0x33 }, { 0x56,0x67,0x1a,0xf2,0x7b,0x04,0xb5,0x19,0x24,0xa4,0x54,0xf4,0xc2,0xd8,0x17,0xf7,0x27,0x91,0xa3,0x35,0x4e,0x5e,0x57,0x75,0x15,0x34,0x00,0xdd,0x76,0x88,0x17,0x34 }, { 0xa2,0xce,0xa7,0xb2,0x7a,0xa9,0x52,0x62,0x9b,0x69,0x00,0x5d,0xbf,0x38,0x6d,0xb0,0xc6,0x85,0x46,0x57,0xdd,0xbd,0x8a,0xb2,0xb1,0x1e,0xbe,0x3a,0xbd,0xa6,0xa0,0x6d }, { 0x93,0xae,0x77,0x0b,0xdf,0x35,0x43,0x3e,0x69,0x85,0x2a,0xe3,0x58,0x26,0x38,0xd4,0xaf,0x70,0x6a,0xda,0xd2,0xc4,0x2b,0xfb,0x4e,0xac,0x41,0x2a,0x41,0xbe,0x70,0x2d }, { 0xcd,0x0e,0x22,0x87,0x96,0x54,0xda,0x74,0x31,0xdc,0x13,0x84,0x5c,0xa1,0x47,0xef,0xb6,0x0b,0xb6,0x02,0xd5,0xdd,0x20,0x84,0xdb,0x82,0x03,0x00,0xd5,0xde,0xdf,0x70 }, { 0x3b,0x03,0xb4,0x60,0x18,0xdb,0x82,0x06,0xab,0xad,0x4e,0x75,0x65,0x32,0x24,0x19,0x41,0xb1,0xe4,0xba,0xac,0xfa,0x0b,0x54,0x33,0xd2,0xf4,0x45,0xda,0xcd,0x8e,0x0c }, { 0xe0,0x80,0x2b,0x66,0x7f,0x3d,0x6f,0xc7,0xd1,0xb1,0x9f,0xb5,0x4a,0x22,0x64,0xcb,0xa1,0x08,0x33,0x3d,0x9f,0x40,0xe8,0x92,0xb4,0x27,0xd6,0x38,0x4e,0xef,0x32,0x46 }, { 0xc3,0xf9,0xc5,0x0b,0xe1,0xac,0x60,0xde,0x38,0x22,0x20,0x65,0x4d,0x76,0x93,0xf7,0x52,0x6a,0xd1,0x47,0xab,0xa2,0x0f,0xe9,0xba,0x49,0x85,0xbe,0xcc,0xab,0xb0,0x03 }, { 0xd4,0x41,0xc4,0x1a,0x93,0x6c,0x97,0xa2,0x9f,0x7f,0x82,0x41,0x4e,0xe1,0x72,0xd5,0x3a,0xc7,0x5f,0xf8,0x0d,0x12,0x48,0x59,0x3a,0xdc,0x6b,0x94,0x69,0x87,0x8b,0x44 }, { 0x5a,0x78,0xb7,0x94,0xb6,0x65,0x13,0x81,0x32,0x13,0x54,0xda,0x4c,0xaa,0x29,0x7b,0x46,0x5a,0x48,0xc6,0x76,0xea,0x44,0x13,0x51,0x2c,0xf8,0xf2,0xab,0x6f,0xcd,0x65 }, { 0xec,0xa6,0xe6,0x37,0x3f,0x3e,0xd4,0x73,0xfd,0x74,0xee,0xdf,0x23,0x68,0x05,0xe2,0xc9,0x6f,0x85,0x84,0xa7,0x92,0x07,0x37,0xb9,0xf6,0xcb,0x7b,0xb4,0x93,0xea,0x0f }, { 0xd7,0xe4,0x1b,0x6b,0x6f,0xf4,0xd8,0x13,0x02,0x39,0xd6,0x0e,0xfc,0xcc,0xc6,0xf0,0xc5,0x27,0x03,0xf4,0xe1,0x38,0x0f,0x50,0xff,0x40,0x3d,0xbc,0x52,0x27,0x6a,0x2b }, { 0xc0,0xab,0x0a,0x68,0x81,0x3c,0x0a,0xde,0xe6,0x19,0x39,0x57,0x52,0xe9,0x44,0xbe,0x3d,0xa7,0x69,0x68,0x2c,0x2c,0xd8,0xb4,0x3d,0x40,0x2c,0xba,0xcb,0xd5,0x17,0x3e }, { 0xce,0x9d,0xce,0x7d,0xf7,0x7c,0x46,0x97,0xf8,0x07,0x00,0xde,0x35,0x97,0x26,0x72,0x4e,0xc2,0xdc,0x3c,0xfc,0xe5,0x22,0xe1,0x98,0x2f,0x4a,0xbd,0x6a,0x7b,0x1f,0x45 }, { 0x3a,0xd8,0xb5,0x92,0xe9,0x3f,0x43,0x48,0xad,0x2c,0x45,0x0c,0xb0,0x22,0xd6,0xce,0x0a,0x34,0x74,0xa1,0x66,0xff,0x89,0xa4,0x19,0xad,0xc2,0x42,0x53,0xf6,0x63,0x7e }, { 0xa4,0x75,0xd7,0x0c,0x8b,0xdb,0x2f,0x5c,0x3d,0xb0,0x7e,0x42,0x9c,0x1c,0x25,0xa3,0x24,0xc2,0x11,0xa3,0x55,0x94,0xfd,0x93,0xbf,0xee,0x42,0xaa,0x85,0x22,0x42,0x5e }, { 0x22,0xec,0xc4,0x21,0xa4,0xa0,0x59,0xe8,0x60,0x4b,0xc3,0xec,0xfb,0x51,0x46,0xf3,0x3a,0x75,0xc3,0xa7,0x85,0x6a,0xcd,0xb9,0x47,0x06,0x88,0x2f,0xfb,0x61,0xa5,0x3e }, { 0xea,0x97,0xda,0xed,0xbc,0xbf,0xa4,0x11,0xde,0x8d,0x94,0x43,0xac,0x4a,0xfd,0x36,0x65,0xa8,0xa3,0x7e,0x1d,0x88,0xaa,0x24,0xd3,0x23,0x9d,0x83,0x06,0x8f,0x37,0x06 }, { 0xf0,0x5b,0x30,0x54,0xe6,0x01,0x23,0xa7,0x7e,0x5e,0xe3,0xcf,0x83,0x15,0x68,0x82,0x47,0x14,0x0c,0xa5,0xfe,0x4a,0x44,0xd4,0x24,0xa0,0xdc,0xa3,0x70,0xfd,0xce,0x43 }, { 0x40,0x02,0xc7,0x81,0x55,0x9e,0x49,0x06,0x72,0x9d,0x14,0x14,0x18,0x66,0xa2,0xff,0x67,0x82,0x72,0x84,0xcd,0x0c,0x3f,0x53,0xf8,0x07,0x46,0x0e,0x94,0x0e,0x6c,0x1a }, { 0xec,0xe4,0xa3,0xe4,0x80,0x42,0x30,0x19,0x50,0x4f,0xaa,0xb1,0xd0,0x4b,0xb6,0x19,0x5c,0xd0,0x6a,0x98,0xf7,0xa0,0x32,0xfb,0x59,0x40,0xec,0x40,0xde,0xad,0xb0,0x72 }, { 0x7c,0xe6,0x0b,0x1e,0xdd,0xb7,0xb7,0x38,0xd7,0xa2,0xb8,0x80,0xc5,0xa5,0x74,0x86,0xb8,0x64,0xd1,0x2e,0x96,0x6c,0x19,0x3a,0x73,0x6f,0x0c,0x40,0x69,0xfc,0x15,0x1b }, { 0x4c,0x01,0xc9,0xd2,0x10,0xbd,0xbc,0x1f,0xff,0x99,0x65,0xd6,0x05,0xb4,0x0a,0xc2,0x25,0x49,0x85,0x4d,0x21,0x14,0x4a,0x0e,0x36,0xe6,0xb3,0x1b,0x4f,0x60,0xf0,0x11 }, { 0x5e,0x70,0x53,0x3a,0x47,0xa3,0x5d,0xb0,0x1a,0xd9,0xb7,0xf7,0x4f,0xa2,0xa2,0x2e,0xce,0x8b,0x6d,0xfe,0x9e,0x31,0x38,0x8e,0xff,0xfb,0x21,0x6c,0x50,0x2b,0xed,0x24 }, { 0x9e,0x85,0xc5,0xb0,0x06,0xdc,0xf5,0x7e,0xb2,0x78,0xc2,0xec,0x3c,0xab,0x55,0xaf,0x0e,0x6f,0xd5,0xf4,0xf5,0xcf,0x8b,0x57,0x19,0x7b,0x1a,0xbf,0x8a,0x28,0x30,0x24 }, { 0xb4,0x5e,0x7a,0x6a,0x8d,0xa4,0x05,0x7b,0x85,0xf4,0x54,0x06,0xa5,0x9d,0x97,0x6d,0x1c,0x8c,0x6b,0x32,0x82,0x4f,0xba,0x18,0x1d,0xf9,0xc3,0x63,0xbe,0x49,0x62,0x46 }, { 0x0e,0xb7,0xdf,0x70,0x5c,0x6e,0xa4,0x80,0x4d,0x78,0x18,0x76,0x62,0x0e,0xcc,0x64,0x3e,0x1f,0x15,0x34,0x2f,0x3d,0x51,0x99,0x47,0x5d,0x28,0x9a,0xac,0x89,0x37,0x5b }, { 0x10,0x38,0x87,0x2a,0xbc,0xee,0x1d,0x94,0xbc,0x8b,0xe4,0xcf,0x4b,0xb7,0x54,0xa2,0xea,0xa7,0xa0,0x8d,0xd1,0x0d,0x0d,0xe1,0x4d,0x18,0x1b,0xa5,0xc2,0xba,0xb8,0x74 }, { 0x54,0x00,0x6a,0x1f,0x61,0x47,0x62,0x81,0x67,0x99,0xc0,0xa3,0xfc,0x00,0xf4,0x71,0xc6,0x68,0x24,0xe2,0x8a,0x36,0x33,0x09,0xc1,0x88,0x0a,0xa2,0xc0,0x3c,0x04,0x04 }, { 0xef,0x3e,0xe6,0x2e,0x18,0x00,0x3f,0xc8,0x66,0x08,0xf8,0xe5,0xa9,0xc5,0x25,0x8a,0x1a,0x92,0x43,0x93,0x96,0x88,0xf4,0x8e,0xc9,0xa9,0x81,0xa6,0x2d,0x75,0x96,0x69 }, { 0x95,0x3d,0xff,0x40,0x08,0x62,0xe7,0x14,0x0c,0xac,0x7d,0x9b,0xcb,0x47,0xd9,0x20,0x62,0x7b,0x4b,0xd9,0x91,0x3b,0x4b,0x2b,0x0e,0x1c,0xf1,0x10,0xbe,0x53,0xd4,0x42 }, { 0xc6,0x93,0xdb,0xf7,0x70,0xa3,0xd0,0xd8,0x41,0x2e,0xa0,0xa0,0x22,0xa8,0x75,0x2b,0xeb,0xf4,0xbd,0x76,0x73,0x03,0xb1,0x8e,0x11,0xb9,0xd1,0x6d,0xea,0xe6,0x3b,0x01 }, { 0x0e,0xd2,0x64,0xa5,0x36,0x8f,0xf8,0xed,0x0a,0x1c,0xcd,0x28,0x58,0xf6,0xdb,0xfd,0x8a,0x88,0x12,0x90,0x37,0x9e,0x9d,0xa2,0x68,0xba,0xc1,0xa6,0x08,0x8b,0xe2,0x08 }, { 0xa4,0x86,0x04,0x50,0x26,0xba,0x84,0x28,0xaa,0x8c,0x34,0xa9,0x36,0x56,0x24,0x6c,0xd8,0x78,0x18,0x7a,0x38,0x9f,0x1a,0x56,0xe5,0xf1,0x85,0x53,0x90,0xe2,0xc8,0x7d }, { 0xd1,0x34,0x09,0x31,0xc2,0xcd,0xed,0xa1,0xd7,0xf2,0x9b,0x15,0xb6,0xf2,0xa4,0xc3,0x6d,0xd4,0x36,0x15,0xf6,0xd0,0x13,0x55,0x03,0xef,0xd2,0x27,0xf8,0xf9,0x4b,0x72 }, { 0x44,0x39,0x8c,0x0f,0x24,0x53,0xc3,0x57,0x46,0x99,0x0a,0xac,0x8d,0xc5,0xe5,0x35,0xd7,0x30,0x93,0x3c,0xc9,0x27,0x0c,0x88,0x2e,0xa3,0x70,0xf7,0x13,0xd0,0xbc,0x07 }, { 0xcb,0x87,0x51,0xb4,0x6c,0x54,0xd0,0x67,0x17,0x91,0x11,0x34,0xda,0xb5,0x33,0x1e,0x4d,0xfb,0x46,0xfa,0x45,0xef,0xd1,0x99,0xe0,0xef,0xd3,0xf2,0xac,0x5a,0x3d,0x12 }, { 0x34,0x0f,0x84,0x28,0x12,0x04,0x11,0xa2,0x63,0x67,0x1d,0x2e,0x63,0x67,0x16,0xc0,0x52,0xec,0xd2,0x46,0xcd,0x72,0x54,0x44,0x40,0x31,0x38,0x2a,0x16,0x60,0x26,0x59 }, { 0x34,0x36,0x13,0x10,0x2a,0x94,0xe5,0xf0,0x03,0x12,0x62,0x19,0x5d,0xa2,0x63,0x05,0xc6,0xbb,0x24,0xbb,0x3a,0x0c,0xdc,0x5d,0x53,0x03,0x7f,0x04,0xdc,0xc0,0xcf,0x58 }, { 0xbf,0x10,0xab,0xf9,0x35,0xd2,0x94,0xb5,0xe2,0x42,0x16,0xb4,0x23,0x88,0x25,0x1a,0x23,0x16,0x60,0xff,0xc8,0xd5,0x03,0xbf,0xbf,0xd6,0xc1,0xb7,0xda,0xe9,0xa6,0x6b }, { 0x41,0xda,0x96,0x26,0x8d,0x7f,0x7a,0x85,0x1c,0xaa,0x4d,0x3a,0xa1,0x7d,0x51,0x50,0x9a,0x77,0xb7,0xc8,0xcc,0x7e,0x40,0x41,0xb1,0xfc,0x83,0x5d,0xc3,0x36,0xf6,0x1a }, { 0x73,0x19,0xa1,0x81,0x1c,0x8f,0x4e,0xc9,0x70,0x10,0x44,0xc8,0xc3,0x5a,0x1b,0x84,0xf5,0x4a,0x93,0x75,0x69,0xb2,0x21,0x69,0x12,0x36,0x6f,0x08,0xb3,0x15,0xd4,0x7f }, { 0x91,0x63,0x55,0xeb,0x1d,0x6e,0xb0,0xdd,0xd6,0x00,0xac,0x37,0xe2,0xe5,0x99,0x6b,0x85,0x2e,0x10,0x8b,0xd1,0x41,0x0d,0x85,0xe4,0xd2,0x1f,0x2c,0x3e,0xb8,0x4b,0x37 }, { 0xbf,0x33,0xe4,0xa4,0x34,0x88,0x86,0xa4,0xef,0x75,0x41,0x74,0xfa,0x5c,0x2b,0xbf,0x51,0xc0,0xed,0x2a,0x08,0x1f,0x1d,0xa3,0x20,0x5d,0xd9,0x9e,0xc3,0x7e,0x2e,0x0a }, { 0xae,0x20,0x8c,0x37,0xb8,0xd0,0x76,0x45,0x56,0x41,0x80,0xc6,0xae,0xa8,0x71,0x09,0x60,0x8f,0x20,0x58,0x9a,0x19,0x46,0x6d,0xc3,0xb4,0x32,0x86,0x05,0xa8,0x89,0x41 }, { 0x78,0x31,0xc3,0xdb,0x55,0xef,0x27,0xb3,0x1d,0x04,0xd5,0x7c,0x06,0xa9,0xf8,0x9b,0x5e,0x5a,0xb9,0x00,0x28,0xe6,0xf9,0x5b,0x5e,0xaa,0xe9,0x9c,0x3f,0xce,0xf7,0x0e }, { 0x6d,0x33,0x2c,0xc7,0xb8,0xff,0x4a,0x5c,0xff,0xf7,0xe8,0xff,0x4c,0xb8,0x89,0x97,0x28,0x29,0x21,0xd0,0xe5,0xfe,0xb2,0x90,0x54,0x8c,0xed,0x81,0x4f,0xed,0x69,0x25 }, { 0x16,0x59,0x74,0x83,0xd8,0x34,0x92,0xd5,0x0b,0x54,0x8a,0x06,0xd1,0x5d,0x8b,0x5c,0xdf,0xc0,0x09,0x07,0x1d,0x0f,0x7e,0xd9,0x3a,0x5d,0x2b,0x86,0xca,0x23,0xe0,0x52 }, { 0x0e,0xc1,0xce,0x0f,0x6e,0x8d,0x7b,0x30,0x75,0x69,0x1b,0xf4,0x87,0x2f,0x0c,0x6d,0x6d,0xc4,0x11,0x43,0xfd,0x3b,0xdb,0xdf,0x43,0x9a,0xda,0xc6,0x50,0xf9,0x84,0x03 }, { 0xbd,0x1b,0x2a,0x42,0xd3,0xa6,0x7e,0x51,0xe2,0xaa,0x68,0x77,0xdb,0x64,0xa7,0x70,0x0c,0x8d,0xf2,0x33,0xe1,0xdf,0x6d,0x8a,0xaf,0x81,0xe8,0x50,0xca,0x12,0xd3,0x1a }, { 0x84,0x7c,0x0d,0x2c,0x37,0x52,0x34,0xf3,0x65,0xe6,0x60,0x95,0x51,0x87,0xa3,0x73,0x5a,0x0f,0x76,0x13,0xd1,0x60,0x9d,0x3a,0x6a,0x4d,0x8c,0x53,0xae,0xaa,0x5a,0x22 }, { 0xbd,0x1b,0x2a,0x42,0xd3,0xa6,0x7e,0x51,0xe2,0xaa,0x68,0x77,0xdb,0x64,0xa7,0x70,0x0c,0x8d,0xf2,0x33,0xe1,0xdf,0x6d,0x8a,0xaf,0x81,0xe8,0x50,0xca,0x12,0xd3,0x1a }, { 0x84,0x7c,0x0d,0x2c,0x37,0x52,0x34,0xf3,0x65,0xe6,0x60,0x95,0x51,0x87,0xa3,0x73,0x5a,0x0f,0x76,0x13,0xd1,0x60,0x9d,0x3a,0x6a,0x4d,0x8c,0x53,0xae,0xaa,0x5a,0x22 }, { 0xbd,0x1b,0x2a,0x42,0xd3,0xa6,0x7e,0x51,0xe2,0xaa,0x68,0x77,0xdb,0x64,0xa7,0x70,0x0c,0x8d,0xf2,0x33,0xe1,0xdf,0x6d,0x8a,0xaf,0x81,0xe8,0x50,0xca,0x12,0xd3,0x1a }, { 0x7a,0xd9,0xcf,0x6e,0x89,0xb7,0x50,0x54,0x25,0xaf,0xf9,0x54,0xe8,0x9c,0xa2,0x2b,0x6c,0x62,0x88,0x4e,0x8c,0xb6,0x28,0x32,0x2f,0x9c,0xce,0x85,0xcb,0x2c,0xfa,0x4a }, { 0x7c,0x2c,0x45,0x89,0x03,0xe6,0x74,0xca,0xbb,0x01,0x27,0xcc,0xce,0xd3,0x93,0xa3,0xf1,0x48,0x40,0xf8,0x0d,0xe7,0x70,0xee,0x82,0xa0,0x03,0xdb,0x37,0x2c,0x17,0x07 }, { 0x56,0x54,0xd6,0xfa,0x8a,0x32,0x51,0x50,0x48,0x0d,0x0c,0x1e,0x3e,0xe9,0x4c,0xf3,0x0d,0x36,0x5f,0xeb,0xb3,0x93,0xcf,0xbf,0x8b,0x09,0x16,0x21,0x1a,0xbf,0x91,0x75 }, { 0x44,0x20,0x79,0xef,0x16,0xfd,0x61,0xcf,0xf2,0xe0,0xad,0xf4,0x39,0x73,0x92,0x65,0x6d,0x9b,0x44,0xea,0xad,0x4c,0xc7,0x28,0x05,0xe7,0x81,0xa0,0xdc,0x65,0xe7,0x1d }, { 0xc5,0xdb,0x52,0xd5,0xb0,0xf9,0xfa,0x5f,0x68,0x79,0x06,0xf9,0x29,0x3d,0x83,0xca,0x32,0x5a,0xd4,0x93,0xd3,0x10,0x5c,0x80,0x64,0xe4,0x10,0xe2,0x78,0x20,0xb5,0x0d }, { 0x0d,0xd8,0x0f,0x97,0x4d,0xa1,0xe8,0x7b,0x4c,0xc4,0x88,0xaa,0xb7,0x5e,0x78,0x91,0x56,0x6d,0x11,0x28,0xea,0xbf,0x2d,0xc0,0xf8,0x95,0x3f,0xc7,0x86,0x24,0x27,0x5f }, { 0x22,0x0f,0xe3,0xf9,0xd6,0x06,0x8a,0xf3,0x34,0xe4,0xb9,0x9a,0xa2,0x65,0x73,0x48,0xaa,0x63,0x4f,0x5c,0xf2,0x60,0x61,0x9e,0xb1,0x73,0x42,0x95,0x80,0xcc,0x7e,0x19 }, { 0xa1,0x24,0xc9,0xf3,0x13,0x29,0x11,0x9c,0x2c,0x8c,0x27,0x12,0x7c,0x35,0xc4,0x71,0x6b,0x9c,0xa2,0x97,0x9a,0x99,0xf8,0xce,0x2a,0xf4,0xa4,0x2e,0x19,0xd6,0x5e,0x7b }, { 0x7e,0x6f,0xa1,0xca,0x0d,0x7b,0xd7,0x7e,0x3c,0x19,0x8f,0x01,0xe2,0xf0,0xe8,0xd8,0xe4,0x00,0x7a,0x1c,0xdf,0xcd,0x1e,0xc5,0x0b,0x78,0x32,0x06,0x76,0xbf,0xdb,0x68 }, { 0x2c,0x5a,0x55,0xfe,0x30,0xa1,0x81,0x10,0xe4,0x3d,0xad,0x52,0x02,0x75,0x0d,0xe0,0x2c,0xdd,0x8c,0x14,0x6d,0xab,0x9c,0x40,0xb0,0xdc,0x60,0x26,0xd3,0x64,0x6e,0x28 }, { 0x84,0x7c,0x0d,0x2c,0x37,0x52,0x34,0xf3,0x65,0xe6,0x60,0x95,0x51,0x87,0xa3,0x73,0x5a,0x0f,0x76,0x13,0xd1,0x60,0x9d,0x3a,0x6a,0x4d,0x8c,0x53,0xae,0xaa,0x5a,0x22 }, tinyssh-20180201/crypto-tests/precomp_curve25519.data.py000066400000000000000000000036771322704306500227120ustar00rootroot00000000000000import binascii P = 2 ** 255 - 19 A = 486662 def expmod(b, e, m): if e == 0: return 1 t = expmod(b, e / 2, m) ** 2 % m if e & 1: t = (t * b) % m return t def inv(x): return expmod(x, P - 2, P) # Addition and doubling formulas taken from Appendix D of "Curve25519: # new Diffie-Hellman speed records". def add((xn,zn), (xm,zm), (xd,zd)): x = 4 * (xm * xn - zm * zn) ** 2 * zd z = 4 * (xm * zn - zm * xn) ** 2 * xd return (x % P, z % P) def double((xn,zn)): x = (xn ** 2 - zn ** 2) ** 2 z = 4 * xn * zn * (xn ** 2 + A * xn * zn + zn ** 2) return (x % P, z % P) def curve25519(n, base): one = (base,1) two = double(one) # f(m) evaluates to a tuple containing the mth multiple and the # (m+1)th multiple of base. def f(m): if m == 1: return (one, two) (pm, pm1) = f(m / 2) if (m & 1): return (add(pm, pm1, one), double(pm1)) return (double(pm), add(pm, pm1, one)) ((x,z), _) = f(n) return (x * inv(z)) % P def unpack(s): if len(s) != 32: raise ValueError('Invalid Curve25519 argument') return sum(ord(s[i]) << (8 * i) for i in range(32)) def pack(n): return ''.join([chr((n >> (8 * i)) & 255) for i in range(32)]) def clamp(n): n &= ~7 n &= ~(128 << 8 * 31) n |= 64 << 8 * 31 return n def crypto_scalarmult_curve25519(n, p): n = clamp(unpack(n)) p = unpack(p) return pack(curve25519(n, p)) def crypto_scalarmult_curve25519_base(n): n = clamp(unpack(n)) return pack(curve25519(n, 9)) f = open("precomp.txt") def l(line): l = "" for i in range(32): if i == 31: l += "0x%s%s" % (line[2*i], line[2*i+1]) else: l += "0x%s%s," % (line[2*i], line[2*i+1]) return l while True: line=f.readline() if len(line) == 0: f.close() break print "{", l(binascii.hexlify(crypto_scalarmult_curve25519_base(binascii.unhexlify(line[0:-1])))), "}," tinyssh-20180201/crypto-tests/precomp_ed25519.data000066400000000000000000005340301322704306500215170ustar00rootroot00000000000000{ 0x3b,0x6a,0x27,0xbc,0xce,0xb6,0xa4,0x2d,0x62,0xa3,0xa8,0xd0,0x2a,0x6f,0x0d,0x73,0x65,0x32,0x15,0x77,0x1d,0xe2,0x43,0xa6,0x3a,0xc0,0x48,0xa1,0x8b,0x59,0xda,0x29 }, { 0x4c,0xb5,0xab,0xf6,0xad,0x79,0xfb,0xf5,0xab,0xbc,0xca,0xfc,0xc2,0x69,0xd8,0x5c,0xd2,0x65,0x1e,0xd4,0xb8,0x85,0xb5,0x86,0x9f,0x24,0x1a,0xed,0xf0,0xa5,0xba,0x29 }, { 0x74,0x22,0xb9,0x88,0x75,0x98,0x06,0x8e,0x32,0xc4,0x44,0x8a,0x94,0x9a,0xdb,0x29,0x0d,0x0f,0x4e,0x35,0xb9,0xe0,0x1b,0x0e,0xe5,0xf1,0xa1,0xe6,0x00,0xfe,0x26,0x74 }, { 0xf3,0x81,0x62,0x6e,0x41,0xe7,0x02,0x7e,0xa4,0x31,0xbf,0xe3,0x00,0x9e,0x94,0xbd,0xd2,0x5a,0x74,0x6b,0xee,0xc4,0x68,0x94,0x8d,0x6c,0x3c,0x7c,0x5d,0xc9,0xa5,0x4b }, { 0xfd,0x50,0xb8,0xe3,0xb1,0x44,0xea,0x24,0x4f,0xbf,0x77,0x37,0xf5,0x50,0xbc,0x8d,0xd0,0xc2,0x65,0x0b,0xbc,0x1a,0xad,0xa8,0x33,0xca,0x17,0xff,0x8d,0xbf,0x32,0x9b }, { 0x3e,0xe2,0xa8,0xa7,0x28,0x3c,0xb2,0xfd,0x72,0x89,0x43,0xda,0xa1,0x27,0xef,0x09,0xe4,0x83,0x07,0x1a,0x8b,0x4b,0xc6,0x99,0xba,0x45,0x22,0xf0,0x9b,0x14,0xcf,0xde }, { 0xbe,0x3b,0x4f,0x95,0xd1,0xd8,0x75,0xd7,0x1d,0xd2,0xfa,0xcf,0x6c,0x5e,0x4d,0xa5,0x7c,0x1a,0x2c,0x79,0xde,0xad,0x9e,0x1f,0xc5,0xc3,0xb5,0xc1,0xde,0x54,0xc0,0x22 }, { 0x67,0x54,0x03,0x04,0x32,0x88,0xcc,0x7c,0xd1,0x10,0xc6,0xa4,0xa7,0x0e,0xca,0x13,0x7b,0x6e,0xba,0x5b,0xb8,0xcf,0xc0,0x08,0xa4,0x0c,0xdf,0xb3,0xe4,0x53,0xc2,0x9e }, { 0xb9,0x2a,0xaa,0x7c,0x8d,0xb2,0x11,0x39,0xaa,0x7d,0x7e,0xc0,0xda,0xa8,0xd7,0xe6,0x25,0x19,0xd6,0xee,0x46,0xa4,0x53,0x4e,0x07,0x64,0x4c,0x68,0x3a,0x00,0x83,0x91 }, { 0x17,0x26,0x06,0x22,0x77,0xd7,0xb6,0x81,0x78,0x7e,0x95,0xda,0x60,0xff,0xf0,0x32,0xd2,0xe9,0x8c,0xf3,0xd4,0x04,0xea,0xb2,0x82,0x1c,0x49,0x80,0x6e,0x67,0x9f,0x3e }, { 0xc0,0x5b,0x7b,0xee,0x64,0xc8,0x4c,0x7a,0xd8,0x0e,0x45,0xac,0x14,0xe9,0x8b,0x3e,0x3e,0x64,0x50,0x29,0x02,0x40,0x1d,0xc4,0x91,0x12,0x6d,0xaf,0xc1,0xe9,0x38,0x61 }, { 0xd7,0xdd,0xc4,0xe7,0x91,0x66,0x90,0xdc,0xd6,0x6f,0xc9,0x62,0x93,0xbd,0x3d,0x39,0x98,0x79,0xac,0x73,0x6b,0x7d,0x1b,0x86,0xcf,0x45,0xa8,0x44,0x30,0x96,0x65,0xbd }, { 0xc0,0xdd,0x26,0x97,0xc4,0xa1,0x7d,0xf8,0x3f,0x36,0xa9,0x97,0x99,0xdd,0x38,0x49,0x58,0x72,0x84,0x90,0xfa,0xc7,0xd1,0x31,0x82,0x05,0x2d,0x88,0x4e,0x6e,0x42,0x84 }, { 0xed,0x85,0xe2,0x1f,0x75,0x15,0x5c,0x85,0x01,0x51,0xa8,0x61,0xd5,0x7d,0x62,0xe6,0x56,0x98,0x9a,0x3d,0x2d,0x6c,0x3e,0xe1,0xfc,0x2c,0xe9,0x26,0x71,0x6a,0x20,0xf4 }, { 0xbe,0x1f,0xb9,0x96,0xbe,0x80,0xe7,0xbd,0x2b,0x78,0xda,0x15,0x7a,0x22,0x4a,0xb5,0x23,0x20,0xcc,0xa0,0x2a,0xe5,0xa0,0x2e,0xfb,0xb4,0x19,0x17,0x9b,0xe9,0x28,0xf9 }, { 0x56,0x99,0xa9,0xce,0xf8,0x70,0xe2,0xff,0x0c,0x02,0x2b,0x67,0x68,0x9c,0xc7,0x6f,0xe0,0x5e,0x90,0x91,0x5c,0x5f,0x01,0x43,0xf9,0x35,0x6c,0xa7,0x2f,0x4a,0xff,0x99 }, { 0x79,0xf6,0xd7,0xbe,0x8a,0x5a,0xc1,0xa6,0xff,0x6a,0xcc,0x51,0xbb,0xa8,0x0c,0x52,0x39,0x96,0x27,0x60,0x23,0x06,0x72,0x82,0x93,0xe7,0x59,0x5f,0x7e,0xcf,0x30,0x7f }, { 0xec,0x9c,0x1a,0xce,0xd4,0xc1,0x81,0xc9,0xf7,0x52,0x6b,0x68,0xab,0x6c,0x7d,0x44,0xdd,0x22,0xee,0x94,0x2d,0xb1,0x1b,0xd0,0xf8,0xb3,0x02,0x5f,0xcd,0xc5,0x1f,0x79 }, { 0x1c,0x3c,0x06,0x41,0x2d,0xc1,0x8c,0xbb,0xa8,0x79,0xb8,0xd4,0x73,0xc5,0x0f,0xb4,0x19,0xdb,0x5c,0xa9,0xc3,0x88,0x2f,0x2a,0x1d,0xc4,0x9e,0xbc,0x8d,0x9e,0x43,0x54 }, { 0x04,0x54,0xa2,0x0a,0x28,0xf9,0x2e,0xd2,0x44,0xb7,0x36,0x72,0xce,0x85,0x67,0x0a,0x89,0xee,0x77,0x25,0x54,0x72,0xe0,0x85,0x10,0x42,0xbd,0x9f,0x3d,0xbb,0x7d,0xe8 }, { 0x23,0xd6,0x93,0x5a,0x75,0xf6,0x99,0xc0,0x0c,0x47,0x32,0xd8,0x0a,0xcd,0x3b,0x2d,0xfa,0x03,0x6e,0x8c,0x46,0x36,0x30,0xd3,0x4c,0x5a,0xa8,0x4d,0x57,0x67,0x2d,0xd6 }, { 0x85,0xe0,0x32,0x88,0x6c,0xfc,0xf8,0xaf,0xae,0x03,0xb1,0x81,0x22,0x8e,0x23,0x9a,0x92,0x3b,0x8b,0x63,0xa2,0x87,0x89,0x4d,0xad,0x4e,0x0b,0x4a,0xce,0x18,0x7d,0x99 }, { 0x3c,0xc6,0xd8,0xb8,0x0f,0x0b,0x78,0xa7,0x5f,0x2b,0xad,0x3b,0x90,0x7c,0x53,0xb0,0xb0,0x48,0x19,0x95,0x14,0x39,0x93,0x55,0xe5,0xf0,0x85,0x34,0x56,0xe8,0xb6,0xd6 }, { 0x0d,0xdf,0x68,0xb9,0xa7,0x93,0x1d,0x32,0x5b,0x36,0xd0,0xa1,0x5e,0x2b,0x04,0xc8,0x37,0x9a,0x76,0xf4,0x7d,0x1d,0x4a,0xaf,0xcd,0xb4,0xeb,0xbe,0x88,0x4b,0x19,0x66 }, { 0xf0,0xea,0xa2,0x8b,0xf5,0x4f,0x04,0x0f,0x73,0xd8,0x42,0xd0,0x1f,0xfb,0xa1,0x42,0xe2,0xdd,0x28,0x01,0x59,0xbd,0x82,0x00,0x9a,0x42,0xbf,0xbb,0x5d,0xa7,0x2d,0x62 }, { 0xbd,0xcd,0x64,0xae,0x7a,0xdd,0xa4,0xfd,0x24,0x0d,0xa5,0x00,0x16,0xc3,0xf5,0x19,0x7d,0x5e,0xa9,0xfa,0x28,0xf5,0x66,0x47,0xff,0x9f,0x79,0x94,0xe2,0xd7,0x5b,0x0c }, { 0xe4,0xa6,0x30,0x99,0x3b,0xf3,0xae,0x0d,0x33,0x35,0x6b,0x13,0x88,0x19,0xd8,0x70,0xc5,0x47,0x68,0x25,0xdb,0x39,0x14,0xc9,0xde,0xd3,0x92,0xcf,0x44,0x3b,0xbc,0x6f }, { 0x7f,0xf7,0xbc,0x16,0x71,0x02,0x0f,0x3a,0x07,0xe7,0x80,0xfb,0x39,0x9d,0x8a,0x68,0x83,0x4a,0x48,0xfb,0xf6,0x22,0x65,0x50,0x1b,0xf8,0x80,0x82,0x79,0x7b,0x91,0x3f }, { 0xce,0x97,0xbe,0xb9,0x0a,0xa1,0x1a,0xd3,0xe0,0x0c,0x6e,0xed,0x4f,0xb2,0x0e,0x8b,0x8a,0xb7,0xee,0x34,0x12,0x97,0x97,0xe2,0x20,0x3f,0x93,0x1e,0x17,0xd1,0xbd,0x68 }, { 0x00,0x9d,0x83,0x49,0x63,0x7c,0xa9,0x8e,0xb1,0xa8,0xb9,0x5a,0x8b,0x94,0x86,0xe9,0x88,0x2c,0x76,0x64,0x3c,0xc1,0xd7,0xd1,0xbb,0xd6,0x3d,0x83,0xf3,0xfc,0x6e,0xfc }, { 0x8c,0x70,0x38,0x3f,0x69,0x15,0x85,0x4b,0xf2,0x89,0x59,0xc7,0x73,0x81,0xba,0x6a,0xd4,0xb6,0xed,0x44,0x7e,0x04,0x64,0x56,0x95,0x48,0x4b,0x47,0xc6,0xa1,0xa9,0xf9 }, { 0x58,0x7d,0x18,0xf6,0xa4,0xc2,0x63,0xef,0xf8,0x2c,0x45,0xe9,0x43,0xd9,0xd6,0x4c,0x0e,0x6a,0x47,0x33,0x22,0x5d,0xb6,0xc1,0xce,0x50,0xc3,0x5c,0x65,0x10,0xc4,0x2f }, { 0x05,0xe5,0x0a,0xf9,0x1e,0xa6,0x0c,0xa5,0xb6,0xd3,0xa4,0xe8,0x2a,0x83,0x2a,0x42,0x6b,0x2d,0x9f,0x82,0xe0,0x53,0x58,0x9a,0x86,0x2f,0xd2,0x36,0xbc,0x69,0xe5,0xb9 }, { 0xf2,0x3c,0xbb,0x8f,0x25,0xda,0xd2,0x32,0xb6,0x70,0xb5,0x07,0xe2,0xe5,0x6b,0x14,0xc5,0x1d,0x16,0x20,0x7c,0xfb,0x62,0xf1,0x36,0xe5,0x71,0x71,0x08,0xcd,0x03,0x96 }, { 0x4c,0x96,0xab,0xd4,0xaa,0xa9,0x7e,0xe9,0x75,0xa7,0x64,0xc4,0x62,0xea,0x36,0x46,0x7f,0x75,0x4e,0x67,0x91,0x21,0x31,0x66,0xe4,0x69,0x28,0x2f,0x91,0xc9,0xe1,0xde }, { 0x30,0x16,0x16,0xaa,0xb9,0xf9,0x7e,0x93,0x9a,0x17,0x38,0x7e,0xe7,0x20,0x29,0x66,0xa9,0xcc,0x09,0x5b,0xa7,0x7c,0x2f,0xa2,0x68,0xb0,0x3d,0xd8,0xf2,0xf1,0x61,0x46 }, { 0xea,0x97,0x2d,0xbb,0x00,0x34,0x7f,0x27,0x0b,0x96,0xda,0xf9,0xef,0xe3,0x24,0x39,0x17,0x67,0x56,0xea,0xce,0xea,0x98,0x56,0x63,0x6f,0x52,0xf3,0xc0,0xa7,0x54,0x9e }, { 0xbf,0x31,0x82,0x53,0x80,0x46,0xc4,0x12,0xe7,0xc2,0x2e,0xd7,0x58,0x15,0xde,0x04,0x99,0x3e,0x7a,0x51,0x38,0x78,0x18,0x6b,0x79,0xfe,0xdc,0x7a,0x2d,0xd3,0x61,0x32 }, { 0x67,0x60,0xcd,0x63,0xb9,0x5f,0x5b,0xfa,0x0a,0x84,0x81,0xe2,0x33,0x24,0xb1,0x50,0x4b,0x1d,0x9a,0xad,0xaa,0xa3,0x6e,0x67,0x98,0xe6,0xff,0x64,0xa6,0x33,0xb8,0x68 }, { 0x96,0x07,0x91,0xca,0x5b,0x52,0x6e,0xd8,0x01,0x20,0x21,0x24,0x7a,0xed,0xe9,0xb2,0x3e,0x4f,0xba,0xc7,0x39,0xb2,0xfe,0xe8,0x48,0x74,0x91,0xc2,0x8d,0xef,0xe1,0xbf }, { 0xce,0x58,0xa1,0x36,0x1d,0xef,0x2b,0x6d,0x9e,0xc9,0x07,0x19,0x6f,0x0d,0xda,0xe3,0x08,0xf2,0x0e,0xe3,0x3f,0x68,0x51,0xac,0x86,0xa1,0x46,0x03,0x89,0xb1,0x2f,0x62 }, { 0x43,0x70,0x82,0x85,0x3d,0x70,0x6c,0xaf,0x45,0xb3,0x17,0x8b,0x60,0x85,0x52,0x18,0x24,0x0b,0xdb,0xa3,0x91,0xa9,0x44,0x96,0x74,0x3b,0xa3,0xae,0x21,0xcb,0x76,0x9c }, { 0x9a,0x88,0xed,0x92,0xeb,0x82,0xa9,0xd6,0x08,0x9c,0x72,0x30,0xf4,0x27,0xdc,0x67,0x58,0x00,0xef,0xb8,0xce,0x65,0xeb,0xcd,0xca,0xbd,0xf1,0x7a,0x15,0xdd,0x58,0x8d }, { 0xb6,0xcd,0xa7,0xc2,0x2f,0x16,0xc2,0x01,0x3d,0xf7,0xf1,0x95,0xd6,0x6d,0xbb,0x22,0xc5,0xe0,0x24,0x05,0x3d,0x6c,0xc7,0x15,0x54,0xb3,0x1d,0x9f,0xd1,0xdd,0x3f,0x1b }, { 0xce,0x1c,0x43,0x05,0xd4,0x62,0x80,0xbb,0xbd,0x01,0x04,0x88,0x9d,0xc3,0x89,0x21,0x6c,0x74,0x01,0x10,0x86,0xeb,0x66,0x71,0x7a,0xa0,0xba,0xc1,0xbc,0x25,0x89,0x21 }, { 0x89,0xae,0x5b,0xf7,0x81,0x39,0x3f,0xfd,0xc2,0xe8,0x89,0xcb,0xaa,0xc1,0xad,0xd5,0x1b,0xde,0x8a,0xbe,0xbb,0x60,0x9e,0xdd,0x9f,0x27,0x62,0x5c,0xe2,0x47,0xb8,0x4f }, { 0xdb,0x70,0x0d,0xc4,0xee,0xcf,0x15,0xab,0x0d,0xa2,0xc7,0xd2,0x5a,0xc2,0x04,0xd8,0x4f,0x08,0x15,0x54,0x53,0xb1,0x2a,0xb5,0x3b,0xf4,0xab,0x86,0x76,0x7b,0x90,0x1f }, { 0x28,0x99,0x0a,0xa3,0xb0,0x64,0x83,0x0f,0x5d,0x82,0x15,0xf1,0xcf,0xb6,0x80,0xcd,0x60,0xad,0x4c,0x75,0x99,0xc1,0x59,0x1c,0x19,0x59,0xa2,0x4f,0x86,0x06,0xec,0xb6 }, { 0x2c,0x70,0xea,0x61,0x4b,0x31,0x71,0x8f,0xc7,0x7c,0xa8,0xcd,0xf4,0x7c,0xb9,0xeb,0x74,0xa2,0xce,0x93,0xf7,0xd7,0x0f,0xf7,0x43,0x8a,0x58,0x24,0xa5,0xc9,0xa6,0xc7 }, { 0x4c,0x69,0xa9,0xb6,0x69,0x4f,0x6d,0xe1,0x3b,0x0d,0x8d,0xb9,0xa0,0x62,0xdc,0xf8,0x96,0xe5,0xdb,0xf2,0xf0,0x6a,0x18,0x7b,0x33,0xd8,0x4d,0xaf,0x69,0x78,0x8b,0xa2 }, { 0xd5,0xbc,0x8e,0x60,0x06,0xef,0xd1,0x6e,0x53,0x35,0x14,0x9e,0x92,0xc0,0xb2,0x19,0x99,0x5b,0x13,0xce,0xb4,0x8b,0xbd,0xea,0x56,0x76,0xbf,0x11,0xf2,0x14,0xef,0xe4 }, { 0x07,0xfb,0x9f,0xb5,0x33,0xc5,0x38,0x7c,0xcf,0xe7,0xfc,0x05,0xee,0xd1,0x25,0x02,0x93,0xf0,0xc4,0x71,0x9f,0x74,0xfe,0xd7,0x89,0x81,0x04,0xc8,0x2f,0xfd,0x0f,0x11 }, { 0xbd,0xab,0xc0,0xc0,0x41,0x67,0x52,0x02,0xa9,0x1c,0x9f,0x40,0x27,0xa1,0x55,0x75,0xbe,0x40,0x8e,0x14,0x83,0xa8,0xf0,0x95,0x74,0x94,0x3c,0xee,0x4c,0x91,0xa5,0x32 }, { 0x4b,0x9a,0x5e,0x97,0x20,0x14,0x4a,0x81,0x9a,0xaf,0xd6,0x35,0x04,0x92,0x23,0xdf,0xc8,0x34,0x66,0xc9,0x59,0x60,0x71,0xba,0x22,0x87,0xb4,0x47,0x52,0xdc,0xe7,0xc1 }, { 0xba,0x02,0x95,0xf0,0xe9,0xbb,0x81,0x19,0x06,0xf2,0x2e,0xf8,0x19,0x9c,0xad,0xd1,0x82,0x43,0x4d,0xe1,0x62,0x64,0x67,0x7b,0x11,0x94,0xca,0xc7,0xcb,0x11,0xb7,0x01 }, { 0x8d,0x0f,0x4d,0x43,0x87,0xca,0x66,0x01,0x8e,0xd5,0x16,0xdf,0xab,0x78,0xdb,0x0a,0x3e,0xa1,0xa0,0x90,0x7f,0xf9,0x27,0xd4,0x18,0x95,0x6c,0x21,0xad,0x67,0x92,0x60 }, { 0xe7,0x6e,0xae,0xc4,0x9e,0x4d,0x35,0x70,0x7c,0xab,0x5d,0x79,0x7e,0x94,0x08,0xf0,0xe8,0xbb,0x76,0x3b,0x1f,0x9b,0xab,0xea,0xb3,0x1c,0xbc,0x0a,0x59,0x51,0xd7,0x58 }, { 0xfa,0x16,0x0f,0x60,0xe8,0xe3,0x6b,0x1a,0xc3,0xfe,0x0b,0x14,0x46,0x35,0x2b,0x50,0x8a,0x7a,0xfc,0x30,0x83,0x21,0x67,0x52,0xbb,0xc3,0x35,0xc4,0xa8,0x02,0x4a,0x63 }, { 0xde,0x38,0x4b,0xe0,0x2d,0x57,0xc5,0xe2,0x47,0x9a,0xe6,0xbe,0xe9,0x36,0xc4,0x10,0xe5,0x0e,0x17,0x3b,0x30,0x67,0x04,0x3c,0xbf,0x21,0xaf,0xa0,0x0c,0xfb,0x83,0xc2 }, { 0x2e,0x5c,0xd3,0x5f,0xfb,0x2a,0xa2,0xab,0xe2,0x25,0x97,0xde,0x55,0x9b,0x25,0x9f,0xa2,0x1c,0x46,0x78,0xa2,0x11,0x07,0xa1,0xb4,0x39,0x4b,0x75,0xac,0xee,0xcd,0x85 }, { 0x77,0xcc,0xff,0x97,0x94,0x07,0x54,0x29,0x2d,0x8c,0x5d,0x57,0x7e,0x09,0xbe,0xfd,0x2b,0x1f,0x73,0x69,0x50,0x7a,0x33,0xe1,0xe6,0xcb,0x6a,0xaf,0x73,0x4e,0x4d,0x66 }, { 0x74,0xa3,0x0f,0x21,0x83,0xf6,0x75,0x04,0x21,0x80,0xc9,0x25,0x4d,0x82,0x55,0xa8,0x8a,0x47,0x2a,0x13,0x3d,0xdc,0xfb,0xd5,0xd2,0x04,0xdc,0xbb,0xd4,0x09,0x19,0xe4 }, { 0xcb,0x9f,0x80,0x6d,0xe1,0x3f,0x9e,0x5b,0xd2,0xc0,0x96,0x03,0x77,0x6c,0x68,0x5d,0x42,0x4b,0x6f,0x2d,0x2b,0x9f,0xe8,0xa4,0xce,0x77,0xae,0x2c,0xa9,0x87,0x1a,0x99 }, { 0x75,0x6d,0x27,0x80,0x2b,0x0b,0x77,0x82,0x2d,0x4a,0x0c,0x3a,0x5d,0xb5,0xcc,0xa3,0x47,0xec,0xf1,0xae,0xcb,0x46,0x90,0xfb,0xd3,0xc9,0x73,0x76,0x11,0xd2,0x9b,0x99 }, { 0x17,0xe1,0x27,0xd9,0xc1,0x9d,0x72,0xe9,0x6a,0xa0,0x5c,0x96,0xad,0xd3,0x00,0x38,0xab,0x76,0x67,0x83,0x6c,0xa8,0x1c,0xc8,0xae,0x65,0x25,0x9a,0xf1,0x75,0x5f,0xaf }, { 0x0b,0x46,0x1f,0x12,0x3c,0xc9,0xf6,0xab,0x13,0x28,0x98,0x11,0xae,0xdb,0x69,0xc2,0xb3,0x14,0x28,0xc1,0x7a,0xa6,0xa2,0x1a,0x43,0x5d,0x86,0x68,0xac,0x5d,0x6f,0x6c }, { 0x2f,0x27,0x11,0x5f,0xbb,0x7d,0xb9,0x64,0xe0,0x91,0xe1,0x34,0x8d,0xa4,0x17,0x4f,0xb8,0x31,0xa1,0x99,0x87,0xbb,0x33,0xdf,0xfd,0x59,0x87,0xca,0xeb,0x03,0x76,0x20 }, { 0xa8,0xf6,0x0f,0x84,0xd7,0xad,0x21,0xd2,0x34,0x49,0x21,0x0d,0x85,0xd6,0x4c,0x1e,0xf4,0x1e,0x84,0x5c,0x7b,0xaf,0x17,0xbe,0x5b,0x11,0x0f,0xf2,0xd9,0x97,0x33,0xd3 }, { 0x0f,0xae,0xee,0x87,0x09,0x71,0x04,0xac,0x44,0xd5,0x30,0x24,0x91,0x02,0xdb,0x77,0x1a,0x99,0xe7,0x53,0x7d,0xb0,0xdb,0x21,0x8b,0xbf,0xa7,0x43,0x5a,0x09,0x1f,0x9c }, { 0x8f,0x41,0xe9,0x78,0x71,0xd8,0x43,0xb5,0x18,0x6a,0x65,0xf4,0x8d,0x58,0x3b,0x7a,0xa4,0x14,0x75,0xf8,0xea,0x79,0xaa,0x2e,0x60,0x17,0xce,0xcd,0x8a,0x28,0x5b,0xc5 }, { 0x31,0xf5,0x0f,0x10,0xf0,0x31,0xc2,0x9f,0x37,0xd6,0x7b,0x70,0x12,0xcd,0xfa,0xea,0xf8,0xfc,0xe4,0x87,0xe0,0x2c,0xd2,0xfd,0xb9,0xc3,0xb4,0x62,0x03,0xdc,0x10,0xbd }, { 0x0e,0x3a,0x2c,0x39,0x2d,0xe5,0x23,0xac,0xa1,0x8b,0x5b,0x6d,0xce,0x39,0x45,0x26,0x8b,0x2f,0x35,0x52,0xe9,0x1f,0x24,0xda,0x7f,0xe5,0xc8,0xfd,0x39,0x71,0xec,0x63 }, { 0xca,0xc6,0x8a,0x54,0xdf,0x69,0xce,0x8f,0xa4,0x7c,0x4e,0x20,0x24,0x41,0xeb,0xb4,0xad,0xe8,0x2a,0x5a,0xe4,0xd4,0x51,0x78,0x7c,0x8b,0x1e,0x1b,0x8b,0xbe,0x1e,0xfb }, { 0xdf,0x0c,0xff,0x3d,0x63,0xac,0x46,0xa8,0x2d,0x32,0x01,0xcc,0xe6,0xae,0x6b,0x44,0x65,0x77,0x7d,0xe1,0x32,0xb9,0xf0,0xa2,0x7f,0xfc,0xfc,0xa5,0xe3,0x3a,0xcf,0x57 }, { 0xf1,0xbd,0x4a,0x24,0xcf,0xc9,0x6e,0xba,0x6e,0x6f,0xa5,0xba,0x1e,0x99,0xfc,0xd1,0x86,0x5c,0x54,0x94,0x3f,0x57,0xb3,0x86,0x24,0x72,0xb8,0xed,0xa6,0xc7,0x7f,0x15 }, { 0xf3,0x61,0x3e,0x26,0x44,0x4d,0x55,0xd8,0x33,0x63,0xd9,0xcb,0x3c,0x48,0xde,0xce,0x39,0xe3,0x3e,0x9a,0x62,0x9f,0x1d,0x12,0xaf,0x2a,0x6c,0xea,0x7d,0xac,0xbc,0x1c }, { 0x11,0x72,0x5b,0xc0,0xcb,0x40,0x18,0x55,0x80,0xe0,0xf1,0x77,0xd4,0xa2,0xab,0x48,0x71,0xba,0xfd,0x45,0x70,0x4e,0x24,0x13,0x38,0xd0,0xe1,0x28,0x7b,0xc4,0x9e,0x53 }, { 0x74,0x60,0xde,0x79,0x07,0x2c,0xb6,0x49,0xfb,0x2d,0xce,0xd8,0x1e,0xa4,0x05,0x62,0xc2,0xc2,0x7a,0x92,0x55,0x75,0x2e,0x96,0x96,0xd6,0x47,0xf4,0xec,0xde,0x77,0x69 }, { 0xc3,0xaf,0x95,0xa2,0xae,0x28,0x83,0x7f,0x54,0x00,0x8f,0x91,0xba,0xca,0x8e,0x6b,0x3c,0x3a,0x26,0xf7,0x9a,0x2d,0xf8,0xc8,0x71,0x0c,0xcc,0xea,0x6e,0x97,0x26,0x14 }, { 0x14,0x35,0xaa,0xfa,0x9f,0x5e,0xf3,0xe2,0xed,0xa8,0xd9,0x05,0x05,0x92,0xca,0x7c,0x62,0x8a,0x97,0xff,0x73,0xf8,0x4b,0xc3,0x76,0xfb,0x06,0x48,0xe9,0x7e,0xd0,0x2b }, { 0xfc,0x79,0x0d,0xa1,0x34,0xec,0x11,0xc7,0x14,0x93,0xf7,0x3a,0xdf,0xd8,0xa3,0x9a,0xbb,0x5e,0x99,0x24,0xe4,0xeb,0xe7,0x02,0xe6,0xba,0x19,0x94,0x01,0xac,0x4b,0xc3 }, { 0x97,0xf5,0x84,0xfd,0xc2,0x5b,0x70,0x04,0xd2,0x7a,0xbd,0x6b,0x77,0x5a,0x04,0x2f,0xa4,0x34,0xbb,0x47,0x71,0xf0,0xc2,0x8d,0x34,0x0b,0x5f,0x62,0xd4,0x23,0xf0,0x69 }, { 0xbf,0x9e,0xea,0xb2,0x02,0x90,0xa9,0xe8,0xc1,0xba,0x93,0x13,0xad,0x40,0x31,0xee,0xbf,0xa8,0xa5,0x01,0x89,0xe1,0xb2,0x30,0x68,0xbf,0xf1,0xae,0x1f,0xf1,0xce,0xfc }, { 0x23,0x31,0xc1,0xb2,0x62,0xb4,0x8b,0x38,0x2d,0x52,0x85,0x7d,0x5a,0xc3,0x63,0x06,0x7d,0x04,0xf7,0xcf,0x2b,0x1f,0xd6,0xc0,0xea,0xa6,0xff,0x1f,0xd1,0x9c,0xcc,0xe0 }, { 0xf5,0x7c,0x21,0xae,0x7a,0xfa,0xf3,0x0a,0x0f,0x40,0xaa,0x44,0xfa,0xbf,0xbd,0x86,0x6b,0x80,0x72,0x08,0x9b,0x6d,0x01,0x67,0x65,0x1f,0x72,0x70,0x8d,0x5f,0xf6,0xe3 }, { 0x87,0x96,0xc1,0x11,0x65,0x4e,0xe6,0x4e,0x1f,0xdf,0x53,0xe1,0x6c,0x13,0x44,0xb3,0x48,0x06,0xc1,0x38,0x2d,0xa1,0x5f,0x33,0x7f,0x3c,0x64,0x25,0xdd,0xc3,0xce,0x13 }, { 0xd4,0xff,0x85,0x02,0x45,0xb6,0x23,0x89,0xc5,0x0d,0x4b,0x0b,0xff,0xab,0x15,0x52,0x01,0x2a,0x2d,0x8b,0xbc,0x66,0x08,0x83,0x0b,0xbc,0x01,0x64,0xfd,0xb4,0x00,0x36 }, { 0x22,0xc1,0x09,0x17,0x5b,0xfc,0x07,0x93,0x06,0x44,0x7f,0x58,0x55,0x8d,0x1f,0xe5,0xbf,0x7e,0x3d,0x2a,0xa9,0x4c,0x9e,0x21,0xfd,0x75,0x9e,0x04,0x41,0xa4,0x57,0xf8 }, { 0x5d,0xc5,0xa0,0xb5,0xc7,0x05,0x0c,0x17,0xc8,0xe3,0x0b,0x0a,0xd6,0x99,0x6b,0x26,0x72,0x5a,0x59,0x50,0xba,0xb3,0xc1,0x25,0x4b,0xb4,0x24,0x64,0x36,0x7f,0x6e,0x54 }, { 0x6c,0x85,0x40,0x13,0x82,0xd7,0x4f,0x08,0x7a,0xff,0x63,0xfd,0x5f,0x63,0xe0,0x93,0x16,0xfe,0xd5,0xe9,0xf3,0x6d,0x9e,0x56,0x57,0x44,0xae,0xa8,0x05,0x74,0x25,0x77 }, { 0xdd,0xf5,0x19,0xcf,0x2e,0xba,0x50,0x28,0x3c,0xa8,0x96,0x80,0x1f,0x3a,0xe8,0x27,0xfc,0x9f,0xd6,0x74,0x2b,0x91,0xcd,0x16,0x56,0xca,0x4f,0x6a,0xf3,0x9b,0xa5,0x78 }, { 0x34,0x82,0xa3,0xe7,0xd2,0x07,0xab,0x29,0x75,0x45,0x9a,0xd0,0x1d,0xe2,0xf8,0xa1,0xe6,0x4a,0xba,0x0d,0x6a,0xaa,0xa6,0xc4,0xd0,0xe1,0x42,0xe4,0xd3,0x82,0xc6,0x82 }, { 0xc6,0xc4,0x7a,0xa5,0x3a,0x2b,0x6f,0x10,0xdf,0x5a,0xbb,0xf8,0x36,0x96,0x6f,0x91,0xfb,0xcd,0xf6,0x4f,0xdf,0x49,0x18,0x35,0xc6,0x3f,0x9b,0x1b,0x22,0xba,0xa5,0x2d }, { 0x41,0x36,0xd6,0xc8,0xd1,0xf4,0x5d,0x91,0xf0,0x58,0x80,0x8e,0xea,0x8d,0x4e,0x4a,0xfc,0x1e,0xfe,0xd1,0x1d,0xc9,0xeb,0x10,0x4d,0x2e,0x4b,0x54,0x65,0x19,0x20,0xab }, { 0x4e,0xb4,0x7e,0x1a,0x50,0xcb,0x32,0x39,0xe7,0x6b,0x0f,0x57,0x51,0xb9,0x04,0xf0,0xc2,0xdc,0xf6,0x43,0x66,0x08,0x64,0x83,0xfa,0x83,0x46,0xe8,0x58,0xd8,0x3d,0x8f }, { 0x15,0x85,0x60,0x7d,0xea,0xe2,0xb2,0x5d,0xe0,0x8d,0x7d,0x39,0x9c,0xa8,0x1b,0xab,0x4e,0xd7,0x0c,0x92,0xcb,0xea,0x41,0xe8,0x94,0x9a,0x19,0xbc,0x49,0x61,0x93,0xd0 }, { 0xf6,0x3f,0x34,0x5f,0x9b,0xd7,0xff,0x4e,0x9a,0xe9,0xa2,0x27,0x6b,0xb3,0xfc,0x1d,0xc5,0xed,0x4c,0xf0,0xeb,0xdd,0x1f,0x10,0xc1,0xb8,0x13,0x09,0xdd,0x43,0x87,0x30 }, { 0xa0,0x65,0x12,0x00,0x90,0x2b,0x38,0x56,0x9f,0xd7,0xdd,0xc9,0x16,0xe4,0x36,0xcf,0x67,0x67,0x25,0x0b,0x12,0xb5,0xda,0xee,0xa2,0x76,0xa7,0xb9,0x4c,0x7d,0x8e,0xd5 }, { 0x1d,0x2c,0xcc,0xd4,0x60,0x40,0x0d,0x82,0xe5,0x74,0x19,0xe7,0xe3,0x7f,0x20,0x67,0xf7,0x0b,0x69,0x0a,0xbf,0xe1,0x8e,0xd8,0x14,0xc0,0x6a,0x47,0xb8,0x48,0x62,0xe6 }, { 0xe2,0xfb,0xcc,0x64,0x5c,0x5f,0x04,0x31,0x54,0x76,0xef,0xac,0xab,0x32,0x52,0x86,0xb4,0x7b,0x45,0x45,0xf6,0x22,0x9d,0xb0,0x61,0xea,0xb4,0xe1,0xe8,0xfc,0xb9,0xbd }, { 0xb3,0xba,0x3d,0xa8,0x80,0x05,0x29,0xf8,0xb6,0xe9,0xd5,0xae,0x62,0xc9,0xb0,0x3a,0x0a,0x21,0x6e,0x94,0x2a,0x74,0x4f,0x84,0xb8,0x01,0x1d,0x4c,0xa0,0x68,0xe1,0xed }, { 0x2e,0x05,0x00,0x78,0xe0,0xd4,0xa6,0x2e,0x7f,0x53,0x4f,0xe3,0xb6,0x76,0x8d,0x2a,0xe4,0xf3,0x1d,0x43,0xb4,0xa5,0xb0,0x76,0x59,0x59,0xa6,0x24,0xb7,0x8a,0x0d,0x8f }, { 0x18,0x92,0x03,0x33,0x1c,0x0f,0x4d,0x6c,0x7b,0x01,0x2e,0x5f,0x3a,0x27,0x8b,0x7e,0x74,0x0e,0x15,0x04,0x5c,0xb7,0xdb,0xbd,0xcc,0x56,0x64,0xc2,0x81,0x5d,0x0c,0xc3 }, { 0xac,0xd0,0xb7,0x32,0x68,0x3b,0xb4,0x20,0x6b,0xe3,0x6a,0x5c,0x55,0x4a,0xdb,0x2b,0xc8,0x73,0x89,0x08,0xee,0xc8,0xea,0x7a,0x57,0x83,0xdf,0x5b,0x60,0xb9,0x19,0xad }, { 0xb2,0x7b,0x4b,0x50,0xe5,0x4e,0x0b,0x83,0x15,0x57,0xe0,0xd4,0x2d,0x6e,0xcb,0xc1,0x41,0x71,0x5a,0x01,0x26,0x87,0xe5,0xa4,0xb2,0xf1,0x86,0xa7,0xe8,0x10,0x87,0xc4 }, { 0x23,0xf5,0xd4,0x49,0x43,0x0a,0x2e,0xec,0xab,0x58,0x30,0x78,0xc1,0x22,0xaa,0xad,0xef,0xa7,0x1d,0xfb,0xca,0x92,0x46,0xa4,0xd8,0x30,0xd0,0x63,0xa3,0x04,0xa5,0xe1 }, { 0x76,0xb5,0x78,0x1f,0xd4,0x7d,0xc7,0x88,0xc2,0xe3,0xd1,0x37,0x5f,0x50,0x46,0x8a,0x3e,0x4f,0x1e,0xbb,0xf4,0xa3,0x36,0xcd,0x47,0x64,0xf5,0x03,0xc9,0xee,0xc9,0xa7 }, { 0xd4,0xcc,0x5c,0x0a,0xc7,0xf1,0x3c,0xc5,0x8f,0xc5,0x69,0x8d,0x2f,0xfe,0xb8,0xe7,0x4b,0x43,0x97,0xc5,0x93,0xa1,0x67,0xbb,0x0b,0x9c,0x0e,0xdc,0x6a,0x2a,0x1a,0x9c }, { 0x02,0xce,0xa6,0x63,0xc8,0xa8,0xad,0xb4,0x0b,0x5d,0xe1,0x53,0xaa,0x0b,0xbb,0x37,0xf8,0xd3,0x28,0x5b,0x9b,0x75,0x2e,0x81,0x8e,0xd2,0x3e,0xc9,0x00,0x32,0x55,0xb2 }, { 0x31,0xef,0xf0,0x79,0xdd,0x5c,0x4e,0xee,0xd0,0xe1,0x01,0x80,0x2f,0x75,0xdb,0x7c,0xf3,0x4e,0xec,0x8e,0x7d,0x1d,0xe2,0x81,0x18,0xf7,0x6a,0xf2,0xc9,0x31,0x20,0xb4 }, { 0x28,0x88,0x9a,0x19,0x78,0x02,0x58,0x93,0x8f,0xf6,0x4e,0x57,0x0a,0x43,0x0c,0x09,0x1e,0x6e,0x39,0xef,0xa8,0x22,0x5c,0x10,0x82,0x4f,0x09,0xfe,0xb3,0xbc,0x1d,0xf5 }, { 0x42,0xea,0x73,0x11,0xde,0xbf,0xe3,0x37,0x57,0x9b,0x38,0x3d,0x32,0xbc,0x80,0x88,0x09,0xbd,0xfd,0x76,0x64,0x9a,0x80,0x8d,0x18,0x71,0x1f,0x5e,0x3f,0xf1,0xc0,0x02 }, { 0x6f,0x21,0xaa,0x76,0xe2,0x27,0xd9,0xca,0xa4,0x73,0x66,0x64,0x08,0x76,0x9b,0x2d,0xed,0xe7,0xf7,0x27,0x03,0xd7,0x72,0xe1,0x01,0xc2,0x22,0xcb,0xc0,0x33,0xe3,0x8c }, { 0x7b,0x01,0x54,0xbe,0x7e,0x51,0xc4,0x08,0xb3,0xce,0x40,0x35,0x5f,0xc5,0x49,0xbf,0x2f,0xef,0xd6,0xb6,0xed,0x14,0xf5,0x3c,0xfe,0x75,0xb6,0x49,0x89,0x69,0x26,0x69 }, { 0x37,0xb2,0x26,0x5b,0x15,0x05,0x7d,0xd0,0xa0,0xb7,0x5f,0x93,0x6a,0x42,0x69,0xed,0x50,0x4f,0x0f,0x3b,0x5b,0x2b,0xda,0x48,0x2a,0x5b,0xd7,0x8d,0x63,0x23,0x00,0x4c }, { 0x29,0x83,0xb0,0xcd,0xe4,0x37,0xe5,0xb4,0x93,0xfe,0x60,0xc2,0xa7,0xb6,0xfc,0xfa,0x01,0x16,0xf1,0x06,0xc3,0x96,0xe8,0x18,0x4e,0xad,0x14,0xb7,0x9d,0x87,0x39,0x06 }, { 0xfd,0xe7,0x8a,0x9d,0xd4,0x42,0xd0,0xa2,0xe4,0x4e,0x03,0x76,0x33,0x61,0x2e,0xf2,0xf1,0x9c,0x6e,0x83,0x92,0x62,0x15,0xb6,0xc1,0xed,0xcc,0x4f,0xd1,0x56,0xa5,0xb4 }, { 0x2e,0xd4,0x31,0xc6,0x64,0x27,0x47,0xf5,0x07,0x85,0x46,0x35,0xb1,0x5c,0x08,0x8b,0x73,0xe0,0x92,0xc4,0x02,0xa5,0xeb,0xee,0x6a,0x65,0xdd,0xe5,0x43,0x6c,0x9e,0x80 }, { 0xb1,0x3e,0xb1,0x78,0x88,0x3b,0x05,0x6d,0x01,0x01,0x6f,0xb8,0x44,0xfa,0x45,0x9b,0xec,0x2b,0xe0,0xf3,0x15,0xe1,0xeb,0xa6,0x64,0xad,0x54,0x4d,0x3a,0x18,0x03,0x12 }, { 0x98,0x13,0xd1,0xf3,0x4a,0x86,0xc0,0xd6,0xa6,0xa7,0x7f,0xc9,0x96,0x29,0xf7,0x57,0x18,0xf1,0x38,0x77,0xe1,0xfd,0xcf,0xb8,0xa7,0xb5,0xd1,0x95,0x60,0x9b,0xfe,0x0d }, { 0x00,0xd4,0x33,0xd0,0xeb,0x88,0x9b,0xe0,0x78,0x2d,0x74,0x23,0xaf,0x83,0x0b,0xd6,0x50,0xff,0xe3,0x78,0x59,0x22,0x1e,0x1e,0xd8,0xdc,0x33,0x89,0x4e,0x84,0x22,0x3a }, { 0x20,0x5a,0x3b,0xf1,0x05,0xc2,0x3d,0x3c,0xc3,0xeb,0x1c,0xfd,0xf3,0xe5,0x33,0x9d,0x01,0x05,0xfd,0xc9,0x2e,0x98,0x51,0x13,0xfc,0xa8,0x33,0x46,0x94,0x53,0x57,0x2b }, { 0x18,0x63,0x4b,0x51,0x66,0x35,0xec,0x2e,0xf3,0x0a,0xdc,0xe3,0xd6,0x30,0x7f,0x75,0x0f,0x98,0xb0,0x57,0xc0,0x76,0x6b,0xcb,0x37,0xef,0x1c,0xa1,0xfd,0xe3,0x82,0x09 }, { 0xab,0x63,0xd5,0x39,0x83,0x2f,0x76,0x7c,0xdf,0x38,0x08,0xc3,0x0f,0xb0,0x1e,0xfe,0x54,0xb7,0x23,0x20,0x5d,0x8a,0x79,0xef,0xfa,0x61,0x6f,0x80,0xa5,0x04,0x6c,0x61 }, { 0x1d,0xd2,0x2b,0xef,0x07,0x6d,0x5b,0xb0,0x98,0x10,0x9f,0x38,0x52,0x61,0x34,0x7e,0xc7,0xba,0x3f,0x4b,0xe1,0x93,0x8d,0xf8,0x17,0x3b,0x64,0x65,0xed,0x7c,0xe1,0xa5 }, { 0x4b,0xeb,0x9f,0x24,0x34,0x78,0x1e,0x73,0x21,0xd7,0x1e,0xd9,0xa1,0x50,0x04,0x20,0x5f,0xe9,0x91,0xb5,0x82,0x01,0xc8,0xd8,0x20,0x09,0x37,0x23,0xb4,0x45,0xba,0x22 }, { 0xc1,0x21,0x3e,0xbf,0x79,0x85,0x88,0x20,0xbf,0x3a,0x8f,0x68,0x79,0x23,0xed,0x4b,0xd5,0x66,0x83,0x40,0x0e,0x4c,0xad,0x0c,0xb3,0x95,0x31,0x42,0xa7,0x51,0x93,0x29 }, { 0x25,0x06,0xc7,0x05,0xdb,0x6b,0xa0,0x54,0x55,0xc3,0x13,0x56,0x51,0x5f,0x12,0x4f,0xb1,0x88,0xc6,0xfb,0xf1,0x0b,0x4f,0x79,0x21,0x6b,0x7b,0xfa,0x6c,0x1a,0xca,0x60 }, { 0x84,0xfc,0x57,0x2f,0xcc,0x0b,0xac,0x00,0x96,0x25,0xcf,0xd9,0xb2,0x4b,0x92,0x8f,0xca,0x32,0xe6,0x66,0x4a,0xe3,0x1f,0x4d,0xc5,0x1e,0xac,0xe1,0x1d,0x60,0xb0,0xf4 }, { 0x2e,0x71,0x23,0x40,0x9b,0xef,0x16,0x4a,0x49,0xef,0xf1,0x97,0xf5,0x27,0xcb,0x11,0x6e,0x16,0x6c,0x26,0xe2,0x3e,0xcd,0x68,0x47,0xf7,0x16,0x87,0x70,0x2c,0x7f,0x3a }, { 0x25,0x43,0x5c,0x75,0xfc,0x17,0x02,0xe0,0x46,0x85,0xf0,0xfc,0xd8,0x9a,0xee,0x86,0xb1,0xf5,0x06,0x95,0xbd,0xae,0xd9,0x1f,0x56,0x34,0x56,0x05,0x9f,0xce,0x0b,0xe3 }, { 0xa3,0xda,0x23,0xed,0x2e,0x2a,0x52,0xf5,0xc9,0xfe,0x19,0x67,0xb1,0x06,0x5d,0xa5,0x00,0xee,0x47,0x8e,0xa4,0x45,0x05,0x6c,0xba,0xba,0xc2,0x6a,0xe1,0xb7,0xe7,0xed }, { 0xe4,0x02,0x64,0xcc,0x51,0x80,0x5f,0x31,0xf3,0x9d,0x1f,0x15,0x8d,0x72,0xd0,0x03,0xe2,0x5b,0x9e,0x4e,0xf6,0x5e,0x50,0x15,0x4f,0xf9,0xb4,0x40,0x62,0x89,0xca,0xee }, { 0xa6,0x1d,0x1e,0xbf,0x98,0x69,0x25,0x8e,0xba,0xdc,0x0f,0x01,0x42,0x3c,0x71,0xa8,0x85,0xd9,0xa2,0xf0,0xa7,0x4f,0x26,0xce,0xda,0x28,0x32,0x25,0xdd,0xec,0xba,0x4e }, { 0x97,0x84,0x49,0x3d,0x9c,0x26,0x08,0x63,0xb6,0x12,0x4d,0x36,0x2c,0x71,0xaa,0x3a,0xe2,0x95,0x03,0x40,0x87,0x55,0xfb,0xa2,0x71,0xd0,0x22,0xdc,0xd3,0xc3,0x3a,0x69 }, { 0x8a,0xa3,0xd5,0x5a,0x48,0x32,0xb1,0x0b,0x3b,0x05,0xf7,0xee,0xd1,0x71,0xca,0xfb,0xe8,0x89,0x9f,0x9f,0xb6,0x19,0x42,0xc1,0x38,0xaf,0x43,0x0e,0xd1,0x96,0x29,0x7c }, { 0x7e,0x0a,0x4e,0x02,0xb4,0x85,0x40,0x89,0x8e,0x2f,0xf3,0xed,0x56,0xbc,0x24,0x31,0x06,0x8d,0x4e,0xff,0x64,0x99,0x12,0xfd,0x95,0xb3,0x9d,0x10,0xaf,0x59,0x52,0x68 }, { 0x26,0xcf,0xa7,0xe9,0x76,0x05,0x96,0x28,0x2b,0x8e,0x64,0x37,0x6e,0x34,0xef,0x87,0x93,0xc5,0x2d,0x24,0xcb,0x4c,0x9d,0x6a,0x59,0xaa,0xf9,0x52,0xcc,0xe1,0x23,0x66 }, { 0xe8,0xea,0x3d,0xf8,0x08,0xe4,0x2a,0x8a,0x2e,0x29,0x65,0xf1,0xc2,0xfc,0x03,0xd6,0x4b,0x6d,0xc4,0x59,0x99,0x8e,0xe5,0x92,0xb1,0xcc,0x4e,0xe5,0x7f,0xad,0x1f,0x58 }, { 0x8e,0x9a,0x8f,0x75,0x37,0xcf,0x51,0x39,0xfa,0x6b,0xfb,0x45,0x95,0x6e,0xd0,0x9e,0xba,0xef,0x85,0x54,0x4c,0x83,0x19,0xbc,0x34,0x09,0xe7,0x37,0xb8,0x7b,0xd5,0xe1 }, { 0x95,0xf0,0xec,0xad,0x43,0xe1,0x98,0x9b,0xb2,0x7f,0xbe,0x20,0xba,0xab,0x54,0x82,0x7a,0x0c,0x23,0xd7,0xef,0xb3,0x94,0x56,0x2d,0x73,0xc0,0x43,0x0c,0xd6,0x1d,0x5a }, { 0x53,0x45,0x9d,0x2c,0x16,0x2d,0xc0,0x84,0xc7,0xbf,0x2c,0xe6,0xb5,0xf6,0xf1,0xe7,0x3a,0x8f,0xd6,0x70,0x39,0xe5,0xdd,0x5e,0x5b,0xe3,0x45,0x5a,0xea,0xa7,0xd9,0x4f }, { 0x2d,0xdb,0xbd,0xe0,0xab,0x64,0x82,0x29,0x87,0x44,0x89,0xb0,0x24,0xb5,0x03,0xd4,0xc9,0x11,0x2b,0x2d,0x87,0xfa,0x80,0x43,0x67,0x67,0xab,0xa8,0x32,0x3e,0xcb,0x2e }, { 0xd9,0x92,0x4f,0x3c,0x94,0x98,0xba,0xcf,0x12,0x63,0xd0,0xb6,0x86,0x0d,0x47,0xc1,0x7e,0x4d,0x71,0xd7,0xf0,0x0e,0x0b,0xcf,0x68,0x8e,0x13,0xeb,0x6b,0xc7,0x89,0xa0 }, { 0x4d,0x3a,0x0e,0x53,0x13,0x8f,0x3e,0xec,0x30,0x39,0x0b,0xa8,0x0a,0xce,0x77,0x92,0x30,0x11,0x43,0x9a,0xd5,0x4c,0x45,0x79,0xea,0x4a,0xb9,0x04,0x3f,0xdd,0x31,0xe2 }, { 0x87,0x7b,0x67,0x86,0xc5,0x69,0x9e,0x88,0xb9,0x07,0x68,0x4e,0xb5,0x92,0x05,0x58,0xc1,0xed,0xa7,0xd0,0x58,0x85,0xa2,0x04,0x8d,0x16,0x33,0xc1,0x91,0x09,0x7d,0x51 }, { 0xcb,0x9f,0x80,0xa3,0xbb,0xb8,0x1a,0xf7,0xb9,0xbc,0x33,0xbc,0x93,0x2e,0x52,0x28,0xf6,0x35,0x7c,0x6c,0xa7,0x16,0xcb,0xb6,0xde,0xff,0x23,0x9d,0xb0,0x79,0x2d,0xad }, { 0x18,0x49,0xa4,0xb2,0xda,0x7b,0x8e,0x79,0xef,0xb5,0x47,0x6d,0x4d,0x61,0x79,0xbe,0xc3,0x6b,0x16,0x99,0xd5,0xb1,0x60,0x8c,0x9f,0xc7,0x7c,0x08,0x2f,0x17,0x4e,0xe4 }, { 0xc4,0xc8,0x1a,0x39,0x33,0xd6,0xc3,0xa4,0x66,0x44,0xbf,0x41,0x15,0x96,0x46,0x51,0x05,0x05,0x7f,0xa0,0x77,0xcb,0xf8,0x28,0xb7,0x38,0x14,0xb9,0x0b,0x5e,0x3d,0xd5 }, { 0xd0,0xa5,0x87,0x8e,0x47,0x96,0x8f,0x54,0x9a,0x7b,0x8d,0xe0,0x80,0x92,0xf6,0x82,0xe1,0x54,0x6f,0x87,0xbb,0xad,0xa9,0x45,0xb3,0x30,0x97,0x38,0x62,0xf8,0x73,0x39 }, { 0xb9,0xa6,0x52,0xe8,0xe2,0x80,0x89,0x0c,0x7a,0xea,0xa0,0xb2,0x39,0xbe,0x0b,0x88,0x81,0x23,0xf0,0x12,0xcf,0xc8,0x86,0xf0,0x1d,0xfb,0x13,0x66,0xc7,0x8f,0x4a,0xa0 }, { 0x36,0x5b,0xcb,0xb5,0x8c,0xc9,0x58,0xd9,0x39,0x9f,0x03,0xfc,0x0c,0x37,0x75,0x91,0x7f,0x79,0xb9,0x00,0xd0,0x68,0xe9,0x41,0xe7,0xfe,0xb6,0x94,0x36,0x9b,0xb2,0x32 }, { 0x3f,0x5c,0x51,0x8d,0x59,0x90,0x6f,0xf2,0xbd,0x89,0xea,0x69,0x7b,0x85,0x98,0x3c,0x30,0x76,0x44,0xc0,0x01,0x44,0xf5,0x34,0x5b,0x02,0xa8,0x8a,0xdd,0xce,0xb0,0xfd }, { 0x4c,0xfa,0x4b,0xe4,0x3a,0xb2,0x76,0xf4,0x10,0xbc,0xae,0x5e,0xe6,0xe7,0x6e,0x01,0xe3,0xc3,0xe0,0x03,0x8a,0x5c,0xa2,0x37,0x0b,0xf1,0x0e,0x4a,0x2c,0x23,0x50,0x5d }, { 0x83,0xed,0x6e,0x02,0x76,0x5f,0x9b,0xf7,0x7c,0xb3,0xe1,0xd6,0x28,0xc4,0x49,0x9e,0x60,0x08,0x60,0x4a,0x3e,0xe8,0xdd,0xc5,0xd7,0xbd,0xeb,0xf4,0x4f,0x7c,0xf5,0x41 }, { 0xbe,0xbd,0x51,0x6a,0xab,0x15,0x29,0xca,0x28,0x91,0xa2,0x90,0x92,0x20,0xaa,0x2c,0x41,0xe9,0xae,0xa4,0xe3,0x98,0xc9,0xc3,0xb1,0xcf,0x9d,0x29,0x69,0x18,0x25,0x6d }, { 0xe5,0xd4,0x92,0x79,0xee,0x8b,0x0d,0xf4,0xfd,0xb8,0x90,0xa9,0xbc,0x08,0x37,0x05,0x81,0x16,0x1a,0xdf,0x37,0xbc,0x47,0xd3,0x4a,0x3b,0x34,0xe5,0x6a,0x1f,0xad,0x65 }, { 0x23,0xbf,0xcc,0x11,0xd9,0x36,0x4d,0xf4,0xc0,0x48,0x41,0x78,0x72,0xcd,0xa5,0x14,0x87,0x4c,0x5d,0x62,0xe2,0xdf,0x03,0xce,0x71,0x2d,0xe9,0x5e,0x50,0xdf,0xcb,0xc3 }, { 0xfb,0x03,0xb7,0x3f,0x73,0x60,0x86,0x86,0x0f,0x7a,0xaa,0x70,0x7f,0xd1,0xe3,0xeb,0x43,0xfc,0x38,0x21,0xee,0x39,0x60,0x10,0x03,0x52,0x8c,0x74,0xd0,0x87,0x70,0xb8 }, { 0x73,0x53,0x2d,0xaa,0x21,0x3b,0xc1,0x88,0x9a,0xe9,0xb5,0x13,0x01,0x68,0x24,0xd8,0x07,0x6b,0xab,0x74,0x76,0x05,0xbc,0x02,0x91,0x08,0xb5,0x11,0x5f,0x17,0x2c,0x36 }, { 0x09,0xd8,0x7c,0x23,0x8e,0xc0,0x7c,0xa1,0xe4,0xff,0x24,0xbe,0xed,0x4b,0xa1,0x8a,0xfb,0x6d,0x29,0x11,0x62,0xdb,0xc9,0x05,0x53,0x76,0xbf,0xcf,0x93,0xfb,0x57,0xec }, { 0x44,0x0f,0x72,0x64,0x08,0xcc,0x92,0x88,0x15,0x3d,0xcc,0xae,0xc6,0x59,0xfe,0xd3,0x64,0xb7,0x69,0xa5,0xc8,0x63,0x12,0xfa,0xb4,0xf4,0x71,0xd3,0x04,0xaa,0x73,0x98 }, { 0x73,0x6d,0x24,0xdc,0x95,0x2f,0x5e,0x39,0x01,0xcb,0x24,0x83,0x50,0x21,0x13,0x45,0xf4,0x60,0x1e,0x11,0xa7,0x9b,0x97,0x23,0x74,0x29,0x21,0xd3,0xab,0x06,0x19,0x32 }, { 0x1c,0x00,0xce,0x05,0xf0,0x2d,0xc7,0x35,0x3b,0x57,0xe3,0xba,0x95,0xd4,0x1c,0x87,0x91,0x26,0xdd,0xa5,0xec,0x42,0xd6,0xb7,0x07,0x21,0x22,0x35,0xbf,0x9c,0xd1,0xaa }, { 0xfa,0x14,0x3a,0xcb,0x7a,0x25,0x1d,0x57,0x29,0x3e,0xc5,0x30,0xed,0xe1,0xfd,0x85,0x0c,0xe4,0xc1,0xdd,0x04,0xd7,0x9b,0xaa,0x68,0x83,0xb9,0xb3,0x1f,0xf1,0x6b,0xfe }, { 0x24,0x31,0xcd,0xa4,0xb5,0x63,0xbb,0xd1,0xd6,0x72,0x9e,0x9d,0x22,0xcc,0x61,0xc0,0x25,0x8a,0x09,0x9b,0xd6,0x6f,0xf4,0x74,0x92,0xef,0x53,0x9f,0x4c,0x59,0xca,0x2f }, { 0xe1,0xb8,0xd5,0xfd,0xeb,0xbe,0x87,0x07,0x7e,0x1b,0x92,0xdb,0x14,0x44,0xe2,0x03,0x47,0x30,0xae,0xa5,0xf9,0xad,0x8c,0xff,0xc6,0xc8,0xb3,0x50,0x1c,0x7f,0xad,0xf4 }, { 0xad,0x98,0xf4,0x2c,0xb6,0x88,0x90,0xaf,0x56,0xe2,0x30,0x7c,0x16,0xe0,0xe3,0x21,0xea,0x52,0x67,0x87,0xa2,0x9f,0xeb,0x10,0x13,0xa6,0x5a,0x78,0xc0,0xd2,0x1c,0xce }, { 0xdd,0xf3,0xf2,0xce,0xb3,0x03,0x81,0xcc,0x95,0xc8,0x79,0x63,0xb4,0xae,0x5a,0x25,0x67,0x5f,0xca,0x6c,0x58,0x04,0xb7,0xc9,0xb7,0xc1,0xc6,0x55,0xc6,0x49,0x6d,0x44 }, { 0xdc,0x2a,0xc1,0x6f,0x15,0x2b,0xbf,0x2d,0xcf,0x72,0xd3,0x94,0xc7,0x7c,0x5c,0x52,0xe2,0xd3,0xfd,0x40,0xc5,0x78,0x3d,0x56,0xd7,0x51,0x6d,0x67,0x2c,0x31,0x52,0x24 }, { 0x00,0xc7,0xae,0xf5,0xd2,0xa8,0x9c,0x0a,0x8c,0xd0,0xa2,0xe9,0x68,0x85,0x69,0x7b,0xcb,0x66,0x01,0xdc,0xef,0xe5,0x3a,0x22,0xfd,0x6d,0xdc,0x6d,0x30,0x41,0xb3,0x39 }, { 0x90,0x0c,0xc8,0x4f,0xe6,0x3b,0x0d,0xc1,0xf0,0x80,0x16,0xa9,0x24,0x65,0x5f,0x3e,0x93,0x17,0xf0,0xa8,0xdd,0xa7,0x1a,0xb7,0x42,0xdb,0x13,0x8e,0x77,0x5f,0xe6,0x8b }, { 0x25,0x30,0x08,0x75,0xcf,0xe5,0xf8,0x36,0x36,0xdf,0xc2,0x92,0x9b,0x37,0xc9,0xe2,0x65,0x29,0xed,0xfe,0x44,0xe4,0x51,0x3e,0xc0,0xb7,0x83,0xad,0x5e,0x6b,0xd7,0x4b }, { 0x7c,0x08,0x24,0x72,0xa2,0x7e,0xd2,0x3b,0x90,0x5c,0xd7,0x39,0x1b,0x01,0xbd,0x4c,0xda,0xec,0xfb,0x6d,0xff,0xd1,0x67,0xcc,0x09,0xb5,0x3a,0x53,0xdf,0xef,0x25,0xff }, { 0x7a,0xdb,0xd9,0x44,0xf8,0x11,0x53,0x7e,0x37,0x7a,0x67,0x3c,0x31,0xd5,0xae,0x2f,0x3d,0xdf,0x7f,0x10,0x69,0x9f,0xab,0x9f,0xfd,0x43,0x23,0x3a,0xda,0xd6,0xcb,0x78 }, { 0xde,0x78,0x35,0x34,0x55,0x3b,0x4e,0xe2,0x5c,0xe2,0xa9,0x49,0xb6,0x03,0x41,0x89,0xbd,0x75,0x4b,0x10,0xc4,0x66,0x21,0x95,0x8c,0xad,0x3f,0xc1,0xb7,0x93,0x3c,0x6a }, { 0xa5,0xa8,0xe5,0xbf,0xf7,0x75,0x9e,0x46,0x2e,0x1b,0x2c,0xea,0x74,0x42,0xc9,0x29,0x95,0x60,0x01,0xa2,0xd4,0x2d,0x0e,0x73,0xb4,0x46,0x67,0x85,0x67,0x6b,0x7e,0x8f }, { 0xe2,0xc6,0xaa,0x2a,0xf8,0x67,0x08,0xb9,0x3e,0x2a,0xdc,0x41,0xeb,0x7f,0x33,0xc4,0x86,0x59,0x91,0xe7,0x06,0x34,0x12,0xe5,0x07,0xe7,0x94,0xee,0x14,0x8a,0x53,0x24 }, { 0xfc,0xd9,0x2d,0x84,0x16,0x44,0xd1,0x15,0xd0,0x08,0x22,0x11,0xcc,0x38,0xad,0x02,0xda,0x01,0x08,0xf3,0x8f,0x1a,0xac,0x53,0x7c,0xd3,0x1c,0x61,0x43,0xae,0x69,0x99 }, { 0xb8,0x83,0x11,0x4d,0x7d,0x96,0x74,0x4d,0xc9,0xe5,0xe5,0x01,0x19,0xca,0xfe,0x6d,0xf9,0x3c,0x61,0x09,0x45,0x59,0x7a,0xfc,0x7b,0x7d,0x5d,0x26,0x4b,0x55,0xa2,0x8f }, { 0x7e,0x4b,0xbc,0x65,0x26,0xc2,0x4f,0x73,0xe4,0x43,0x92,0xa5,0xf7,0x6a,0x19,0xd5,0x33,0xaa,0x3f,0x98,0x7e,0x49,0xb9,0xf5,0x79,0xb1,0xc6,0x5a,0x9d,0x36,0x77,0xc6 }, { 0xe8,0x17,0xc7,0xad,0xbd,0xf6,0x1e,0x16,0x53,0x81,0xbf,0x56,0x74,0x5e,0x21,0x35,0x4a,0xdf,0x64,0x82,0x61,0x15,0x87,0x15,0x8d,0x0e,0x65,0x8f,0x6d,0x52,0x19,0xee }, { 0x1c,0x7e,0x9a,0x1a,0x67,0xb3,0x70,0xc2,0xa2,0x1c,0x3c,0x52,0xe1,0xc1,0xfb,0x90,0x44,0x61,0x0e,0xaf,0x40,0x5b,0x69,0x20,0xea,0x4a,0x10,0x70,0x12,0xb0,0x55,0xe3 }, { 0x46,0x6c,0x29,0x33,0xda,0x48,0xca,0x77,0x2b,0x43,0x8a,0x87,0x3c,0x05,0x53,0x10,0x3d,0x04,0x26,0x2d,0xf0,0x13,0xbe,0x43,0x0f,0x28,0x9a,0x5f,0xc5,0x56,0xce,0x3d }, { 0xd3,0x29,0xf6,0x93,0x9d,0xa5,0xfd,0xfa,0xac,0x79,0x45,0xcf,0x85,0x05,0x7c,0x19,0x77,0x04,0xc2,0x19,0xb3,0xbc,0xea,0xe1,0xaf,0x9c,0x3f,0x3f,0x19,0x7e,0x8d,0x84 }, { 0x77,0x6b,0xec,0x1a,0x55,0x86,0x0e,0xf5,0x31,0x66,0xb2,0xdc,0xe5,0xae,0x90,0xba,0xc4,0x4c,0xe9,0x72,0xc7,0x7d,0xdc,0x5a,0xf7,0xec,0x1a,0x86,0x5c,0x0b,0x2a,0xa6 }, { 0x10,0x74,0x9e,0xf6,0x9e,0x52,0x48,0xa6,0xc5,0x09,0xf5,0x4b,0xee,0x84,0xce,0x59,0x06,0xa0,0x8f,0xf7,0xeb,0x2b,0x66,0x9d,0x1c,0x37,0x20,0x60,0xf1,0x5b,0xa1,0x07 }, { 0x1c,0x64,0xcb,0x0d,0x63,0x13,0x06,0x01,0x43,0xf4,0x01,0xd2,0x88,0xd3,0x87,0x27,0x5f,0x8c,0xfb,0x05,0x09,0xb0,0x6d,0x2b,0x90,0x8a,0x75,0x28,0x86,0x34,0x89,0x39 }, { 0x33,0xd7,0xaf,0xc4,0x2a,0x42,0x64,0xac,0xd4,0x0e,0xcb,0xa2,0xa9,0xd2,0x87,0xc9,0x18,0x3d,0x57,0xec,0xea,0x1b,0xf1,0xe9,0x43,0x7b,0x4b,0xde,0xf6,0x97,0xcd,0xcc }, { 0x0a,0xe0,0xf6,0x1c,0xdf,0x6b,0x21,0x78,0x54,0x36,0x07,0x29,0x49,0x42,0x4b,0xdd,0xde,0x17,0xc0,0xa3,0x4b,0xa4,0xfb,0xc2,0xf8,0x70,0x65,0xec,0x34,0x05,0xfd,0xc7 }, { 0x00,0x62,0x82,0x4c,0x1a,0x78,0xae,0x3c,0xca,0x9e,0x5b,0xdf,0xf1,0x6c,0xd1,0x12,0xb4,0x2b,0x4f,0xcf,0xdc,0x46,0xd1,0x97,0xfc,0x7a,0x7d,0x5b,0xe9,0x6b,0x41,0xbd }, { 0x42,0x02,0x81,0x96,0x2f,0xb7,0xc8,0xe7,0x59,0x78,0x06,0xe8,0x11,0x4c,0xf9,0x07,0xa3,0x6c,0x33,0x4b,0xab,0xc2,0xc8,0xbe,0xc7,0x5a,0x5d,0xa3,0x62,0xee,0xad,0xbd }, { 0x7d,0x66,0x79,0xcf,0xd5,0x8e,0xb7,0xd4,0x1d,0xdd,0x69,0x07,0x35,0x32,0x58,0xa6,0xfe,0x84,0xbe,0xa3,0x0c,0x80,0xf5,0x44,0xc6,0xde,0xb3,0x20,0x07,0x6a,0x06,0x09 }, { 0xca,0x22,0x9f,0xae,0x0e,0x09,0xea,0xe9,0xc1,0x65,0x5b,0x93,0xb9,0xd6,0x93,0xfe,0x36,0x16,0x9b,0x10,0x68,0x72,0x0b,0x11,0x17,0xbc,0xf9,0x39,0xa7,0x2c,0x55,0x5f }, { 0x6f,0xc1,0x80,0x78,0x3f,0x90,0x63,0x8c,0xf0,0x13,0x59,0x0f,0x81,0x96,0x39,0xfa,0x2b,0xb6,0xe0,0x94,0xd6,0xdb,0x9b,0xa8,0x37,0x2f,0xd2,0x7b,0x89,0x6b,0x63,0x0c }, { 0x69,0x52,0x52,0xd6,0x78,0x7c,0xf8,0xdf,0xe9,0xe8,0x29,0x46,0x03,0xce,0x70,0x24,0x80,0x1b,0x95,0x7e,0x56,0x41,0xad,0x9d,0x05,0x9d,0x20,0xa8,0x28,0xfc,0xf9,0xbd }, { 0x17,0x6f,0xfb,0xd1,0xe6,0x2b,0x37,0x8d,0xaf,0xe7,0xca,0x1a,0x98,0x04,0xcf,0x9b,0x54,0xaf,0xc5,0x2a,0x9b,0x76,0x2f,0x4b,0x78,0xef,0xf1,0xff,0xda,0xc3,0x69,0x95 }, { 0xbb,0x08,0xdb,0x29,0x65,0xf0,0x81,0xdf,0xf6,0xc3,0x64,0xa4,0x9a,0x34,0x10,0xfc,0xe5,0x2a,0xae,0x5c,0x89,0x1e,0x21,0xb4,0x4d,0x03,0xc4,0xea,0xcc,0xa1,0xf4,0x93 }, { 0xc5,0x54,0xe5,0x0a,0x60,0x06,0x2b,0x88,0xa9,0xcd,0x81,0xa1,0xa7,0x24,0xc8,0x84,0xc8,0x06,0xa7,0x7f,0x4f,0x96,0x59,0xf7,0x6a,0x05,0x83,0x54,0x1a,0x90,0x60,0xe1 }, { 0x2c,0x8b,0xa0,0xe3,0x11,0xba,0x32,0xac,0x8b,0x0b,0x29,0xca,0x83,0x79,0x9b,0x09,0x5f,0xde,0xa2,0x5c,0xbc,0x0a,0x9c,0xb7,0xcf,0x16,0xda,0x7a,0x95,0xaf,0x68,0xe8 }, { 0xc1,0xfd,0xd6,0xd0,0xa0,0xd8,0xb3,0x13,0x97,0x44,0xd0,0x0f,0x04,0x71,0x59,0xce,0x71,0xc8,0xa9,0xb4,0x3c,0xad,0x47,0x88,0xea,0xa5,0x3c,0xb8,0x3c,0x4f,0x35,0x66 }, { 0xb6,0xab,0x69,0xad,0xdd,0x05,0x82,0xda,0x01,0xd4,0x05,0x83,0x91,0x86,0xf6,0x80,0xc1,0x53,0x61,0xb2,0x7f,0x46,0x83,0x53,0x12,0x1b,0x6a,0x67,0xe6,0xa7,0xc3,0x8b }, { 0xa1,0xb9,0x8c,0x93,0xbe,0x35,0x59,0x7d,0x82,0xec,0x5c,0x18,0xd9,0x89,0x64,0x14,0x99,0x9a,0x23,0x64,0x55,0x25,0x6e,0x64,0xdf,0xc8,0x37,0x4f,0xd7,0xf6,0x04,0x76 }, { 0xcf,0xe5,0x65,0xb7,0xf0,0xfc,0x20,0xa8,0x85,0x4d,0x83,0x61,0xfc,0xa9,0x0c,0xeb,0x40,0xb5,0x9d,0x87,0x73,0x6c,0x3d,0x5b,0xaa,0x8d,0x7c,0xcb,0xd7,0x12,0xe5,0xc3 }, { 0x33,0x2d,0xdc,0xcf,0x07,0x23,0x20,0xe8,0x2a,0xa1,0xb2,0xda,0x42,0x30,0x34,0x41,0x0e,0x14,0x00,0x5a,0x06,0xa2,0x0b,0xb4,0x51,0xfc,0x67,0x4b,0x14,0x0d,0x54,0x5c }, { 0xa9,0x23,0x6a,0xdc,0x50,0x6a,0x09,0x63,0xe9,0x8d,0x40,0x21,0x78,0x06,0x4d,0xc8,0x97,0xa1,0x30,0x18,0x6b,0x0e,0x09,0x7a,0x5e,0x8f,0x1f,0x62,0xcf,0xee,0x69,0x4f }, { 0x88,0x96,0x6e,0xfe,0x06,0x43,0xba,0xf6,0x51,0xe7,0x8a,0x19,0x28,0x48,0xc7,0x77,0x56,0xf2,0x8c,0x32,0x10,0x4b,0x15,0x2d,0x9c,0x5f,0x8b,0x76,0x01,0xd7,0x6b,0xe3 }, { 0x7f,0x2f,0x99,0x8c,0x51,0x13,0xce,0x98,0x36,0x88,0x83,0xff,0x6e,0xa5,0xdf,0x69,0x8d,0x31,0x36,0x45,0x8b,0xe5,0x93,0xbd,0x53,0x00,0x0d,0x67,0x0b,0x93,0xfc,0x6d }, { 0xbe,0x2f,0x68,0x58,0xe6,0xb0,0x2e,0x5c,0x89,0x13,0x19,0x1f,0x60,0x52,0xb2,0x97,0x61,0x57,0x4b,0xcb,0x34,0x68,0xe6,0x1d,0x8a,0x48,0x4f,0x2d,0x66,0x99,0xe1,0xbe }, { 0x4c,0x24,0xe9,0x94,0x42,0x1c,0x72,0xaf,0xca,0x6d,0x6a,0xf4,0x48,0x7e,0x86,0x97,0x4d,0x65,0x4f,0x70,0x3d,0xae,0xe5,0x81,0xf1,0x16,0x32,0xff,0xa7,0x62,0xd4,0x1a }, { 0x14,0xd2,0x71,0x06,0x50,0x26,0xfb,0x5c,0x6f,0x8f,0x9c,0x6d,0xc1,0xbe,0x2b,0xb0,0x95,0x4f,0x90,0x92,0x6c,0xf1,0x64,0x4f,0xab,0x2f,0x03,0x8c,0x34,0x3b,0xac,0xf8 }, { 0x77,0x4d,0xc4,0x72,0x62,0xf8,0xd3,0xda,0x10,0x52,0x27,0x30,0xf7,0x3e,0x75,0x18,0xd8,0x30,0x39,0x6d,0x3c,0x38,0x73,0x05,0x20,0x4b,0x9b,0x1c,0x49,0xf0,0xcc,0x02 }, { 0xd3,0x74,0x07,0xf5,0x7c,0x16,0x15,0xe9,0xa1,0xc5,0x9b,0x1c,0xb9,0x64,0x3b,0xdf,0xaa,0xdc,0xa0,0xca,0x03,0xe9,0xb5,0xf9,0x79,0xcf,0x7b,0x0f,0x6c,0x07,0x14,0x0b }, { 0x03,0xc5,0x2b,0xb9,0x38,0x86,0xf0,0x5b,0xab,0xc3,0x03,0x04,0x3c,0xb4,0xc6,0xb1,0x24,0xcd,0x95,0x03,0xcf,0xfd,0xc1,0x93,0x8c,0x19,0x53,0xdc,0x7e,0x1d,0x2e,0x9c }, { 0x3c,0x47,0x67,0x8b,0xd0,0x43,0x2b,0x9d,0xe2,0x2f,0x67,0xc4,0x62,0x56,0xa0,0xe4,0x86,0x23,0xc4,0x65,0x78,0xdb,0x11,0x84,0x50,0xfe,0x8c,0x6e,0xb3,0x24,0xba,0xd6 }, { 0xa9,0x14,0x18,0xe6,0xf7,0x9d,0x48,0x31,0x94,0xa2,0x42,0x19,0x73,0x1e,0x9c,0xbe,0x18,0x46,0xa5,0xc8,0x21,0x97,0x60,0xb9,0x7a,0xaa,0x6a,0x17,0x4b,0xbf,0x89,0x26 }, { 0x9f,0x61,0x93,0x9a,0xb8,0xde,0x8d,0x63,0x9a,0x85,0x7a,0xc0,0x30,0x53,0xb2,0x1b,0x7e,0xc9,0x0b,0x8f,0xd6,0xcc,0x92,0x26,0x1c,0x82,0x46,0x0b,0x1a,0xa9,0x28,0xe4 }, { 0x08,0xae,0x96,0xc3,0x3c,0x3a,0x28,0xaf,0xaf,0xd9,0xc2,0xbb,0x8f,0xe2,0x86,0x2c,0x05,0x13,0x53,0x00,0x43,0xd6,0xb4,0xee,0x66,0xfa,0xb5,0xc6,0x15,0x03,0x15,0xe9 }, { 0x62,0x96,0xb1,0x11,0xc2,0x3b,0xbc,0xbd,0xf4,0x5e,0xe6,0x58,0xa7,0x6e,0x49,0x16,0x55,0x1b,0x79,0x6d,0x39,0x3e,0xd7,0x18,0xdd,0xee,0xbd,0x95,0xee,0x08,0xb7,0xb0 }, { 0x88,0xa8,0xad,0x15,0x10,0x14,0x3d,0xcb,0x0a,0xdf,0xa8,0xe8,0x04,0xa0,0x2f,0xd4,0x3a,0x71,0x06,0x85,0x86,0xe9,0xae,0x3c,0x29,0xe0,0xe7,0x10,0x6c,0x2d,0x24,0xb1 }, { 0x46,0xc2,0xd4,0x4f,0xd9,0x4f,0x46,0xd1,0xa7,0x27,0xcd,0xb9,0xd6,0x83,0xf6,0x2a,0x0b,0xfc,0xd4,0xf9,0xc7,0x15,0xe6,0xda,0x6d,0x3d,0x9a,0x70,0xaf,0x16,0x21,0x5c }, { 0xed,0xa7,0x25,0xc1,0x08,0x25,0xdb,0x9b,0xd7,0x97,0x27,0x14,0x96,0x8c,0x52,0x3e,0x7c,0xa0,0x65,0xe3,0x9e,0x08,0x9b,0xbf,0x61,0x4e,0x18,0x7d,0x6e,0xef,0x31,0x37 }, { 0xa8,0x77,0xa3,0xbf,0x93,0x86,0xfe,0xa1,0xf4,0xe4,0x2c,0xb6,0x7d,0x91,0xfe,0xa7,0x51,0xca,0x69,0xfd,0x09,0x72,0xb0,0xe2,0x61,0x67,0x70,0x3e,0x93,0x4a,0xe6,0x46 }, { 0x8a,0x58,0xfa,0x3d,0x82,0x1e,0x96,0x3a,0xc7,0x45,0x6c,0xb9,0xe6,0x59,0x43,0xd6,0xa0,0x10,0x99,0x83,0x22,0x4c,0xa7,0x20,0xae,0xaa,0xa2,0x73,0x93,0x0a,0x1d,0x57 }, { 0xf6,0x80,0x6e,0x85,0x69,0x62,0xc6,0x67,0x6b,0x01,0x50,0xaa,0xd0,0x2b,0x84,0x59,0x3f,0x85,0x64,0xe6,0xed,0xc0,0xd3,0x11,0x4e,0xad,0x51,0xd2,0x41,0xc1,0xb7,0x75 }, { 0x59,0xe8,0x10,0x44,0x08,0x67,0x84,0x79,0x50,0xe5,0x41,0x35,0xaa,0x3d,0x78,0x90,0x80,0x6b,0x85,0xdb,0xc6,0xf1,0x08,0x2f,0xf5,0x84,0x41,0x23,0xe6,0x39,0x3f,0x10 }, { 0x80,0x6c,0xc7,0x72,0xff,0x82,0xfb,0xf0,0x66,0x44,0xa4,0x8c,0x60,0xfe,0x04,0xe7,0xf5,0xfd,0x54,0x01,0xa8,0xac,0xbc,0xea,0x2e,0x48,0x44,0x12,0x5b,0x7b,0x1b,0x58 }, { 0x1f,0xcd,0xe4,0xca,0x8d,0xe6,0xd1,0xdd,0xad,0x8e,0x72,0xc6,0x39,0xf6,0xf2,0x76,0x03,0xc7,0x1c,0x2c,0x8a,0x11,0x86,0xcf,0x82,0x07,0xf6,0x67,0xba,0x54,0x20,0x2b }, { 0x20,0xf0,0x24,0xc6,0x4a,0xe3,0xca,0x6c,0x4f,0xf3,0x9d,0x5e,0x04,0x59,0x77,0x98,0x62,0xea,0x0e,0x39,0xee,0x11,0x2e,0xbd,0x57,0xea,0xea,0xeb,0xd7,0xe4,0x5c,0x85 }, { 0x85,0xe3,0x23,0xa4,0xdd,0xb8,0x24,0x86,0x10,0x74,0x1c,0x57,0x10,0x1c,0x40,0xef,0x58,0xa3,0x48,0xbb,0x03,0xb7,0xa5,0x87,0x74,0xdf,0x67,0xf3,0xb8,0xc9,0x83,0x78 }, { 0x8b,0x5d,0x34,0x4b,0x37,0xdf,0xe5,0x4e,0x94,0xd6,0x7b,0xb2,0x41,0xa0,0xd6,0x13,0x70,0xbb,0x2c,0x88,0x9a,0xec,0x52,0x1f,0x63,0xa3,0xf4,0x97,0x7e,0xde,0x7b,0xec }, { 0x3a,0x2d,0xf8,0xd4,0x96,0xb0,0xe0,0x28,0x78,0x53,0xed,0x2b,0x5c,0xa8,0x22,0x87,0x8e,0x7c,0x12,0xd1,0x06,0xad,0x10,0x29,0x14,0xd5,0x47,0x82,0xfc,0xfa,0x1b,0x08 }, { 0x35,0x50,0x69,0xf4,0xc8,0xeb,0x87,0x18,0x3c,0x05,0x16,0xeb,0xa3,0xc4,0x05,0x37,0xda,0x59,0x67,0xef,0x7d,0xea,0x22,0x4c,0x08,0x7d,0x34,0x0d,0xdd,0x80,0x89,0x69 }, { 0xbd,0x26,0x3e,0xd5,0xcc,0xb8,0x02,0x50,0x15,0x75,0x6c,0xed,0x7c,0x20,0x43,0x50,0x5d,0x8c,0x5d,0xea,0x10,0x7e,0x15,0x8b,0x37,0xa6,0xfd,0x90,0xd2,0x75,0xf6,0x33 }, { 0x05,0xf2,0x50,0x1c,0x57,0xbc,0x49,0xb5,0xdb,0xbe,0x0a,0x4c,0x94,0x5c,0x16,0xa6,0xba,0xf9,0x1f,0xaa,0x88,0x93,0x40,0x94,0x4d,0x81,0x9c,0x0d,0xae,0x7a,0x25,0xee }, { 0x9e,0xa6,0xdd,0x11,0xf9,0x38,0x1a,0xd2,0xdd,0x5f,0x47,0x49,0x16,0x7c,0xc9,0x32,0x25,0x3a,0xd8,0xdb,0x55,0x74,0xa7,0x4c,0xb3,0x7c,0x64,0xdc,0x38,0xdb,0xa4,0xad }, { 0xfb,0xda,0xe6,0x75,0x2f,0x0d,0x3d,0x76,0x98,0x90,0x7e,0x85,0x5a,0x67,0xde,0x70,0xb0,0x97,0x81,0x18,0xa0,0x59,0x30,0x5e,0x6d,0x5c,0x97,0x01,0xc7,0xc0,0xb6,0x3d }, { 0xb0,0x5d,0xdc,0x8b,0xbd,0xc9,0x63,0x1c,0x81,0xaf,0x00,0xb5,0x8f,0x38,0x27,0x71,0x90,0x57,0xc5,0xa6,0x33,0xb4,0xf7,0xd1,0x09,0x77,0xba,0xbf,0x42,0xdc,0x68,0x8a }, { 0x5b,0xc7,0x23,0x15,0x39,0x85,0xaf,0xaf,0xb8,0x06,0xe2,0x45,0xc3,0x1e,0xdc,0xae,0xf8,0x59,0x07,0x0e,0x14,0xef,0x32,0x35,0x89,0x1b,0x15,0x1b,0x48,0x04,0x94,0x35 }, { 0xeb,0x43,0x5b,0x96,0x59,0x5c,0x4f,0x8b,0x67,0xaf,0x32,0x65,0x0a,0xf8,0x0e,0xd0,0x9c,0x95,0xf5,0xe6,0x62,0xb4,0x50,0x0c,0x4f,0x80,0x54,0x61,0x5e,0x13,0x29,0xed }, { 0xb4,0xdf,0x32,0x52,0x6a,0x21,0x8e,0x27,0xa5,0xe0,0x4e,0x4a,0xaf,0x66,0xb7,0xc6,0x4c,0x55,0xcc,0x80,0x70,0x76,0x27,0x26,0x0f,0xcb,0xf9,0xbd,0x0d,0x27,0xd4,0x2d }, { 0x60,0x7d,0x45,0x13,0x80,0x53,0x0d,0xfa,0x3f,0x69,0x23,0x93,0x39,0xe6,0xeb,0x00,0x14,0x30,0x7c,0xf5,0xec,0x87,0x10,0x4b,0xa3,0xcd,0x8d,0xe7,0x02,0x81,0x5b,0x41 }, { 0x42,0xf2,0x18,0x7c,0x99,0x79,0xac,0xad,0x3b,0x36,0xe5,0x11,0x44,0xf2,0xe5,0x56,0x1a,0x09,0x41,0xd5,0x8e,0xb6,0x7c,0xfc,0x12,0xf6,0x12,0x04,0xb6,0x47,0x52,0x1e }, { 0xc5,0x54,0x82,0xbe,0x4c,0x0b,0x60,0xfb,0x09,0xea,0x93,0x2e,0x41,0x2f,0xe4,0x20,0xd1,0xa4,0x1f,0x06,0x1b,0xde,0xdf,0x0a,0xa0,0x9c,0x3c,0xf3,0x7e,0xe4,0x05,0xaf }, { 0x61,0xb8,0xd6,0x74,0x0a,0xc3,0xdd,0x43,0x72,0xfc,0xc0,0xdb,0x7d,0x7e,0x6e,0x3e,0x51,0xd4,0x87,0x66,0x92,0x47,0xb5,0x24,0x10,0xdf,0xe0,0xd7,0x5a,0x8e,0x79,0x4c }, { 0x06,0xc4,0x2a,0xef,0xf2,0x74,0x14,0x5b,0xec,0xda,0xab,0x49,0x19,0x16,0x1d,0x9a,0xd2,0x19,0x77,0xe6,0xf2,0x80,0xc5,0x5b,0xf1,0x52,0xbc,0xa4,0xaa,0x5d,0x54,0x7c }, { 0xe9,0xba,0xb5,0x91,0x8c,0x6c,0x56,0xad,0xf5,0xb5,0x2d,0x56,0xce,0x9a,0x7f,0x6b,0x61,0xfb,0xf4,0x08,0x37,0xf6,0x77,0xf5,0xe6,0x63,0x65,0xef,0x11,0x8a,0x33,0xe1 }, { 0x22,0xf2,0xf3,0xbc,0xa5,0x4e,0x3a,0xa6,0xcb,0xa9,0x34,0xab,0x7d,0x0f,0x6e,0xb1,0xda,0xa3,0x48,0xa4,0x9b,0xe3,0x9d,0x23,0x35,0x89,0x61,0x52,0xf2,0x36,0xa6,0xbe }, { 0x36,0xb9,0x08,0x45,0xe4,0x6a,0xe5,0x01,0xde,0xed,0xcd,0x81,0x63,0x30,0xf9,0x2a,0xf5,0x82,0xb7,0x2a,0x69,0x10,0xdf,0x65,0x64,0xe4,0x89,0xf0,0x0e,0x07,0xcc,0x9c }, { 0x0e,0xef,0x6b,0xb1,0xb5,0x5f,0x06,0x14,0x61,0xb1,0xba,0xe2,0xd3,0xc1,0x3a,0x97,0x76,0xe5,0xd6,0x22,0xed,0xd7,0xf8,0xb1,0xae,0x59,0x17,0xa2,0xc0,0xd3,0x65,0x90 }, { 0xb0,0x5c,0x0d,0xf0,0x28,0xe7,0x78,0x89,0x94,0xbc,0x42,0xf2,0x84,0xa6,0x5e,0x1b,0x20,0xd2,0xce,0xd7,0x7d,0x02,0x6c,0x86,0xb1,0xe4,0xa1,0x39,0x2d,0xd1,0xcb,0xb8 }, { 0xaa,0xca,0xeb,0xb0,0x68,0xcc,0xdd,0x5e,0x5c,0x36,0x13,0x8a,0x2d,0x0f,0xed,0xb8,0x1e,0x2e,0x73,0x31,0xdf,0x02,0xaa,0x1c,0xf7,0x76,0xaa,0x65,0x2d,0x3a,0x4f,0x02 }, { 0xa8,0xc2,0xff,0x2a,0x5a,0x87,0x33,0x51,0xcb,0x88,0xec,0xb1,0x3e,0xcc,0x68,0xb9,0x4e,0x5d,0x80,0x42,0xcd,0x90,0x6f,0x31,0xbe,0xf4,0x78,0xe3,0xe6,0x16,0x9d,0x66 }, { 0x0d,0xaf,0xc3,0x08,0x03,0xde,0xc0,0xcf,0xb4,0xd6,0xf9,0x32,0xa4,0x0a,0x01,0xbc,0x21,0x8d,0x4c,0xc3,0x5c,0x23,0x22,0x20,0x63,0x37,0x2e,0x26,0x15,0x3a,0x62,0x3c }, { 0x31,0x79,0x4d,0x34,0xfb,0xd0,0x8e,0x55,0xa1,0x66,0xc1,0xd0,0x90,0xe3,0xe5,0xc4,0x21,0x5f,0x19,0x80,0x60,0xd9,0xfe,0xb1,0x97,0x1a,0x6f,0x3d,0x84,0xe2,0xb4,0x7d }, { 0x53,0x9c,0xf0,0xde,0xe1,0x35,0xf1,0x48,0xbf,0xb7,0x91,0xf7,0x5f,0xfc,0x69,0x85,0xd8,0x25,0x1f,0xc0,0x65,0xf8,0x08,0xa5,0xda,0x3d,0xde,0x5a,0xdc,0x6c,0x76,0xed }, { 0x40,0xd5,0xec,0xbc,0x3c,0x0a,0x48,0x69,0x20,0xf2,0xd9,0xe3,0x7a,0x40,0xf9,0x5b,0xb1,0x62,0x9a,0x77,0xbe,0xf7,0x92,0x56,0xbf,0xe9,0xb9,0xaf,0x2a,0x6c,0xb9,0xf8 }, { 0xff,0x5e,0xfd,0x23,0x7b,0xf6,0x00,0x5e,0x96,0x0e,0x9c,0x5f,0x9b,0x86,0x0e,0x17,0x4e,0xe4,0x9d,0xd1,0x8b,0xaa,0x34,0xb0,0x81,0x4e,0xb1,0xee,0x5a,0x2e,0xd3,0x56 }, { 0xab,0x7f,0xc2,0x42,0xda,0xb0,0xcb,0x84,0xac,0x5d,0x41,0x13,0x95,0x83,0x04,0xc0,0x07,0x8e,0x08,0x60,0xb6,0xc0,0x03,0x11,0x86,0x2a,0xdd,0x77,0xf8,0x42,0xd8,0xc1 }, { 0x89,0x1d,0xeb,0x91,0xd9,0x56,0xba,0x73,0x33,0x9c,0xaf,0x1f,0xb0,0x34,0xd0,0x1e,0x25,0x8f,0xe6,0xe7,0xd4,0xb5,0x78,0xe0,0x40,0xd8,0xdd,0x98,0x2d,0xd9,0x6d,0xd6 }, { 0xa4,0x12,0xf9,0xe1,0xec,0x77,0x2f,0xec,0x5b,0xe8,0xd5,0xd2,0x85,0x2a,0xac,0x7d,0xda,0xf0,0xfb,0xe5,0x48,0x88,0x2b,0x81,0x06,0x65,0x85,0x13,0x61,0xc8,0x7a,0xff }, { 0xd7,0x54,0xca,0x59,0xd0,0xb6,0x0b,0x69,0x6a,0x6b,0xfd,0x4a,0xab,0x64,0x4f,0x49,0xde,0xa9,0x74,0xfc,0x49,0x82,0x1a,0x8c,0x54,0xa9,0xa5,0x12,0xef,0x4a,0x24,0xe9 }, { 0xb3,0x4f,0xa2,0x0b,0x57,0xd8,0x69,0xf5,0x47,0x48,0x8b,0x4b,0x31,0xc7,0x6f,0x2a,0xb3,0xf2,0xdc,0xeb,0xca,0xb1,0x24,0xf7,0x02,0xbe,0x8d,0x34,0xb1,0x1b,0x4c,0x87 }, { 0x1a,0xda,0x51,0x96,0xd2,0x60,0xde,0xac,0xf9,0xd5,0xa0,0xaf,0x53,0x08,0x29,0xd1,0x33,0x5e,0x10,0x25,0x37,0x3a,0x13,0x0a,0xf4,0x65,0x22,0x66,0x7c,0xcd,0xea,0x5b }, { 0x84,0x4e,0x59,0x84,0x78,0x46,0x58,0x4e,0x69,0x0d,0x4b,0x6e,0x9d,0xef,0xb9,0xf7,0xb5,0x4c,0xe3,0x76,0x49,0xb6,0x4a,0x0e,0xcb,0xa5,0x0d,0xee,0xcd,0x1b,0x7d,0x22 }, { 0xde,0x6c,0x5c,0xab,0xad,0x43,0xf0,0x51,0x56,0x6c,0x03,0x0a,0x6f,0xb9,0x70,0xcf,0x74,0x27,0xfb,0x1d,0x59,0xe7,0x02,0x69,0xa0,0xe2,0xcd,0x13,0x3f,0xf5,0x99,0xc9 }, { 0x14,0xb7,0x5d,0xe7,0x3e,0x57,0x3a,0xf6,0x42,0xff,0xcc,0x6a,0x37,0xf3,0xef,0x3e,0x7b,0xac,0xdd,0xf3,0x1c,0x29,0x03,0xc2,0xce,0xeb,0x49,0x68,0x35,0x78,0x49,0x3a }, { 0x9c,0x3a,0xe1,0x06,0xdd,0x0a,0x52,0x48,0x30,0x86,0xad,0xfa,0x32,0x90,0x2c,0xc2,0xaa,0x78,0xce,0x38,0x09,0x87,0x30,0x24,0x1e,0x15,0xb9,0x40,0x05,0x24,0x01,0x58 }, { 0x9f,0xd6,0x36,0xa5,0x60,0x59,0x67,0x1c,0x69,0xcc,0xc3,0xcc,0x52,0xd2,0x2c,0xf8,0xf8,0xec,0x6d,0x6d,0x0f,0xaf,0xc1,0xde,0x7a,0x6c,0xde,0xc1,0xbc,0xf4,0xc1,0x10 }, { 0x68,0x63,0x26,0xf2,0x6c,0x04,0x5b,0x74,0xb7,0xff,0x7e,0x68,0x8f,0xf9,0x64,0x6b,0x13,0x70,0xf3,0x0b,0x00,0xef,0x70,0xea,0x46,0x01,0x17,0x8c,0xdd,0xa4,0xa5,0xf0 }, { 0x2b,0x4f,0xf4,0xd1,0x85,0x26,0x59,0x78,0xf5,0x05,0x1e,0x14,0xaa,0x9e,0xfa,0x72,0x1e,0x76,0x0c,0x04,0xf3,0x78,0x91,0x0a,0x84,0x6d,0x1f,0xf2,0x2f,0x55,0x6d,0x32 }, { 0x18,0x82,0x1f,0xf3,0xfc,0x27,0xdd,0x89,0xf7,0x9c,0xde,0x34,0xc4,0x7c,0xc1,0xf1,0x28,0x77,0xa8,0x9e,0x31,0xe2,0x5b,0xd1,0xc9,0xe8,0x13,0x60,0x08,0x8f,0xc8,0xcf }, { 0xce,0x46,0x2c,0x5f,0x8d,0x46,0xe1,0x7e,0xc1,0x8c,0x49,0x13,0x7d,0xa1,0x0d,0x97,0x19,0xad,0xa0,0x5d,0xdc,0x5f,0xf7,0x03,0xe4,0x93,0xfa,0x53,0x14,0xdd,0xbe,0x8c }, { 0xde,0xc4,0x58,0xfb,0x6f,0x3c,0x18,0xe9,0xab,0xc4,0xeb,0x37,0x39,0x99,0x44,0x1d,0xc2,0x03,0x7b,0x7b,0x03,0x01,0x6e,0x8b,0x3f,0xb2,0x33,0xe5,0xb2,0x22,0x26,0x65 }, { 0xb4,0x88,0xec,0x48,0x16,0x1d,0xf3,0x67,0x78,0x08,0x16,0x8f,0xe8,0x93,0x88,0x21,0x29,0xcb,0x5c,0xfb,0xf7,0x65,0x56,0x74,0x2c,0xf7,0x76,0x26,0xdb,0xb0,0x8e,0x48 }, { 0xf9,0x31,0x31,0x20,0x2b,0x26,0xd8,0x41,0x26,0xe7,0x16,0x60,0x09,0xa5,0xa9,0x4b,0x1d,0x4d,0x04,0xc3,0x4f,0x74,0xbc,0x8e,0x56,0xd9,0x4d,0xbc,0x3c,0xaa,0x52,0x50 }, { 0xa0,0xd2,0x61,0xa7,0x1a,0x50,0xb8,0x8d,0xe6,0x29,0x36,0xb6,0x81,0x6d,0x3f,0x81,0x15,0x11,0x49,0x0f,0xcd,0x9d,0xce,0x52,0xee,0x25,0xd2,0x9a,0x22,0x22,0x7d,0x26 }, { 0x84,0x1b,0xc5,0x96,0x7a,0xf2,0x94,0x67,0x21,0x9b,0x1e,0x4e,0xa0,0xcf,0x68,0x01,0xac,0xf5,0xf3,0xe4,0x5c,0x4b,0x17,0x9f,0xce,0xa6,0x67,0x85,0x23,0xca,0xb8,0x51 }, { 0xd4,0x09,0x7e,0x8d,0x63,0x80,0x48,0x4c,0x60,0x45,0x57,0x17,0x64,0x36,0x5c,0xa2,0x65,0x99,0xee,0x7e,0x35,0xfe,0x9c,0x93,0xfc,0x75,0x93,0x94,0x25,0x38,0xc4,0xfe }, { 0x34,0xa6,0xab,0x4d,0xb1,0x5c,0x19,0x48,0xb5,0x92,0x14,0xbf,0xce,0xac,0x6a,0x97,0x7b,0x72,0x03,0x69,0xe4,0x71,0xbc,0x70,0x59,0x05,0x1d,0x1b,0xc6,0x2f,0xaf,0x0d }, { 0xf6,0x35,0x1e,0x5e,0x91,0x30,0x54,0x04,0xb8,0x1c,0xbd,0xe2,0x96,0x7d,0x4a,0xec,0xe7,0x6e,0xb3,0xf0,0x20,0x5d,0xdc,0x13,0x7d,0x88,0xd4,0xbe,0xee,0x7a,0x9e,0x79 }, { 0x5b,0xc9,0x13,0x79,0x73,0x81,0xba,0x63,0x80,0xa7,0xcd,0x6f,0xab,0xfe,0x21,0x5d,0x1b,0xc2,0xae,0x3f,0xea,0x4a,0x67,0x7b,0x81,0xe5,0xa7,0x2a,0xbb,0x70,0x5d,0x69 }, { 0x5d,0x9e,0x53,0x85,0x9d,0xfc,0x61,0xa2,0x23,0xdc,0x63,0xd9,0x4a,0x9e,0x0c,0x00,0x71,0x4e,0x9c,0x92,0x82,0x24,0xc7,0x0f,0xb1,0xe6,0xb1,0xfb,0x93,0x8b,0xeb,0xa5 }, { 0x0e,0x60,0x8e,0x13,0x1f,0x84,0x55,0x12,0x1b,0x10,0xc6,0x6e,0x87,0x8d,0xca,0xc4,0xdf,0xcb,0xa9,0x4a,0x37,0xbd,0xa2,0x85,0xc7,0xa0,0x9c,0x96,0x7c,0x69,0x53,0xca }, { 0x17,0x4c,0x0e,0x63,0x34,0xd4,0xf8,0x66,0x14,0xf2,0xe4,0x0b,0xde,0x6e,0x7d,0x57,0x66,0x58,0x85,0xff,0x2e,0x0a,0xdb,0x21,0x3a,0x1d,0x85,0x28,0x5c,0x7e,0x56,0xe2 }, { 0xf0,0x50,0x78,0x1b,0x7e,0x53,0x6b,0x68,0x3b,0x25,0x41,0x94,0x15,0xa9,0x09,0x4d,0x12,0xbd,0xa4,0xb3,0x8c,0x00,0x04,0x79,0x0d,0xa6,0x5a,0x1f,0x2d,0x85,0xca,0x26 }, { 0x3f,0xc7,0xf3,0x32,0xb7,0x33,0x3b,0x61,0x7e,0x1d,0x87,0x8b,0x4f,0x89,0x72,0x08,0x8b,0x9f,0x2b,0x77,0x26,0xe3,0x11,0x04,0x8f,0xd7,0xf1,0x9a,0x6c,0x01,0xda,0x73 }, { 0x3c,0xe5,0x65,0x37,0xd6,0x39,0x29,0xf8,0x0d,0x9a,0xc3,0x1d,0x5b,0x01,0x32,0x7d,0x29,0xe7,0x4a,0x73,0x85,0xa2,0xde,0xb7,0x45,0x44,0xe4,0x2a,0x9a,0x71,0xd0,0x2d }, { 0x54,0x70,0xeb,0x86,0xef,0x85,0x7f,0xf1,0xbb,0x7a,0x4a,0xbe,0xc0,0x87,0xff,0x3e,0x5e,0x9b,0x39,0xe8,0x07,0x6c,0x2b,0xda,0x96,0xc0,0xd9,0x49,0x83,0x47,0x47,0x9f }, { 0x32,0x85,0xc7,0x27,0x2e,0xcd,0x95,0x41,0x70,0xb2,0xf7,0x4d,0x04,0x42,0x6b,0x6d,0xed,0xae,0x97,0xbf,0x98,0xb3,0x14,0xe5,0x4e,0x93,0x6e,0xdb,0x00,0x97,0xa7,0xce }, { 0xd9,0x36,0x81,0xe1,0xaf,0x32,0x8f,0x46,0x2d,0xf8,0x3e,0xbb,0xe6,0x25,0x76,0xa5,0xfe,0x19,0x17,0x5a,0x8a,0x5a,0x67,0xab,0x34,0x87,0x88,0x52,0x95,0x44,0x14,0xc9 }, { 0xa5,0x19,0x11,0x79,0xd3,0x49,0x17,0x73,0x30,0x49,0xa7,0x59,0x9c,0xc5,0x5d,0xb1,0xb5,0x46,0x51,0xad,0xd1,0x48,0x7b,0x58,0x7d,0x67,0xe8,0x20,0xc0,0xb0,0xf2,0xda }, { 0xf4,0x35,0xed,0x81,0x45,0x2a,0x47,0xf5,0x5b,0x75,0x90,0x3f,0x37,0x8a,0x99,0x3e,0xdb,0x8e,0x81,0xf2,0xe7,0x06,0x58,0xe0,0xd6,0x07,0x1e,0xcf,0x77,0x44,0x74,0x33 }, { 0xc9,0xd1,0xdc,0x8a,0x51,0xb9,0xe8,0xe5,0xaf,0x60,0xd1,0x70,0x1a,0xb2,0x25,0xe1,0xa5,0xfd,0x24,0x2e,0x4e,0xd1,0xa6,0x53,0x5e,0xcd,0x63,0x68,0xbd,0xe7,0xff,0x42 }, { 0x36,0x62,0xa1,0xd3,0x62,0x56,0x93,0x66,0x6d,0xd8,0x51,0xd5,0x42,0xbf,0x8b,0x38,0x3c,0xb8,0x58,0xa8,0xd1,0x30,0xf0,0x1b,0x22,0x2d,0x00,0x57,0x7d,0x6f,0x5b,0xc3 }, { 0x6f,0x0d,0x74,0x77,0x2e,0x53,0x46,0xc6,0xf3,0x17,0x68,0xc4,0x23,0x90,0x81,0x1b,0xfc,0x27,0xf2,0x84,0xe4,0xcd,0x9e,0xb8,0xbd,0x15,0xcb,0xb0,0xe9,0xf3,0x0a,0xe1 }, { 0x7b,0x6d,0x80,0x73,0xdf,0x9e,0x90,0xc5,0xbd,0xf7,0xdd,0x63,0xae,0xd6,0x4b,0xeb,0x08,0x67,0x89,0x86,0x17,0x98,0xca,0x68,0xe7,0x29,0xb7,0x33,0xdf,0x3f,0xc9,0x19 }, { 0x65,0xe7,0xa9,0x08,0xc0,0xb9,0x16,0x4e,0xb1,0x0a,0xa8,0xf3,0x06,0x8e,0x98,0xc2,0x37,0x72,0xf8,0x74,0xa7,0x46,0x50,0x29,0x9e,0x8d,0x86,0x1d,0xcc,0x84,0x6f,0xa2 }, { 0xba,0x4b,0x5d,0x95,0x4d,0xae,0x5c,0xdd,0x75,0x2c,0x88,0x0d,0xe4,0xdf,0x79,0x0e,0x1e,0x28,0x4f,0x9b,0x94,0x8a,0x2e,0x77,0x5d,0x99,0xf7,0x4e,0xb2,0x42,0x07,0x9f }, { 0xb1,0xe5,0x92,0x60,0x64,0x92,0x50,0x2b,0x2d,0x70,0xa3,0xd1,0x5f,0xb0,0xb0,0x4b,0x90,0xfb,0x53,0xe8,0x64,0x44,0x9a,0x80,0x4a,0xc9,0xd6,0x8c,0x81,0x21,0x52,0xba }, { 0x2f,0x20,0xec,0xab,0x36,0x96,0x71,0x5b,0x68,0x5f,0x7c,0xd3,0x0e,0xb8,0x13,0xcb,0xbb,0xf2,0xa3,0xc1,0x55,0xdf,0x8a,0x4e,0xa1,0xfc,0x58,0x69,0xfb,0xd1,0xa0,0xe2 }, { 0x4c,0x5c,0xe3,0x7c,0xfa,0x58,0x65,0x60,0xc3,0xc2,0x2a,0xc1,0xa0,0xa9,0x59,0x0e,0x86,0xa7,0x31,0xd6,0x45,0xeb,0x98,0xcd,0x74,0x9f,0xe0,0x39,0x0e,0xe8,0x6b,0x73 }, { 0xbc,0x7c,0x6e,0x54,0x89,0xa4,0xa6,0xaf,0x47,0xc4,0x15,0xfc,0x2a,0xfa,0xf5,0xe1,0xe5,0x5e,0xce,0xed,0xfd,0xf5,0x1d,0xc7,0xa6,0x0f,0xe0,0x80,0x8a,0xf8,0x64,0x98 }, { 0x32,0x26,0x21,0x32,0xba,0xcd,0xb5,0xae,0xbf,0x1b,0x1f,0x89,0xe3,0x6b,0x15,0xac,0xc3,0xe5,0xbb,0xc0,0x08,0x25,0x71,0x1d,0xae,0x83,0x87,0x40,0xb1,0x1c,0x3b,0x73 }, { 0x0e,0xdc,0x03,0x3d,0x42,0xea,0x66,0xe2,0xa6,0x05,0x3c,0x27,0x1f,0x79,0x91,0x67,0xb3,0x85,0x25,0x28,0xac,0xe3,0x60,0xd1,0x2e,0xb7,0x23,0xd3,0xb1,0x19,0x73,0xbb }, { 0xc4,0x37,0x40,0xc0,0x80,0x16,0x18,0x3e,0x27,0xe1,0xc9,0xf0,0x07,0xe2,0x3b,0x00,0x9e,0xfc,0x78,0x11,0xd7,0xd8,0xff,0xbb,0x29,0x29,0xe6,0x84,0xbd,0xe5,0xad,0xdb }, { 0x2f,0x0c,0xa1,0x0d,0x50,0x38,0xf5,0xa0,0x53,0xfe,0xfc,0x75,0xb9,0x1c,0x3b,0x3e,0x97,0xe2,0x47,0x83,0xe8,0xa1,0xae,0x21,0x95,0x65,0xd7,0x35,0xb7,0x2b,0x1e,0x08 }, { 0xd5,0x17,0x58,0x78,0x34,0xac,0xba,0xd9,0xf5,0xc5,0x0a,0xa2,0xea,0x0c,0x78,0x50,0x23,0x62,0xe0,0xc7,0xab,0xc4,0xa0,0x4c,0xb5,0x0f,0xd5,0x9e,0x38,0xc8,0x29,0xf9 }, { 0x4e,0x7a,0xbf,0xaa,0x22,0xeb,0xaf,0x92,0xb3,0x93,0xcd,0xd3,0xc3,0x9e,0x8a,0xea,0x34,0x53,0xe3,0xd5,0x69,0x37,0xa4,0xeb,0x32,0xb8,0x30,0x47,0xc5,0xe6,0xb5,0xeb }, { 0x8a,0xc8,0x10,0xbb,0x0f,0x40,0x98,0x98,0xaa,0xdf,0x59,0xc7,0x0b,0xd8,0x6e,0xd3,0x1b,0xad,0x92,0x16,0x77,0x6f,0x4b,0x19,0xfd,0x66,0xb4,0x99,0xad,0x08,0xe8,0x44 }, { 0xcf,0x0a,0xfd,0x0d,0x18,0xd5,0xe1,0xde,0x9b,0x0f,0x91,0xdf,0xc5,0xf2,0x03,0xd4,0x51,0x02,0xb7,0x6a,0x2d,0x64,0x9f,0x70,0x4f,0x23,0x54,0x2b,0x6b,0x99,0x7d,0xcd }, { 0xfb,0x81,0x2b,0x2a,0xaa,0xc4,0x54,0x23,0x0f,0x09,0x7a,0xed,0x9f,0xa0,0x07,0xc2,0x6e,0x49,0xc7,0xdd,0x36,0xc6,0x6e,0x2e,0xd4,0xd7,0x6e,0xbe,0xe2,0x0e,0x46,0xb1 }, { 0xe7,0xe8,0x89,0x9e,0xe3,0x84,0xd3,0xdf,0xa2,0x16,0xde,0x76,0x18,0x0e,0x72,0x31,0xc2,0xfa,0x40,0x9a,0xc9,0x1e,0x76,0x2d,0x17,0x13,0x20,0x79,0xfa,0xa3,0x4c,0xa5 }, { 0xb3,0x84,0xc8,0xc4,0x3f,0x36,0x79,0x4f,0xc8,0xb8,0xce,0x4e,0x92,0xd4,0x90,0xd3,0xc9,0xe2,0x69,0x97,0x26,0xdd,0x8f,0x58,0x03,0xde,0x1d,0xf0,0x37,0xff,0xcd,0xa0 }, { 0x9a,0x39,0x41,0xa7,0xd4,0xa4,0xd1,0x04,0x0b,0xb7,0x3b,0x3c,0x3c,0x79,0x2c,0xdc,0x6a,0x75,0x33,0x62,0xb7,0x0e,0x8b,0xe8,0xd2,0x11,0x7c,0x75,0xb1,0xa1,0xd4,0xd5 }, { 0x95,0x6b,0xe0,0x38,0xfd,0xe1,0x11,0xd7,0xe9,0x41,0x63,0xcf,0x3e,0xe5,0xdf,0x6c,0xab,0xf7,0x61,0xec,0xe8,0xaa,0x6b,0x6b,0x3f,0x6a,0xe2,0x43,0xf9,0x55,0x23,0xdf }, { 0x99,0x13,0x75,0xd6,0x75,0x4b,0x2d,0x3c,0xc2,0x07,0x4f,0xeb,0x8d,0x9c,0x2b,0x1d,0x92,0x04,0x34,0x2d,0x55,0xf9,0x80,0xa1,0x45,0x6a,0x59,0x6a,0xc6,0x90,0xbe,0x2b }, { 0x2c,0xcb,0xe8,0x83,0x5e,0x42,0x6d,0x93,0xea,0xa8,0x94,0xf9,0xfa,0xb2,0x80,0x8d,0xaa,0x04,0xfa,0x57,0x37,0x36,0x71,0xea,0xf9,0xdd,0xe1,0x71,0xdb,0x4b,0x97,0x95 }, { 0x0c,0xdd,0xaa,0xa8,0x7d,0xf9,0x4f,0xd2,0xb5,0xdf,0x20,0xf5,0x10,0xc0,0x0c,0xd3,0xd0,0x8e,0xd4,0xd3,0x6a,0x13,0x60,0xb3,0x1c,0x5b,0x7b,0x75,0x18,0xe7,0xe4,0x47 }, { 0x4e,0x73,0xd5,0x6b,0x41,0x7d,0x7a,0xc7,0x08,0x78,0x47,0x81,0xbc,0x5e,0xcf,0xd9,0xfc,0x4d,0xdc,0x0f,0xe5,0x43,0x4b,0xe2,0x92,0x57,0x25,0x87,0x54,0xae,0xc2,0x68 }, { 0x26,0xea,0xfc,0x93,0x67,0x03,0x3b,0xca,0x18,0xf5,0x6f,0x3f,0x66,0x30,0x8a,0xca,0x9b,0x50,0x76,0x6f,0x2f,0x67,0x62,0xa5,0xf6,0x0e,0xa9,0xee,0xc3,0x77,0xed,0xfc }, { 0xa1,0x58,0x13,0x5e,0xc9,0x21,0x45,0xdc,0x58,0x90,0x4d,0xb9,0xc7,0x0d,0x25,0xa5,0x05,0x6d,0xe3,0xd8,0xb7,0xb3,0x95,0xd9,0x49,0x74,0xb4,0xf5,0xb6,0x26,0x22,0x9c }, { 0x5f,0x63,0x31,0x9b,0xc1,0xda,0xb0,0xdb,0xc6,0x30,0xfb,0x1a,0x89,0x82,0x11,0x77,0x98,0x78,0xbd,0x57,0x22,0x90,0x0b,0x5e,0xad,0x14,0x70,0x5c,0x0e,0x91,0x12,0xde }, { 0x59,0x3b,0x95,0x18,0xef,0x2a,0xe4,0xf1,0x19,0xf2,0x74,0x78,0x2d,0xde,0xbc,0x41,0x11,0xe0,0xe8,0xf6,0x6b,0xa1,0x15,0x77,0x34,0x40,0x50,0xc1,0x4f,0x25,0x3f,0x95 }, { 0x8c,0x6c,0x91,0xd4,0x6a,0xe3,0xd5,0xfd,0x68,0x42,0x64,0x77,0x5e,0x46,0x98,0x86,0x67,0xc8,0x88,0x59,0xf8,0x01,0x02,0xd8,0xad,0xa6,0x51,0x4a,0x03,0x97,0x21,0x56 }, { 0x4f,0xfa,0x6e,0xce,0x61,0x04,0xbd,0xed,0x58,0x17,0xfc,0x73,0x9a,0xba,0x5c,0x3e,0x5f,0xcd,0x51,0x2f,0x04,0x1f,0xea,0x59,0x67,0xb3,0x74,0x79,0x39,0x6a,0xa6,0xd5 }, { 0xf2,0xf5,0x24,0x28,0x81,0x8c,0xc6,0x71,0x71,0xdb,0x77,0x13,0x34,0xbf,0xa2,0xe9,0x0f,0x0c,0xc8,0x77,0xdf,0xac,0xbc,0x0c,0x79,0xcd,0x55,0xb6,0x55,0xf1,0x71,0x6c }, { 0xd6,0x85,0x76,0xda,0x23,0xc8,0x2b,0x60,0x34,0x3e,0x53,0xfd,0x5d,0x0b,0x85,0x05,0x6b,0xec,0x26,0x5b,0x8e,0x32,0xef,0x66,0x47,0xf3,0xcb,0xb7,0x15,0x42,0xa7,0xda }, { 0x11,0x26,0x8e,0x70,0xd5,0xdb,0x9e,0xa0,0xf6,0x87,0x13,0xc7,0xf3,0xc8,0x11,0x15,0x02,0x2a,0xf9,0xd5,0x0f,0x93,0xb5,0x42,0xe7,0xc4,0xec,0x07,0xe7,0x51,0x3b,0x15 }, { 0xeb,0x3b,0xcd,0xea,0x83,0xe1,0xa4,0x05,0x6c,0xcf,0xbc,0xd1,0x66,0xd5,0xca,0x6a,0x88,0xca,0x88,0xe1,0x54,0xa2,0x43,0xb0,0x6f,0xee,0x9c,0xfc,0xe2,0x36,0x9c,0xf8 }, { 0x74,0x82,0xd4,0x36,0x8a,0xb1,0xa3,0x00,0xb2,0x00,0xf6,0x83,0x5e,0x4a,0x54,0xf1,0xee,0x38,0x7d,0x6a,0xeb,0x87,0x4d,0x8d,0xfa,0x36,0x57,0x20,0x3d,0x3a,0xc1,0x5f }, { 0xb8,0x41,0xee,0x0c,0x97,0x27,0xdb,0x15,0x72,0x3e,0x83,0x66,0x9b,0x4a,0x43,0x9d,0xf2,0xbb,0xe6,0x36,0x10,0xfe,0x8f,0x4b,0x60,0x9f,0xa1,0xfa,0x59,0x95,0xb3,0xa2 }, { 0x98,0xe6,0x99,0xd8,0x21,0x7f,0x9d,0x2f,0xc9,0x99,0x99,0x8b,0x7b,0xde,0x51,0x65,0xda,0x8f,0xe5,0xa7,0x43,0x9a,0xb6,0x93,0xae,0xbe,0x52,0x0b,0x87,0xe4,0x06,0xba }, { 0x6b,0xbc,0xf1,0x10,0xfd,0xbb,0x98,0x83,0xa7,0x38,0xe6,0x28,0x7a,0x23,0x3a,0x24,0x9d,0x87,0x09,0xd2,0x2a,0x5d,0x2e,0x66,0xa3,0xb2,0xcd,0x82,0x45,0xb9,0xf8,0x51 }, { 0x51,0x08,0x6b,0x61,0x53,0x7c,0x25,0x75,0xb1,0x9e,0xc3,0x7b,0xd5,0xf5,0xdc,0xb6,0x0e,0xe9,0xe4,0x24,0x48,0x7f,0x5e,0xb0,0xe3,0x71,0xc4,0x9b,0x50,0x53,0x5b,0xdc }, { 0x4b,0x1f,0xb6,0x05,0x1b,0xf4,0x37,0x96,0xf8,0xd2,0xb3,0x83,0xba,0xc4,0x9b,0x7a,0x8a,0xfa,0x2f,0x27,0x31,0x14,0xe2,0x0e,0x7d,0xae,0x59,0xc7,0x9f,0x98,0x85,0x7c }, { 0xef,0xd5,0xb5,0x5d,0x5b,0x85,0x00,0x21,0xfc,0xad,0xf6,0x95,0x55,0x47,0xf3,0x77,0xa0,0x17,0xc8,0x39,0x17,0xb8,0xaa,0xd2,0xb4,0xfb,0xd8,0x23,0xf4,0x14,0x73,0x34 }, { 0xb4,0x63,0x74,0xa9,0xa5,0xc7,0x84,0x8c,0x4c,0x8d,0xbf,0x93,0x8e,0x08,0x50,0xc8,0x31,0xc1,0x18,0xd9,0xd0,0x9b,0x60,0x8f,0xf3,0x6f,0xe1,0x99,0x18,0x7e,0x2c,0xc9 }, { 0x2e,0xb1,0xea,0x67,0xdf,0x60,0x32,0xb4,0x76,0x9b,0x40,0x50,0x7f,0x56,0xb0,0x5c,0x5e,0x23,0x79,0x65,0x7e,0x2b,0xfe,0x17,0xd5,0x12,0xe6,0x72,0x61,0xc5,0xc1,0x0e }, { 0x19,0x8f,0x5f,0x10,0x7b,0x89,0x27,0x6f,0xab,0x8a,0x99,0xf6,0xdc,0xe6,0x59,0xf4,0x22,0x3f,0x67,0xbb,0xb5,0x7c,0x8d,0x56,0x94,0x91,0x9a,0xb0,0x46,0xb2,0x39,0x7b }, { 0xe4,0xe7,0x28,0x12,0x9b,0x8e,0x42,0xe2,0xec,0x71,0xa7,0x18,0xf5,0x7b,0x55,0xb4,0x72,0xeb,0x22,0x2a,0x7c,0x2d,0x18,0x03,0x84,0xbf,0x17,0x7f,0x01,0x31,0xad,0x37 }, { 0x90,0x07,0x5b,0x34,0x43,0x74,0x1c,0xc5,0x5b,0x3d,0xe7,0x54,0xb7,0x13,0x05,0x51,0xba,0xe0,0xf3,0x84,0x03,0x47,0xe1,0x15,0xdf,0x5e,0x7b,0xcb,0xc2,0xda,0xba,0x4f }, { 0x94,0x76,0xd3,0xfd,0x17,0x7d,0x2c,0x3c,0x82,0x15,0x82,0x9c,0xb4,0xfa,0x47,0xd3,0x32,0x4c,0x3d,0xc2,0xe8,0x30,0x94,0xf7,0xb4,0x0a,0x5d,0x55,0xe4,0xde,0xcb,0x9f }, { 0xb4,0xa2,0xce,0xe2,0x13,0xd4,0xda,0x35,0x7b,0x40,0x78,0x4e,0x79,0x57,0xf4,0x52,0x85,0x7e,0x59,0x9c,0xe7,0x8a,0x85,0x55,0x65,0xd1,0x53,0xdc,0xf4,0xf0,0xb4,0xe8 }, { 0x38,0xd5,0x7e,0x38,0xb9,0x40,0xfd,0x95,0x4a,0x58,0xbf,0xb8,0xb8,0xfc,0x33,0x19,0x50,0xcd,0xb9,0x35,0x83,0xd7,0x4e,0xe8,0x8e,0x24,0x39,0x78,0x99,0xc3,0xdb,0xc9 }, { 0x75,0xd6,0xca,0x30,0x33,0xc3,0x38,0x00,0x32,0x30,0x07,0x44,0xdc,0xc0,0xaf,0xdf,0x30,0x5f,0x9c,0xf7,0x45,0x08,0xde,0x3e,0x8a,0xad,0x83,0xcb,0x7a,0xef,0x1e,0xe3 }, { 0xef,0x80,0x33,0x70,0x5d,0x52,0xa5,0x10,0x85,0xc6,0xf8,0x98,0x95,0xc2,0x21,0xba,0xed,0x5d,0x9b,0x42,0x88,0xb8,0x77,0xea,0x5f,0x40,0x44,0xaa,0x82,0xb9,0x66,0x7d }, { 0x3c,0x84,0x1d,0x10,0x54,0x1e,0xff,0x55,0x17,0x0e,0xfd,0x6f,0xcd,0x90,0xa0,0xa0,0x11,0x83,0x4b,0xc5,0x9b,0x01,0x46,0x0d,0xd2,0xe7,0x14,0x8e,0x5d,0xf7,0xe8,0xa4 }, { 0xc5,0x2c,0x2f,0xb9,0x64,0xe3,0x9d,0xd2,0xa3,0xcb,0x5c,0x6d,0xb0,0xcb,0x95,0x57,0x2d,0xbf,0xd4,0x6e,0x2e,0xb3,0xbb,0x92,0xee,0x52,0xa2,0x11,0x6a,0x9b,0xeb,0xb1 }, { 0x05,0xe8,0xdf,0x7b,0x16,0xab,0x60,0xf8,0xbc,0x11,0xc5,0xe3,0xd0,0x7c,0xe7,0xa8,0x60,0x39,0x22,0x2b,0x53,0x94,0x44,0xd0,0x81,0xa6,0xf9,0xc8,0x0f,0xc1,0xf3,0x10 }, { 0x1b,0xed,0x26,0x52,0x48,0xc9,0xda,0xd5,0x1e,0x70,0xb9,0xff,0xbb,0x19,0xe1,0xd3,0x94,0x67,0xc5,0xc1,0x3d,0x3b,0xc0,0x88,0x76,0x7b,0xa8,0xa0,0xf8,0x6b,0x68,0x04 }, { 0x05,0x45,0x41,0xdf,0x3c,0x12,0xdb,0xaa,0xe7,0x41,0xe6,0x6f,0x0f,0x35,0x38,0x94,0x43,0x72,0x93,0x72,0x0e,0x5b,0x26,0xa2,0x89,0x38,0xf5,0x8b,0x0e,0x37,0x80,0xc3 }, { 0x8a,0x3d,0xb2,0x9c,0x23,0x17,0xbf,0xc5,0x57,0x94,0xa2,0xcd,0x03,0x43,0x69,0xf7,0x0a,0xa7,0xc2,0xbb,0x41,0x58,0x37,0x23,0x6a,0xb2,0x9a,0xc0,0x89,0x4a,0x54,0x5a }, { 0x66,0x56,0x36,0x92,0xe8,0xb4,0x21,0x43,0x42,0xbe,0x8b,0x1c,0x6d,0x27,0x65,0xb8,0x46,0x35,0xb4,0x48,0xf2,0x5a,0x96,0x70,0x8f,0xb6,0xf2,0x36,0x62,0xc3,0x0b,0x31 }, { 0x7d,0xaa,0x26,0x43,0xe3,0xe2,0xe4,0x20,0xbb,0x91,0x08,0xc9,0xd7,0x38,0x03,0x2b,0x0a,0x68,0x3d,0x9c,0x14,0x5f,0xc4,0x0b,0x3d,0xfc,0x51,0xe6,0x1a,0xcf,0x88,0xba }, { 0xbc,0xf1,0xec,0x34,0x94,0xc8,0x97,0x47,0xc7,0x67,0xfc,0xbb,0xf6,0xd6,0x37,0x68,0x6f,0xc8,0xb5,0x3b,0xd5,0x45,0x4f,0xd5,0x5d,0xf5,0xfa,0xea,0x6c,0xd2,0x89,0xf0 }, { 0xc1,0x67,0xba,0xf8,0xdc,0xf5,0x7b,0xe1,0x7b,0x34,0xbe,0x0b,0xd3,0x84,0xf2,0x46,0x66,0x3c,0xd0,0x69,0xbb,0xbc,0xcd,0xc5,0xfd,0xb4,0xec,0xb9,0xe0,0xbb,0x47,0x88 }, { 0x28,0x3f,0x7c,0xff,0x32,0x6e,0x60,0x82,0x23,0xc6,0xb5,0xaf,0x10,0x52,0xcf,0x14,0x50,0x22,0x34,0x7e,0x47,0x90,0x81,0xa5,0xc7,0x14,0x12,0xc5,0x24,0x5d,0xbf,0xe7 }, { 0x5c,0xe1,0x58,0x7e,0x2e,0xcc,0x43,0xb9,0x4c,0x98,0x4b,0x9c,0xa1,0xd0,0x2b,0x4e,0x80,0x00,0x5a,0x99,0xc6,0x93,0xb8,0x14,0x2f,0x14,0xd6,0xf7,0x07,0x92,0x9b,0x2a }, { 0xf7,0xa0,0x18,0x07,0xe3,0xe2,0xc5,0x35,0x1c,0x47,0x02,0x2f,0x89,0xb1,0x50,0x38,0x22,0xec,0x83,0xc0,0x7c,0x2c,0x97,0x29,0x0d,0xd8,0xbc,0x8d,0xf9,0x97,0xdf,0x9b }, { 0x7d,0x60,0x21,0xb9,0xc6,0x7d,0xb4,0x1a,0x06,0xbc,0x3b,0x14,0xe1,0xf6,0xa2,0xb2,0xa2,0x4a,0x6f,0x55,0xc8,0x8f,0xd0,0x70,0xd6,0x62,0xdd,0xfb,0x44,0x55,0x85,0x36 }, { 0x13,0x32,0xb7,0x7b,0xa1,0x9d,0xa2,0xd2,0xe4,0xa7,0x33,0x53,0x17,0x1f,0x80,0xfe,0x16,0xad,0xd4,0x85,0x29,0x82,0xc1,0xf1,0x32,0x91,0x04,0xf2,0x7d,0x8c,0xc8,0xe3 }, { 0x95,0x79,0x3b,0xa1,0x62,0x09,0x07,0xa9,0xc3,0x41,0x0f,0xb3,0xe7,0xae,0x2f,0xfc,0xd0,0x06,0x82,0xcb,0x5f,0xc8,0x37,0xf5,0x73,0xee,0x10,0xed,0xd2,0x7a,0x09,0x61 }, { 0x8f,0x20,0x01,0x67,0x62,0x92,0xd5,0xac,0x5b,0xdf,0xaf,0x41,0x0f,0x64,0xd1,0x6d,0x78,0x2e,0xc4,0xa3,0x2c,0x66,0x03,0x7a,0x28,0xa3,0x51,0x01,0xcc,0x21,0xc4,0x7c }, { 0x2c,0x07,0xe5,0xb5,0x90,0x51,0x25,0xdd,0x17,0xa0,0x48,0x7e,0xdc,0x90,0xff,0x03,0x7a,0x7d,0x9e,0x2a,0xb8,0x5f,0xfa,0x5b,0x15,0xe8,0x46,0x77,0x03,0x24,0x5a,0xfd }, { 0xe0,0x11,0xed,0x04,0x6d,0x13,0x38,0x53,0x83,0xee,0x92,0x0f,0x8b,0x5f,0xb2,0xa4,0x95,0x3a,0x09,0x3f,0xdb,0xe6,0xdf,0x39,0x6f,0x9b,0xe6,0x37,0xce,0x67,0x3a,0xe1 }, { 0x7c,0x62,0x73,0x94,0xb8,0x73,0x9f,0xa5,0x66,0x96,0xe2,0xfb,0xcd,0x88,0xff,0x01,0xb5,0x86,0x72,0x0d,0x9d,0xb9,0x89,0x12,0x56,0x6d,0x89,0x2b,0x76,0x92,0xfc,0xed }, { 0xad,0x99,0xdc,0x16,0x4a,0xe1,0xd3,0xb3,0xb6,0x5b,0xc0,0xfd,0x16,0x1c,0xf2,0x33,0xb7,0x30,0x4f,0x46,0xd9,0xce,0xa3,0xc9,0xdc,0xb1,0x8b,0x23,0xb1,0x4c,0xbc,0x85 }, { 0xe4,0xa5,0x73,0x24,0x4b,0x60,0x17,0xda,0x70,0xf9,0x5d,0x7d,0xc2,0xee,0xfb,0x95,0x7e,0x79,0xe6,0x20,0x12,0x63,0xe6,0xf7,0x3c,0x5a,0x86,0x72,0x31,0xfd,0xf1,0x0f }, { 0x02,0x2e,0x00,0x61,0xee,0xe6,0xad,0x97,0x2f,0x91,0x49,0x57,0xbd,0x9e,0xe0,0x33,0x60,0xe5,0x6b,0xd2,0x4d,0x1b,0x24,0x47,0x34,0x11,0xc6,0xef,0xc3,0xd4,0x26,0x87 }, { 0xd1,0x71,0x18,0x02,0x4e,0xc1,0x09,0x35,0x39,0xf2,0xe9,0x3c,0x6a,0x34,0x4c,0x1a,0x73,0xcb,0x7e,0xf0,0xd6,0x99,0x19,0xd2,0x73,0x5e,0x0f,0x32,0xc7,0x72,0xe3,0x01 }, { 0x45,0xa8,0x04,0x56,0x0a,0xdc,0x82,0x76,0x12,0x71,0xec,0xa3,0x7d,0xac,0x5b,0xb7,0xc0,0xa9,0x5e,0x93,0xe6,0x33,0xa0,0x93,0x57,0xcc,0x1a,0xd1,0xec,0x6b,0xa7,0x4c }, { 0x7f,0x28,0x51,0x11,0x92,0x5f,0x4a,0x8f,0xdc,0xea,0xeb,0xe8,0x1a,0x0a,0xd9,0xef,0xf3,0x29,0x81,0xad,0x0e,0x5a,0x49,0xa7,0xc6,0x61,0xb8,0xf1,0x78,0x90,0x2b,0xdc }, { 0xf1,0x6a,0xb8,0xe4,0xdc,0x66,0xa2,0xb0,0xd8,0x8e,0x42,0x2b,0xed,0xc9,0xc5,0x6f,0x0a,0xf1,0xaf,0x6a,0xac,0x4a,0x12,0xcf,0xa5,0xa6,0x85,0xa3,0x69,0x94,0x0d,0xf4 }, { 0x03,0xa6,0xec,0x92,0xb9,0x64,0x24,0x18,0xda,0xfb,0x9d,0x71,0xfc,0x7f,0xd6,0x37,0x3b,0xf3,0x4e,0xb3,0x15,0xa5,0x92,0x84,0x4f,0x97,0x7e,0x8f,0xa8,0x70,0xbb,0x1c }, { 0x64,0x87,0x02,0xf5,0xa1,0x7b,0xc1,0xdb,0x1a,0xec,0x56,0x37,0x4a,0xd7,0x53,0xa0,0x2b,0xdd,0xf6,0xfa,0x19,0x0c,0xc2,0xb9,0x0b,0xc6,0xa5,0xef,0x1b,0x7b,0xb9,0x00 }, { 0xf6,0x34,0x4a,0xee,0x58,0xb7,0x6c,0xc3,0x3d,0x3c,0x2c,0x04,0xf2,0xed,0x67,0x86,0x9e,0xbc,0xda,0x0c,0xf5,0x6f,0x19,0x6a,0x3d,0xeb,0xeb,0x39,0x45,0xd6,0xee,0x02 }, { 0x90,0xf2,0xd0,0x2c,0x37,0xeb,0x57,0x62,0x4c,0xb0,0xc8,0xf2,0x84,0xc1,0x71,0xb8,0x79,0x0a,0xe5,0x6a,0xa9,0xeb,0xce,0xef,0x64,0x83,0x7e,0x26,0x26,0x5c,0x66,0x4d }, { 0xdf,0x89,0x65,0x51,0xc7,0xb4,0x33,0x62,0xc8,0xe4,0xac,0x27,0x12,0x50,0x73,0xd1,0x86,0x9c,0xbc,0xcc,0xc5,0xb6,0x1e,0x3a,0xaa,0x77,0xfd,0x4d,0xcf,0xe6,0xa7,0x16 }, { 0x00,0xe0,0xd1,0x07,0x3a,0x64,0xf0,0xd3,0xec,0x6c,0x81,0xda,0xeb,0x87,0x12,0xd0,0x3c,0x3b,0xc1,0x1c,0x07,0x42,0x1c,0x1f,0x9c,0x86,0x31,0xa2,0xf2,0x4a,0x2c,0xf8 }, { 0xbe,0xa9,0xbf,0x9d,0x58,0x2d,0x15,0x97,0xc4,0x5a,0xc1,0xb1,0x99,0xa9,0x7a,0x42,0xfb,0x4b,0xd2,0x01,0x41,0x46,0x3f,0x42,0xce,0x6f,0xb6,0xa9,0xff,0xc3,0xf2,0xde }, { 0x20,0xac,0xb3,0x3a,0x88,0xf5,0x34,0x36,0x07,0xae,0x06,0xa8,0xba,0x3e,0x78,0x7f,0xef,0xd0,0x22,0xa8,0x92,0x6f,0xce,0x5b,0xf2,0xc6,0x7a,0xdd,0xaf,0x50,0xf1,0x6e }, { 0x49,0x8b,0xfe,0x18,0x3e,0xd5,0xf9,0xa9,0x26,0x4e,0xb6,0xb3,0x03,0xd8,0x04,0x57,0x99,0xd1,0x94,0x17,0x3d,0x7a,0x29,0x3c,0xd8,0x38,0x53,0x43,0x0f,0xe3,0xe7,0xa9 }, { 0x1f,0xfc,0x79,0x45,0xd2,0x44,0x39,0x97,0x89,0x4c,0x8e,0x4d,0xad,0x3f,0xbd,0x02,0x9e,0x9d,0x46,0x06,0x34,0x4b,0xa3,0x89,0x0f,0xd3,0xb7,0xc3,0xb6,0x6a,0xbf,0x27 }, { 0x85,0x0b,0xb7,0x2c,0x10,0x1a,0xce,0x8f,0xc4,0xc9,0x4f,0x90,0x64,0x8b,0x92,0x5f,0xb7,0xa1,0x5f,0xf7,0xbe,0xa6,0xe3,0x9f,0x23,0x8f,0x0d,0x8d,0xda,0x0d,0x87,0xa1 }, { 0xa3,0x25,0xa6,0x27,0x0f,0x0c,0x33,0x49,0x1f,0x5f,0x28,0xa3,0xbb,0xbd,0xbb,0x7a,0x04,0x7d,0x8d,0x30,0xbc,0x1b,0xe6,0xca,0x64,0xb3,0x1d,0x1d,0xab,0xda,0x46,0x26 }, { 0xb3,0x01,0xf6,0x2d,0xe2,0xb0,0xd4,0x6d,0xa9,0x1a,0x88,0x80,0x83,0xa2,0x0a,0x9d,0x7f,0x27,0xb9,0x8e,0xe9,0x63,0xf0,0xdf,0xc1,0xd4,0x4f,0xba,0x07,0x2c,0x48,0xd1 }, { 0x12,0x74,0xfa,0x20,0x41,0x30,0x47,0xe5,0x3a,0x09,0x42,0x71,0x7e,0xa6,0xea,0x77,0x17,0xb7,0x3f,0xe8,0x99,0xad,0xca,0xff,0x12,0x36,0x5e,0xc2,0xca,0xca,0xf6,0x1b }, { 0xb2,0xa9,0xb4,0x09,0xdb,0xc9,0xd3,0xd0,0xf4,0x96,0x7f,0x93,0x48,0x4d,0x73,0x3b,0x3a,0xc0,0x9f,0xc8,0x3e,0x8f,0x9a,0xe0,0x9a,0xe2,0x80,0xd0,0xd9,0xb4,0xfa,0x62 }, { 0xa6,0x50,0x67,0xf6,0xc1,0xcd,0x06,0xaa,0x2a,0x6b,0xce,0x1d,0xd6,0x0a,0xa1,0x98,0x63,0x8a,0xda,0x5a,0x18,0x9f,0xc0,0x6d,0xfa,0xfb,0xf5,0x5b,0xbb,0x3e,0x62,0xa9 }, { 0x39,0xe4,0x98,0x90,0x9f,0xa6,0x18,0x58,0x4e,0x28,0x54,0x53,0x15,0x35,0x72,0x87,0x48,0xd4,0x4f,0xe7,0x90,0x51,0x90,0x61,0x76,0x56,0x8f,0x34,0x6b,0x4a,0x24,0x90 }, { 0x7a,0xe7,0xa2,0xca,0xa7,0x58,0x9c,0x85,0xbc,0x16,0x3a,0x0c,0xff,0x51,0x9c,0xf3,0x5d,0x18,0x62,0xc1,0x9a,0x98,0xd0,0x6c,0x3a,0x70,0xca,0x6b,0x95,0xdf,0xed,0x24 }, { 0xad,0x77,0xc9,0x4a,0xd1,0xa1,0x2d,0x32,0xc2,0xd0,0x57,0x24,0x27,0x9a,0x8e,0x03,0x0a,0x17,0x0c,0x84,0x33,0x5b,0xd5,0xff,0x59,0x59,0x88,0xf0,0xcf,0xbb,0xed,0x35 }, { 0x25,0x59,0x7a,0xd8,0x5b,0x30,0x7a,0xf1,0xa6,0xea,0x07,0x51,0xc4,0xe4,0x21,0xd0,0x8a,0x28,0xea,0x9b,0xa3,0xb1,0x1f,0x76,0x24,0x67,0xb1,0x38,0x23,0xdb,0x2e,0xdf }, { 0x6d,0x08,0xc6,0xc5,0x19,0x2a,0x70,0xe4,0x3b,0xa0,0xe7,0x3b,0x2b,0x46,0xcc,0x3a,0xf2,0xd7,0x78,0x6a,0x4d,0x82,0x03,0x97,0x76,0x25,0x2d,0x93,0x1a,0xbe,0x9b,0x0f }, { 0x5f,0x2b,0x93,0x9a,0x6b,0x30,0xf2,0xe5,0x94,0xf7,0x8e,0xb9,0xc4,0x82,0x45,0xbe,0x3a,0xa5,0x08,0xb1,0xf3,0xc2,0x19,0x49,0xe4,0x13,0xfb,0x03,0x1d,0xac,0x54,0x64 }, { 0x31,0xc7,0x52,0x7f,0x03,0x66,0x8d,0x71,0x30,0x6b,0xe4,0x45,0xe0,0x83,0xe8,0x70,0xa9,0x47,0xba,0xb4,0x69,0x56,0xa3,0x56,0xe1,0x6b,0x22,0xa8,0xf4,0x11,0xed,0x1d }, { 0x21,0x23,0x6e,0xc7,0xe5,0xe7,0x86,0xd5,0x23,0xca,0x35,0xef,0x00,0x46,0x1e,0xa8,0xfb,0x80,0x8e,0x96,0xbb,0xcc,0xbd,0xc7,0x22,0x20,0xb3,0x59,0x1b,0xbb,0x81,0xcc }, { 0x86,0x54,0xcd,0x55,0x11,0x49,0x83,0x8d,0x37,0xd2,0x16,0x1b,0xfc,0x34,0xc9,0x01,0x17,0x1f,0x33,0x65,0x86,0xe7,0xb5,0x99,0x48,0x0e,0xe8,0x05,0x8f,0x61,0xb8,0x60 }, { 0x37,0x48,0x08,0x8f,0xb5,0x86,0x1f,0xb0,0x0c,0xf9,0xff,0x0d,0x26,0xbc,0xbf,0x4b,0x79,0xfa,0xfb,0xfa,0x5a,0x28,0x14,0x75,0x90,0x4d,0x80,0x64,0x06,0x2f,0x3b,0xa7 }, { 0x7e,0x5d,0x32,0x2a,0xdf,0x11,0xc5,0x12,0xe1,0xbb,0xea,0x65,0xa9,0x02,0x9c,0x5c,0x89,0x64,0x33,0x9c,0xfa,0x68,0xc8,0x6d,0x68,0xa4,0x1b,0x2f,0x50,0x9f,0xe8,0x4c }, { 0x01,0x03,0xd1,0xa9,0xc7,0x2f,0xab,0x1e,0x7a,0x17,0xa0,0x94,0xca,0x55,0x33,0x3b,0x1f,0x97,0xee,0xff,0x1e,0x3c,0xd6,0x6f,0x2f,0xd9,0x72,0xf9,0xd8,0x25,0x26,0x55 }, { 0x9c,0xa7,0x7b,0xd4,0x2b,0x60,0x99,0xe3,0x81,0xb8,0x8d,0x80,0x07,0xe8,0x24,0x99,0x20,0x98,0x7b,0x54,0x11,0x32,0x6e,0x5f,0x53,0xf0,0xab,0x89,0xc8,0xd3,0x21,0x8c }, { 0x3f,0xb9,0xc3,0x85,0x36,0x75,0xe8,0xa8,0xec,0x41,0xc2,0x70,0x5c,0x8c,0xb7,0x23,0xed,0xc3,0x52,0x35,0x3a,0xd6,0xae,0x36,0x54,0xe6,0x9e,0x90,0x91,0x9b,0xa2,0xfa }, { 0x59,0xf4,0x4a,0x48,0x78,0xa1,0x7f,0x23,0xfa,0x38,0x91,0x19,0xb7,0xef,0xaa,0x47,0x8c,0x8f,0xd4,0x9b,0xe0,0x0b,0x40,0xb5,0x1f,0x32,0x47,0x4f,0x93,0xf6,0x4d,0x14 }, { 0x5d,0x4c,0x3e,0x8a,0xc9,0x97,0x79,0x7e,0x36,0xdb,0xd5,0x7c,0x3f,0x5e,0xf7,0x2f,0x35,0x2b,0xf9,0x6f,0xe4,0xa1,0xc3,0x97,0xfd,0xdf,0xee,0xcd,0xcf,0x8e,0xf2,0x0b }, { 0x64,0x0e,0x94,0xcb,0x92,0xa7,0xde,0xd2,0x64,0xb6,0x95,0x2b,0x06,0xf0,0x73,0x62,0xc6,0x95,0xeb,0x87,0x3c,0xe5,0xe8,0x0d,0xb1,0x20,0xd8,0xfc,0x7d,0x1a,0x2f,0x44 }, { 0xb1,0x70,0x3f,0xe3,0xcf,0xd4,0xdb,0x24,0xd0,0xf7,0x94,0x66,0x87,0x5b,0x8c,0xc8,0x3c,0x03,0xd0,0x5f,0xf4,0xc9,0x82,0x7b,0xc1,0x4c,0x44,0xf7,0xdf,0x33,0x22,0x83 }, { 0x10,0x2e,0x63,0x19,0x66,0xe0,0x54,0xf6,0x19,0xf1,0x79,0xa3,0xd6,0x90,0xcb,0xca,0x81,0x5d,0x9b,0x7d,0x68,0x33,0x06,0x5c,0xdc,0x63,0xfc,0xb8,0x48,0x60,0x5e,0x73 }, { 0xe6,0xe8,0x98,0x07,0x80,0x27,0x26,0x45,0x07,0x3c,0x91,0x03,0x0e,0x28,0xaf,0xaa,0x52,0xbc,0x67,0xb4,0xdb,0xbe,0x4f,0xbd,0x8b,0x70,0x38,0x82,0x14,0x18,0x5c,0x35 }, { 0x65,0xf2,0xa8,0x3e,0x5f,0x71,0xdd,0x07,0xd7,0xd0,0x18,0x0e,0xb8,0x1c,0xff,0x5e,0x3f,0xe8,0x1d,0x68,0xf5,0x9d,0x55,0x30,0x3d,0x45,0x9d,0x82,0x89,0xe9,0x7b,0x8f }, { 0xaa,0x2b,0xcb,0xa0,0x45,0x53,0x6e,0x9f,0x8a,0x9e,0xca,0x6e,0xc0,0x85,0x14,0x91,0xbc,0x55,0xa5,0x7b,0x25,0xa7,0xf1,0x88,0xd7,0x60,0x39,0x41,0x4c,0x7f,0xf8,0x2e }, { 0x7a,0x5c,0x88,0xae,0xb2,0xb8,0x5a,0x9f,0x23,0x77,0x07,0xf7,0xf3,0x34,0x77,0x20,0xec,0x5e,0x94,0xf0,0x0f,0x34,0x7c,0x58,0x80,0x49,0xb3,0x14,0xe5,0x37,0xff,0xbe }, { 0x36,0xa3,0xff,0x74,0xde,0x41,0x9a,0xc9,0x5b,0x11,0x88,0xff,0xfd,0x78,0x7a,0x48,0x3c,0x3a,0x5c,0x24,0xbf,0x25,0xcb,0x32,0x9e,0x93,0x7a,0x58,0x35,0xb3,0x0d,0xae }, { 0x3c,0xba,0x17,0xb5,0x1d,0xa7,0x43,0x61,0x71,0x0c,0xdb,0x11,0x02,0x69,0xaa,0x8c,0xab,0x86,0x04,0x82,0xc4,0xdb,0x7a,0x9a,0x96,0xfb,0xb8,0xc5,0x10,0x6e,0x9b,0x60 }, { 0x68,0xdc,0xbc,0xee,0x8f,0x9d,0xe4,0xbb,0xd5,0x99,0x7b,0x29,0xa9,0x52,0x58,0x5a,0x78,0x70,0xa9,0x89,0x3d,0x5c,0x6c,0x44,0xcd,0x30,0x2a,0x1e,0x70,0xf0,0xfc,0x37 }, { 0xf6,0x7f,0x1f,0x54,0x76,0x33,0x0d,0xbf,0x03,0xc2,0xc3,0x0e,0xfb,0xbf,0xd9,0xe8,0x02,0xb9,0xb6,0xad,0x53,0x59,0x69,0xff,0x76,0xf3,0xb6,0x0f,0x42,0xad,0x2a,0xf2 }, { 0x00,0xa9,0x42,0x7c,0xbd,0xe1,0x4b,0x13,0xd5,0x5d,0x31,0x88,0x99,0xc6,0xa8,0x5d,0x43,0x57,0xb2,0xed,0xdd,0x62,0x15,0xf7,0xc9,0x4f,0x6f,0x09,0x6a,0xb1,0xf3,0x17 }, { 0x5a,0xeb,0x28,0x4e,0x33,0xaa,0x10,0x25,0x74,0x9a,0xe1,0xc3,0x29,0xa8,0x73,0x8b,0x3d,0x47,0x32,0xac,0x2d,0x9c,0xa0,0xb5,0xaa,0x7b,0x64,0x34,0xe2,0xfc,0xda,0xe1 }, { 0x4b,0x14,0x24,0x0a,0x46,0x84,0xac,0x8d,0x83,0xb8,0x2f,0xd0,0xa0,0x32,0xc5,0x83,0x87,0x1a,0x68,0x3b,0xe7,0xcd,0xe0,0x95,0x0c,0x8c,0xd2,0xff,0xba,0xc0,0x35,0xce }, { 0xd8,0x0b,0x4e,0x35,0x65,0x63,0xa9,0x50,0xb5,0xbd,0xfc,0x23,0x3f,0xe1,0xf5,0xc4,0x60,0xd6,0x78,0x3d,0xae,0xd8,0x7a,0x6c,0xf6,0x7e,0x04,0x36,0xca,0xb5,0xcc,0x08 }, { 0xba,0x78,0xd9,0x71,0xef,0x76,0x0b,0x5e,0x81,0xa1,0x03,0x0f,0x88,0xbb,0x35,0x36,0xc0,0x4f,0xc9,0x61,0xba,0xb7,0x8e,0xb8,0x3e,0xcb,0x6a,0x45,0x83,0x30,0xea,0x54 }, { 0x21,0x64,0xc1,0x50,0x3e,0x32,0xac,0xeb,0xe1,0xff,0xa0,0x3b,0x75,0x5a,0xf6,0x70,0xae,0x8e,0x8e,0xd6,0x42,0x3a,0x7a,0x91,0xbf,0xb2,0x30,0x86,0x87,0x25,0xb8,0x75 }, { 0x55,0x9c,0x58,0xea,0x8c,0x85,0x57,0x7c,0x4b,0xab,0xd5,0xec,0x85,0x60,0x8e,0x56,0x63,0x2c,0x12,0x97,0x8d,0x8e,0xb2,0xa2,0x04,0xc1,0x45,0xee,0x6a,0x44,0x1c,0xcc }, { 0x13,0xf2,0x14,0xd7,0x1c,0xac,0x94,0x35,0xf4,0xbd,0xcc,0xa3,0xac,0x5c,0x11,0x74,0x35,0x86,0x2d,0xfe,0x5d,0xc9,0x5d,0xbe,0x2b,0xf4,0x0e,0x60,0x36,0x13,0x9a,0x2a }, { 0xb3,0x6c,0xf6,0x64,0x8d,0x13,0x88,0x06,0x4d,0xfc,0xad,0xee,0x77,0x1c,0x24,0x73,0x5d,0x4f,0xd2,0x63,0xf0,0x8f,0xf8,0x5a,0xcb,0x95,0x7b,0x99,0x30,0xb3,0xd5,0x71 }, { 0x8c,0xf0,0xbc,0x82,0x36,0x27,0xdf,0x6b,0x82,0x1e,0xd6,0x14,0xf8,0xce,0xf0,0x73,0x64,0x24,0xf4,0x04,0xf7,0x46,0x91,0x9b,0xa6,0x57,0x4f,0x06,0x2c,0xa3,0x5b,0xb9 }, { 0xe3,0x6e,0xbe,0xa2,0xba,0x51,0xa7,0x95,0xc6,0xf1,0x9c,0xb5,0xfe,0x8b,0x6d,0x8b,0x34,0x5e,0x83,0x67,0x07,0xef,0x13,0xb6,0x54,0xd8,0x82,0x54,0xb0,0xcd,0xb6,0x9d }, { 0x1d,0xe9,0x97,0x8b,0x4d,0xb6,0x91,0x1c,0x56,0xdd,0xfa,0x33,0x94,0xff,0x5c,0xdd,0x73,0x94,0x2d,0x98,0x9f,0x93,0xbb,0xf6,0x2f,0x71,0x64,0xdc,0x4e,0x2d,0x4b,0xfc }, { 0xbe,0xee,0xc0,0x6a,0xc6,0x88,0x38,0x65,0xa9,0x7f,0xce,0x33,0x9f,0x99,0x0c,0x5c,0x4d,0x97,0x1a,0x4a,0xe4,0xc0,0x32,0xbc,0xf8,0xa6,0xbd,0x11,0x9a,0x6f,0x6f,0xf3 }, { 0x45,0x40,0x45,0x1d,0x12,0x1e,0x50,0x33,0x30,0x3a,0x94,0x8c,0xb7,0x51,0x98,0x1e,0x6d,0x70,0x53,0xea,0x71,0x32,0x56,0x02,0x2b,0xe0,0x82,0x54,0x72,0x0d,0x74,0x4e }, { 0x97,0x66,0x38,0x8e,0x4d,0x4e,0xca,0xe9,0x15,0x26,0xda,0x96,0xef,0x4a,0x2c,0x5e,0x77,0xaf,0x02,0xb8,0xcc,0x9f,0xd0,0x96,0x8f,0x1b,0x4a,0x69,0xb8,0xd7,0x36,0x11 }, { 0x9b,0xcd,0x2b,0x9a,0x67,0x7c,0x34,0x21,0x12,0xbb,0xce,0x4b,0xd2,0xda,0x1d,0x82,0xf3,0x73,0x21,0x86,0x39,0x28,0xbf,0x04,0x28,0x53,0x5d,0x05,0xaf,0xfd,0xf9,0x17 }, { 0x21,0x4f,0xf0,0x74,0x1c,0xfc,0x1a,0x68,0x2a,0xd5,0x52,0xfa,0x18,0xa9,0xa0,0x7c,0x89,0x87,0x23,0xd6,0xa4,0x3d,0x17,0x97,0x83,0x34,0xf4,0x26,0xc3,0x56,0xfd,0x9f }, { 0x2c,0x77,0x46,0x03,0x10,0xd4,0x3a,0x6d,0x46,0xa6,0x5f,0x16,0x0d,0x3e,0x6e,0xaa,0x2e,0x69,0x40,0xc8,0x2d,0x4d,0x53,0xd5,0x17,0x8e,0x48,0xcf,0x6a,0xbd,0x38,0xcc }, { 0xf2,0x4c,0x4c,0x1b,0x70,0xb0,0x29,0xec,0x2c,0x89,0x0b,0xc9,0xa1,0x2c,0x1c,0xfb,0x15,0x57,0xc8,0xf4,0xf8,0x96,0xfc,0xbf,0xb3,0x38,0x4b,0x62,0xdb,0xc8,0x47,0x6f }, { 0x00,0x50,0xb8,0x65,0x75,0x66,0xac,0x6c,0xfb,0x15,0x95,0xbb,0x11,0x35,0xa4,0x6b,0x1a,0xbd,0x4f,0x01,0x49,0x8d,0x72,0x03,0x6b,0xb4,0xaa,0x0e,0x47,0x55,0x10,0x14 }, { 0xee,0xcd,0xb5,0x17,0x5f,0xc8,0x9b,0x0d,0xce,0x1f,0xb0,0x96,0xf5,0x88,0x98,0x1c,0x23,0x6c,0x7e,0x27,0xa0,0x4a,0xc7,0x22,0x0b,0x4f,0x3b,0x2b,0x60,0xe1,0xd0,0xd2 }, { 0x33,0xac,0x46,0x7c,0x0d,0x6a,0x9c,0x4b,0x8a,0x8e,0x32,0xed,0x9a,0x96,0x3a,0x7d,0xe1,0x13,0xae,0x29,0xa6,0x66,0xc1,0xbd,0x9a,0x0b,0xde,0x76,0xbd,0xc3,0x77,0x31 }, { 0x08,0x68,0x49,0x2e,0xee,0x33,0x81,0x81,0xf2,0xfa,0xa1,0x9d,0xad,0x67,0xaf,0x34,0x82,0xae,0x69,0x99,0xd0,0xce,0xbc,0x91,0x10,0x42,0x5d,0x61,0xb4,0x08,0x6a,0xe1 }, { 0x5f,0x6a,0xab,0xf1,0xc0,0xba,0x50,0x9a,0xad,0xdb,0x08,0xa1,0x65,0x14,0x70,0x95,0x9d,0x1c,0xe6,0x5f,0x78,0x1d,0x4a,0x37,0xf1,0xa7,0xda,0x29,0xa9,0xb1,0xf8,0x60 }, { 0x58,0x15,0x2f,0x42,0x93,0xdf,0x87,0x10,0x15,0xda,0xa9,0x92,0x8d,0x45,0x8c,0xd3,0xbb,0x01,0x15,0x1f,0x2b,0x27,0x21,0xd5,0x76,0x53,0x28,0x04,0x60,0x75,0x92,0xd6 }, { 0xbc,0x30,0x33,0xbd,0x26,0x83,0x75,0xee,0x48,0x97,0x53,0x89,0xff,0xb7,0x0f,0x11,0x9a,0xd4,0xc3,0xce,0x76,0xb0,0x4e,0x50,0x47,0xd3,0x76,0xf7,0x59,0xec,0xf0,0x1d }, { 0x52,0x6c,0xd7,0x12,0x48,0xda,0xf5,0x46,0x89,0xf6,0xe2,0x4f,0xd2,0x99,0x3e,0xa4,0x87,0xa7,0x52,0x1d,0x36,0x73,0x7b,0x67,0x28,0x4b,0x34,0xdc,0x75,0x72,0xf8,0x1c }, { 0xf3,0xb8,0xcf,0xac,0x57,0x62,0x86,0x3d,0xde,0x46,0x26,0xbe,0xb0,0x0b,0x65,0xa4,0xf6,0xf3,0x19,0x05,0xad,0x35,0xb4,0xa9,0x79,0x25,0xcf,0xb1,0x6b,0x1c,0x48,0x1c }, { 0x1c,0x76,0x59,0x01,0x9f,0xca,0x7b,0x15,0x16,0xc2,0x87,0xd1,0xf9,0xea,0xcb,0x6d,0x5f,0x5c,0x9f,0xa6,0xe9,0x6e,0xe9,0x57,0xfb,0xb4,0xc0,0x8e,0x8e,0x93,0xa2,0xbd }, { 0xfa,0x67,0x40,0xf6,0x42,0xfa,0x94,0x1f,0xab,0xe2,0xda,0x17,0x59,0x78,0x0e,0x80,0x64,0x6c,0xb4,0xcd,0xc3,0x68,0xbe,0xab,0xbf,0x91,0xc1,0xbb,0xce,0xed,0x47,0x61 }, { 0xe4,0xf4,0xf6,0xc8,0xe1,0xc5,0xdd,0x00,0x4c,0x23,0x9c,0x17,0x4e,0xd0,0xc1,0xba,0xe8,0xf3,0x1a,0x76,0x38,0x3e,0x13,0xc3,0x9d,0xc5,0x89,0x6a,0xfa,0x5e,0xc4,0xcd }, { 0x37,0xfc,0x76,0x83,0x20,0xb8,0x06,0xbb,0x75,0x2f,0x97,0x95,0x1a,0x93,0x8a,0x01,0xd2,0xe6,0x40,0x04,0xdf,0x3a,0xeb,0xf2,0x1b,0xed,0x79,0x59,0xbe,0xbf,0x4f,0x0d }, { 0x2a,0x51,0x7f,0x17,0xc4,0xad,0x0b,0xc6,0xb4,0xaa,0x88,0x1a,0x3f,0x4e,0xb5,0xc0,0xb8,0x59,0x2a,0x09,0x59,0x93,0x01,0xc2,0x2f,0xae,0xf1,0x44,0x89,0x61,0xa5,0x1b }, { 0x29,0x64,0xb5,0xf9,0x2f,0x3d,0x21,0x2e,0x4f,0x56,0x75,0x87,0x07,0x4b,0xd9,0xd1,0x95,0x03,0xb4,0x73,0xcb,0xcc,0x68,0xe1,0x18,0x1e,0x6d,0xae,0x92,0x62,0xf7,0x32 }, { 0x0a,0x95,0x52,0x88,0x6e,0x7d,0xbd,0xdc,0x4f,0x4f,0x96,0xc5,0x8f,0xb0,0x64,0xda,0x7c,0xd4,0x5a,0x84,0x2c,0xf0,0xf3,0x1c,0x91,0xba,0x0e,0x70,0xf7,0xc4,0x47,0xef }, { 0x8c,0x92,0xb8,0x21,0x23,0x4b,0x94,0x67,0x0d,0xaf,0xbf,0x12,0x50,0xb0,0xea,0xdc,0x0c,0x95,0x00,0x4f,0xa2,0x18,0x76,0xd4,0xdf,0xb5,0xfa,0x29,0xf9,0x97,0xf2,0xfc }, { 0x30,0x9c,0x79,0xb7,0xa0,0xa6,0x50,0x1f,0xc3,0x8b,0x35,0x16,0x54,0xef,0x3b,0xb6,0xab,0xcc,0x2b,0xd3,0x8c,0x0f,0x2b,0x71,0x33,0x7c,0x58,0x76,0x8f,0x05,0x14,0x91 }, { 0x4a,0xf4,0x8d,0x6e,0xab,0xb8,0x77,0x21,0x65,0xc2,0x65,0x63,0xec,0xc1,0x21,0x95,0x62,0xa7,0xd6,0x45,0xd6,0x8b,0xcb,0x6f,0xb1,0x1e,0x9f,0xd3,0xfe,0xcb,0x64,0xec }, { 0x45,0x2d,0x95,0x8f,0x35,0xea,0xc9,0x39,0x9c,0xec,0x0e,0xea,0x0d,0xf4,0xab,0x7e,0x25,0x81,0x51,0xb2,0x3b,0x52,0x4d,0x73,0xb0,0x7a,0xe4,0x48,0x6a,0xc4,0x4d,0x7d }, { 0x62,0x0e,0x7b,0x5a,0xca,0xd7,0x6a,0x6b,0xd1,0x51,0x69,0x1f,0xca,0xca,0x19,0x87,0x38,0x8c,0xbb,0x7d,0x03,0xcf,0x18,0xff,0x58,0xb7,0xae,0x23,0x71,0xe2,0x8d,0x14 }, { 0xbb,0xb2,0xf0,0x48,0x12,0x4e,0xde,0x35,0x9d,0x3a,0x70,0x1c,0x3a,0x60,0x9c,0xe9,0x10,0xae,0x1e,0xf7,0x5b,0xea,0xd8,0xb2,0xff,0x34,0xae,0x49,0x23,0x2a,0xd5,0x75 }, { 0x64,0x27,0x1f,0xe0,0x8d,0x0a,0x94,0xb4,0x7f,0xad,0xfd,0x88,0x2a,0xe3,0x8e,0x32,0xcf,0x1c,0xd8,0x50,0xa3,0x2d,0x83,0x4e,0x79,0x81,0xa9,0x2a,0x63,0xbf,0x32,0xb6 }, { 0x67,0x36,0x33,0xcc,0xb1,0xf1,0x91,0x09,0x97,0x9f,0x9c,0xe3,0x14,0x7d,0x2b,0x20,0x6f,0xb8,0x2f,0x10,0x6e,0x8d,0x09,0xb0,0xe0,0x5d,0xde,0xb1,0xab,0x63,0x43,0x68 }, { 0x44,0xd2,0x0b,0xc9,0x98,0xee,0x07,0xdd,0x7f,0x66,0x87,0xd1,0xaf,0x9d,0x1b,0xa6,0x26,0x8e,0x53,0x5d,0x5b,0x8d,0x90,0x8d,0xbb,0xff,0x7b,0xf0,0x46,0x64,0xbb,0x4d }, { 0x65,0x40,0x81,0x85,0xc4,0xc0,0xde,0x27,0x99,0x26,0x35,0x5a,0x2f,0x4e,0xd4,0x45,0x90,0xfe,0x70,0xea,0xbc,0x41,0x3a,0x54,0xba,0x13,0x11,0x89,0x1f,0xc1,0xf8,0x5d }, { 0x86,0xf0,0x9c,0xf2,0x29,0xa9,0xb3,0x00,0xe6,0x24,0x3f,0x51,0x25,0x2e,0x62,0x6a,0xcf,0x2e,0x3a,0x30,0xbd,0x34,0x42,0xcf,0x4e,0xff,0xe8,0x2b,0xfc,0x3c,0x71,0xa3 }, { 0x36,0x75,0x35,0x7f,0x0d,0x7b,0x56,0x06,0x7d,0xf3,0xa9,0xf2,0x14,0x37,0x46,0x18,0x1b,0x7f,0x70,0x5c,0x3a,0x27,0x35,0x32,0xae,0xad,0x82,0x06,0x97,0x5c,0x17,0xfa }, { 0xd0,0xb9,0xfa,0xfe,0x16,0xb4,0xac,0xa5,0x79,0x55,0x45,0x6b,0x1c,0x8f,0xe3,0x3b,0xee,0x39,0xaa,0xf3,0x6a,0x9e,0x25,0x2b,0x98,0x86,0xf8,0xf3,0x61,0x57,0x94,0x4c }, { 0x68,0x78,0x7d,0xd9,0xd7,0x11,0x06,0x42,0x69,0x00,0xda,0x20,0x30,0xf8,0x57,0x7c,0xa6,0xeb,0x82,0xa7,0x76,0x9e,0xac,0x9d,0x1a,0x2a,0x3d,0x2d,0x73,0x0d,0x3f,0x80 }, { 0x41,0xee,0x6e,0x9d,0x12,0xc4,0xf4,0x98,0x17,0x60,0x3c,0x7d,0xad,0xe5,0xe6,0x84,0x1a,0xa9,0x33,0x09,0x89,0x25,0xe5,0xf7,0x1d,0x73,0x4d,0x10,0xad,0x92,0xbd,0x61 }, { 0x72,0xf3,0xb1,0xc5,0xf8,0x45,0xa6,0x56,0x7c,0x89,0x50,0x4e,0x1a,0x12,0x88,0x8e,0xb6,0xa3,0x24,0x4c,0xa4,0x80,0x2c,0xa3,0x86,0xe4,0x58,0xe9,0x82,0xf7,0x25,0xdc }, { 0x2b,0x19,0xe1,0xbb,0x36,0x60,0xe4,0xb3,0x89,0xc9,0xc2,0x74,0xeb,0x3e,0xc0,0xb1,0x84,0xa9,0xab,0xa5,0x88,0x4f,0x4e,0xf6,0x57,0x63,0x2d,0xd8,0x9d,0xda,0x4c,0x4d }, { 0x9f,0x8f,0xd7,0x4e,0x6c,0xba,0xcc,0x20,0xd1,0x35,0x7e,0x14,0xac,0xf4,0x6e,0xb9,0xdc,0x11,0x52,0x35,0xef,0x0d,0x4d,0x51,0xa3,0xe3,0xc5,0xb1,0xe2,0x31,0x3a,0x8c }, { 0xb6,0xc8,0x67,0xf6,0x5e,0xc8,0x18,0x0c,0xc1,0xcc,0xa1,0x1f,0x76,0x72,0x22,0x25,0x60,0xcc,0x87,0xc8,0x18,0x1f,0xd9,0xce,0x7f,0x0f,0x7f,0x6b,0x80,0x33,0xfd,0x60 }, { 0xd5,0xb6,0x6e,0xf1,0xf5,0xf2,0x25,0x25,0xef,0x77,0x1f,0x20,0x47,0x6f,0x63,0x0e,0xb4,0x27,0x1c,0xff,0x53,0x9a,0x47,0xee,0x8c,0x0d,0x81,0x35,0x4b,0x7d,0x2f,0xe9 }, { 0x84,0x98,0x75,0xd1,0x89,0xc5,0x13,0xe4,0x89,0xb6,0x7c,0x72,0xff,0xe8,0xfc,0xd1,0x74,0xa3,0x83,0xf9,0xc3,0x29,0x2a,0xff,0x50,0xfc,0x0c,0x06,0x85,0x13,0x30,0xa1 }, { 0xe3,0x11,0x05,0x4c,0x48,0xeb,0xca,0x1f,0x79,0xe7,0x81,0x1c,0x1d,0x0a,0x45,0xbb,0x9d,0x1c,0x33,0xfd,0x13,0xe5,0x3a,0x4d,0xe1,0xeb,0x76,0xcc,0xc6,0x11,0x93,0xa3 }, { 0xe3,0x5d,0xb7,0x48,0x3e,0x20,0xce,0xfe,0x75,0x36,0xe6,0x4e,0xea,0x60,0xbd,0x5b,0x93,0x3b,0xcd,0x20,0xc5,0xd1,0xed,0x53,0x4c,0x86,0x2b,0xdf,0xea,0x56,0xf3,0xbd }, { 0xb1,0xf8,0x04,0xda,0xbc,0x68,0x27,0x4c,0x12,0x33,0x99,0x5c,0x5a,0x91,0x19,0xb5,0x69,0x35,0xbc,0xdd,0x83,0xb7,0xde,0x07,0xec,0x72,0x6d,0xce,0xdc,0x4e,0x9c,0xe7 }, { 0x50,0xab,0x35,0x39,0x7c,0x4f,0xcd,0xf6,0xc6,0x57,0x9b,0x61,0x20,0x43,0xbf,0xa5,0x8f,0x5d,0xa9,0x1f,0xf2,0x54,0xbc,0x82,0xea,0x09,0x8b,0xf8,0x20,0x73,0x88,0xcf }, { 0x6a,0x0f,0x6a,0x28,0x3a,0x8e,0x4e,0x86,0xd2,0xa3,0xd6,0x0e,0xf9,0xe3,0x7e,0xc3,0x3f,0x2a,0xb6,0x07,0x1a,0x30,0xe0,0xa4,0x77,0x73,0x51,0x28,0xe7,0x57,0x1e,0xb0 }, { 0xdd,0x6b,0x8f,0xb4,0x46,0xd0,0x2d,0x1e,0xc0,0x14,0xc2,0x01,0x11,0xec,0xbe,0xae,0xfc,0xad,0xf8,0xc8,0x5d,0xbd,0xab,0xbd,0x23,0xdf,0x19,0x14,0x32,0xdb,0x5d,0x59 }, { 0xd1,0xf8,0x7d,0x98,0x5a,0xde,0xe0,0xc3,0x46,0x6a,0xc0,0x45,0x87,0x45,0x99,0x8f,0xc0,0xf3,0x9a,0x98,0x84,0x89,0x7c,0xe4,0xc7,0x54,0x8d,0x1d,0xb8,0xe1,0x06,0x42 }, { 0x38,0x49,0xbf,0x20,0xa8,0xdd,0xdc,0x80,0x22,0x10,0xfc,0x7e,0xe8,0xf4,0x0d,0x53,0x25,0xf9,0x02,0x94,0xca,0x83,0x01,0xf5,0x00,0x4f,0xc7,0x8c,0xef,0xdd,0x04,0x25 }, { 0xdf,0x1c,0x5b,0x4a,0x92,0x9b,0x53,0xf9,0x32,0xe0,0x25,0xdf,0xff,0x4e,0x62,0x23,0x2e,0x1b,0x8f,0x82,0x4c,0x68,0xa8,0xcb,0xd6,0x2b,0x05,0x86,0x2c,0xae,0x19,0x57 }, { 0xae,0x03,0x31,0x4b,0xf2,0xfa,0x5f,0x70,0x0a,0x5f,0x57,0x4e,0x4a,0x4a,0x4f,0x37,0xe2,0x88,0xd6,0xba,0xa7,0xb1,0x1c,0x1b,0xf4,0x2e,0xcb,0xbd,0x42,0x9d,0x0d,0x5e }, { 0x31,0x56,0xfa,0xe0,0x8e,0x41,0x2d,0x21,0x42,0xe1,0x51,0x47,0xda,0xb5,0x63,0x58,0xdd,0x25,0x1b,0x7d,0xa8,0x08,0x11,0x8a,0xc1,0x7c,0xcb,0x07,0xc5,0x39,0xb2,0x8e }, { 0xa8,0x87,0x4e,0xbf,0xb7,0x88,0x55,0xe3,0xa3,0x54,0x2b,0x67,0x66,0x73,0x17,0x6c,0xf3,0x86,0x7f,0x08,0x5a,0x2a,0x17,0xff,0x40,0x98,0x2c,0x12,0x9c,0x62,0xb4,0x13 }, { 0xe3,0xaa,0xdb,0x7d,0xea,0x40,0xd2,0x5b,0xbb,0xba,0xec,0x41,0x40,0xbf,0xb7,0xba,0xd2,0x96,0x3f,0x87,0x48,0xd3,0x61,0xce,0x7b,0xbb,0xd1,0x1a,0xcb,0xa0,0x9d,0x54 }, { 0x62,0x47,0x88,0x0b,0xff,0x0e,0x29,0x4d,0x09,0x43,0x05,0x6f,0x10,0x70,0x85,0x46,0x92,0xec,0x92,0x7b,0x72,0x41,0x7d,0x12,0x7c,0x2b,0xea,0x60,0xa3,0xba,0xcf,0x1f }, { 0x1a,0xa9,0x05,0xfa,0xe6,0xbb,0xdf,0xfc,0x27,0x6b,0x6f,0x6a,0xb7,0x8a,0x57,0xd3,0x27,0x93,0x42,0x6d,0x06,0x66,0x8b,0x13,0x7b,0x45,0xdc,0xed,0x49,0x5d,0x71,0x20 }, { 0x99,0xbc,0x88,0x21,0xd6,0xc0,0xa1,0x5f,0x42,0x15,0x72,0xb3,0xa6,0xe9,0x49,0xc0,0xdf,0xc3,0x80,0x78,0x29,0x4a,0xea,0xb2,0xfe,0xa0,0xc3,0x1d,0x92,0xf0,0xc4,0x8c }, { 0x65,0xd5,0x5a,0x45,0x8d,0x78,0x94,0x20,0xc3,0xae,0xa4,0x8b,0x19,0x43,0x14,0x2c,0xd7,0x7b,0x45,0xd0,0xed,0xbd,0x16,0x67,0x43,0x87,0x10,0xb5,0x6c,0x96,0x91,0xd5 }, { 0x9f,0xb9,0xfb,0x22,0x05,0xc5,0xf8,0x72,0xda,0x6d,0x3e,0x0b,0xcc,0x69,0x32,0x33,0x85,0x8f,0x68,0x41,0x22,0xa8,0x62,0x9b,0xb3,0x9f,0x78,0xcb,0x99,0x75,0x20,0xd6 }, { 0x93,0x2e,0x1e,0x5f,0x01,0xa5,0x0d,0x36,0x15,0xa9,0x30,0x32,0x6c,0x14,0xd2,0xb3,0x58,0xfe,0x1c,0x58,0xcc,0x78,0x7f,0xb6,0xe9,0xe4,0xf7,0xc7,0xe1,0x38,0xaf,0xb4 }, { 0x1f,0xd9,0xcf,0x33,0xe2,0x59,0x21,0x53,0x2a,0xb1,0x28,0xbd,0x77,0x55,0x38,0xa8,0x8e,0x4e,0xe8,0x85,0x16,0xed,0x22,0x16,0x1d,0x52,0x2e,0x9a,0x75,0x85,0xab,0xb5 }, { 0xb3,0x73,0x5b,0xdc,0x73,0x7d,0x36,0x02,0x99,0xf7,0x6c,0xad,0x58,0x80,0x9c,0x37,0x39,0x29,0x37,0x04,0x79,0xd1,0xcc,0x18,0x2e,0x59,0xc7,0xb7,0x92,0x77,0xa4,0x2c }, { 0x52,0xb8,0xab,0x72,0x28,0xf8,0x12,0xdd,0x13,0x9c,0xf1,0x6d,0x53,0x57,0x35,0x35,0xe1,0x7d,0x72,0x32,0x88,0x60,0xdf,0x36,0x62,0xcb,0xba,0xfe,0xb4,0xf4,0xf1,0x9e }, { 0x2f,0x9e,0xc3,0xe9,0xcf,0x00,0xf3,0x77,0x08,0x11,0x2f,0xde,0x3d,0x0a,0x92,0x67,0x9d,0xb9,0xc3,0x65,0x41,0x8a,0x7b,0x34,0x5a,0xe9,0x6d,0x11,0x99,0xc5,0x98,0xf0 }, { 0x89,0x02,0xe9,0x94,0xee,0xd6,0x72,0xae,0x0a,0x5e,0x6b,0xca,0xf8,0x67,0x42,0x08,0x60,0x29,0xa3,0x83,0xbd,0xb9,0x96,0x68,0x3d,0x02,0x11,0xf8,0xd2,0x16,0x83,0x05 }, { 0x36,0x87,0x73,0xbc,0x0a,0x52,0x3c,0x7a,0x32,0xf0,0x05,0x15,0x9e,0xd7,0xd5,0xd2,0xb4,0x45,0xca,0x52,0x06,0x9d,0xea,0xe0,0x92,0x5c,0x79,0x02,0xca,0xa3,0x0f,0xa3 }, { 0xb3,0xae,0x80,0x29,0x8e,0xe6,0x5c,0x81,0xb0,0xcd,0xed,0x0e,0x4b,0x08,0x6f,0x34,0xbf,0x3d,0x5f,0xc3,0xdb,0xca,0xaf,0xe6,0xfb,0x2e,0x58,0xfa,0x7b,0x4f,0xb5,0xf5 }, { 0x00,0x11,0x07,0xa1,0x50,0x43,0x93,0x22,0xde,0x39,0x4e,0xe0,0x9d,0x20,0x4b,0xa2,0x37,0xb5,0xae,0xc2,0x8b,0x63,0xa3,0x03,0x9c,0x14,0x3b,0x80,0xcc,0x7c,0xa7,0xca }, { 0x4a,0xfe,0x5c,0xb7,0xa8,0x34,0xab,0x3f,0xf0,0x18,0xb2,0xee,0xf1,0xce,0xfb,0xef,0x9e,0x55,0xbe,0x5c,0xdf,0xfa,0x08,0x27,0xfe,0x89,0x2d,0x26,0x41,0x8f,0x42,0xee }, { 0xf2,0xed,0x5f,0x22,0x20,0xe7,0xa9,0xe6,0x3a,0x2c,0x7a,0x5e,0xf4,0x79,0x6d,0x7c,0x1e,0x23,0x16,0xbb,0x7b,0x1a,0x27,0x7e,0x78,0x96,0x3e,0xf5,0xb1,0x54,0x81,0x90 }, { 0xa7,0xef,0x22,0x4a,0x5a,0xe7,0x74,0x1a,0x2a,0x95,0xba,0xdf,0x8b,0x36,0x56,0x05,0xb5,0x20,0x53,0x62,0x25,0x54,0x5e,0xbd,0x31,0xcf,0x60,0x81,0xc9,0x19,0xb8,0xc0 }, { 0x66,0xaf,0x71,0xf6,0x61,0xd8,0x7c,0x7b,0x01,0x9a,0xd5,0xd2,0x0f,0xb5,0x2d,0xe9,0xa0,0x4f,0xb4,0x11,0x52,0x1b,0x97,0x43,0x11,0xa0,0x64,0xc8,0x4d,0x1c,0x41,0xd9 }, { 0x2a,0x91,0xf3,0xb8,0x98,0x84,0x63,0x7b,0x29,0xe5,0x9b,0xdf,0xd6,0xbb,0x96,0x9c,0x02,0x5c,0x09,0xb2,0x71,0xb5,0x81,0x6a,0xe3,0xde,0x84,0x46,0x94,0x8a,0x83,0x30 }, { 0xae,0xb2,0x11,0x78,0x9a,0xa1,0xec,0x24,0xe9,0xde,0x9e,0xfd,0x4e,0xa9,0xac,0xfc,0x73,0x6a,0xba,0x70,0x50,0x9a,0x08,0x08,0x9f,0x7d,0xc9,0x8e,0x4b,0x3d,0xf8,0x92 }, { 0xe0,0x95,0xa1,0xea,0xb5,0x0c,0x09,0xf7,0x27,0x2d,0x80,0xce,0xc9,0x01,0x34,0xe0,0x64,0x9a,0x43,0x18,0x27,0x8d,0xd6,0x90,0xa8,0x44,0x65,0x79,0x98,0x92,0x27,0x0d }, { 0x9f,0x5d,0xd0,0xaf,0xb2,0x5c,0x64,0xfe,0x2f,0x52,0xa0,0xa4,0x7f,0x49,0x0a,0xf0,0x12,0xe8,0x73,0xaf,0x61,0x79,0x5e,0x56,0xd2,0x25,0xec,0xa2,0xba,0x5a,0xa3,0xf3 }, { 0x25,0x1c,0x54,0x0e,0xfc,0x8d,0x3b,0x93,0x71,0xc4,0x45,0xb7,0xd9,0xc0,0x15,0x99,0xd2,0xf1,0x58,0x44,0xd8,0x48,0x28,0xd5,0xf8,0x2e,0xda,0xa9,0xc6,0x2b,0xf4,0x83 }, { 0x36,0xea,0x4c,0x1c,0x66,0x2c,0x64,0x37,0x65,0x08,0x98,0xeb,0xa3,0x46,0xba,0xef,0x06,0x72,0xaf,0x1c,0xb4,0xcb,0x6f,0xd6,0xf0,0xda,0xeb,0x5d,0xa1,0x47,0x95,0xfb }, { 0x3e,0xaf,0x46,0x8a,0xd3,0x68,0x3b,0xb0,0x2c,0x56,0xdb,0x92,0x56,0x34,0x83,0x5b,0xac,0x62,0x95,0x53,0x36,0x29,0x9b,0xb1,0x07,0x84,0x68,0x26,0x2d,0x31,0xfa,0x95 }, { 0x1a,0x9c,0x46,0x88,0xf1,0x09,0xfa,0xc0,0x1c,0x08,0xd2,0x7d,0x62,0xc9,0xfc,0x13,0x16,0xfa,0x80,0xe8,0xa7,0xed,0x92,0x0e,0xdb,0x2b,0xa9,0x50,0xe1,0xba,0x3f,0xc8 }, { 0x86,0xa8,0x5f,0xf5,0x78,0x76,0xfd,0x33,0x7a,0x3d,0x5f,0x18,0xda,0xa5,0xd1,0xac,0xd8,0x1f,0xf8,0x4d,0x59,0x05,0xdb,0xac,0x93,0x67,0x56,0x2f,0xf0,0x54,0x45,0x45 }, { 0xf4,0x49,0x04,0xfb,0x7d,0xc3,0x36,0x43,0x97,0xc5,0xbe,0xb7,0xd8,0x0c,0x3e,0x97,0x48,0xde,0x29,0xbf,0x8c,0xe8,0x6b,0x40,0xd7,0xd8,0xce,0x6a,0x4a,0xf7,0xb9,0xb5 }, { 0x77,0xa3,0x0c,0x8b,0x67,0x6c,0x11,0x22,0xc8,0x2e,0x63,0x0d,0xa4,0x4b,0x07,0xea,0x5a,0x98,0x43,0x5f,0x00,0x2d,0x86,0xd2,0x0e,0xc8,0x91,0xcb,0xc4,0x61,0x45,0x6f }, { 0x38,0x2c,0xd1,0x8e,0xa0,0x36,0xd8,0x49,0xc4,0xd3,0xb7,0x6a,0x59,0xa1,0x05,0xe2,0x07,0x88,0x19,0x8d,0x6b,0x56,0xcd,0x97,0x11,0x99,0xaa,0xcb,0xea,0xe5,0xb9,0x25 }, { 0x7d,0xbe,0x66,0x58,0x78,0x59,0x8d,0x31,0x37,0xe4,0x8c,0x06,0xef,0x2e,0xf7,0xc7,0x87,0x0d,0x86,0x5a,0x1d,0x3a,0x85,0xa8,0xa8,0x25,0x57,0x61,0xf3,0xc8,0xd6,0x29 }, { 0x67,0x5e,0xf5,0x35,0x02,0x3b,0x6e,0x40,0x4a,0x98,0xd9,0x47,0x15,0xc2,0x71,0x6f,0xb2,0x95,0xea,0x40,0xd5,0x6b,0x2d,0x03,0xe9,0x5c,0xb1,0x2b,0x18,0x5d,0xad,0x36 }, { 0x71,0x88,0xab,0xb1,0xe3,0x30,0x74,0xca,0xf0,0x5e,0xa5,0x80,0xe9,0xf3,0x15,0x3c,0x70,0xd6,0x5e,0x10,0x4d,0xd7,0x8c,0xbf,0xac,0xad,0xaa,0x4f,0xdc,0x9e,0xf6,0x79 }, { 0xf5,0xcf,0x6f,0xb2,0x9e,0x90,0xa9,0x01,0xc4,0xad,0xa5,0x23,0xf2,0x09,0x37,0x93,0x8d,0xea,0xa4,0x46,0x13,0x97,0x2a,0x6c,0xfa,0xb5,0x48,0x16,0x44,0xc0,0x0c,0xc4 }, { 0x3e,0x3a,0xfb,0xd1,0x6f,0x8c,0xc3,0x1c,0x51,0x97,0x16,0x83,0xad,0x71,0xcf,0x2a,0x37,0x7b,0xd0,0x5c,0x0b,0x66,0x75,0x8a,0xbd,0x66,0x3e,0x9e,0x02,0x03,0x90,0x81 }, { 0xd7,0xd7,0xa4,0x41,0x21,0x70,0x00,0x03,0x44,0xf2,0x24,0x72,0xdf,0x32,0xde,0x51,0xad,0xd6,0x90,0x8c,0x02,0x7e,0xe4,0xb2,0x54,0x72,0x38,0xc7,0xcc,0xb9,0x20,0x7a }, { 0x68,0x18,0x3d,0x3a,0x3e,0x35,0x6c,0x43,0xeb,0x58,0x52,0x3f,0x49,0x55,0xef,0xa6,0x7f,0x47,0x9d,0x0c,0x21,0x37,0xd7,0xa1,0x1b,0xcb,0x50,0x2f,0xcb,0x4d,0x0b,0x33 }, { 0x76,0x5f,0x68,0x7f,0xf1,0x3b,0x1c,0xf3,0x00,0xdf,0x26,0x65,0x71,0xaa,0xdd,0x83,0xaf,0x23,0xba,0x44,0x1d,0x98,0xb4,0xec,0xb7,0xcc,0x59,0x9a,0x82,0xbc,0xc0,0x81 }, { 0xf3,0x0b,0x26,0x28,0x96,0xe0,0xc0,0x99,0x73,0x4e,0xd6,0xa7,0x53,0x72,0x99,0x00,0x88,0x57,0x9c,0xb7,0x0a,0x16,0x33,0xe2,0xbc,0x12,0x94,0xe5,0x81,0x71,0x2a,0x63 }, { 0xae,0xde,0x95,0x0c,0xf7,0xb7,0x14,0x89,0xff,0x71,0xd2,0x1b,0xec,0x53,0x06,0x26,0xfa,0x5b,0x0d,0x0a,0x94,0xd5,0x42,0xf4,0xb3,0x80,0x11,0x59,0x2c,0x1c,0x65,0x62 }, { 0xce,0xcc,0x15,0x07,0xdc,0x1d,0xdd,0x72,0x95,0x95,0x1c,0x29,0x08,0x88,0xf0,0x95,0xad,0xb9,0x04,0x4d,0x1b,0x73,0xd6,0x96,0xe6,0xdf,0x06,0x5d,0x68,0x3b,0xd4,0xfc }, { 0x68,0x06,0xcd,0xcc,0x96,0x22,0x3a,0x72,0x73,0xc1,0x07,0x66,0x05,0x7f,0x60,0x84,0xf7,0x82,0x33,0xea,0x79,0x06,0x82,0x1b,0x43,0x2a,0xfa,0xeb,0xa2,0x97,0x9a,0xd9 }, { 0x6b,0x79,0xc5,0x7e,0x6a,0x09,0x52,0x39,0x28,0x2c,0x04,0x81,0x8e,0x96,0x11,0x2f,0x3f,0x03,0xa4,0x00,0x1b,0xa9,0x7a,0x56,0x4c,0x23,0x85,0x2a,0x3f,0x1e,0xa5,0xfc }, { 0x33,0x23,0x89,0xbb,0x1a,0xf1,0x50,0xd9,0x23,0xd0,0x3a,0x75,0x17,0xf1,0xb0,0xa2,0x41,0x60,0x85,0xe0,0xad,0x0e,0x40,0x26,0xd4,0x20,0x9c,0xba,0x7e,0x9e,0xb8,0x99 }, { 0x9b,0xe3,0x28,0x77,0x95,0x90,0x78,0x09,0x40,0x7e,0x14,0x43,0x9f,0xf1,0x98,0xd5,0xbf,0xc7,0xdc,0xe6,0xf9,0xbc,0x74,0x3c,0xb3,0x69,0x14,0x6f,0x61,0x0b,0x48,0x01 }, { 0x9f,0x79,0x95,0xb1,0x74,0x5a,0x25,0x8f,0x10,0xab,0x68,0x10,0x32,0x04,0x4c,0xaf,0xa7,0x95,0x74,0xdf,0x27,0xeb,0x80,0xbc,0x4f,0xd4,0x1a,0xbf,0xfc,0xee,0xc0,0x6c }, { 0xd4,0xc5,0x06,0x1b,0x81,0xc4,0x68,0x2b,0x27,0xa0,0xcf,0xc6,0x45,0x9c,0xd9,0xd7,0x89,0x2e,0xb6,0x0a,0x43,0xf7,0x3d,0xd1,0x06,0x0b,0x6c,0x47,0x8a,0xa7,0xc3,0xd8 }, { 0x09,0x34,0xcc,0xb0,0x2f,0x1e,0x2d,0xa3,0xf1,0x85,0xb4,0xf9,0xe1,0xfa,0x3a,0xda,0x02,0x8a,0xcb,0x14,0xd1,0x71,0xd1,0x8a,0xb9,0xd7,0x6f,0x7d,0x59,0x75,0xa3,0xfd }, { 0x69,0x10,0x4e,0xf2,0x0c,0x66,0x76,0xaa,0xcc,0x9e,0x8c,0x29,0x18,0x00,0xd1,0xb7,0xe9,0x11,0xe2,0x0f,0x85,0xb4,0x06,0x61,0x56,0xea,0x11,0x8a,0xce,0x44,0xb8,0xd7 }, { 0xc2,0xb0,0x87,0xe8,0x02,0x84,0x4a,0xbc,0xa9,0x92,0x7a,0x67,0xd6,0x06,0x75,0xe1,0x08,0xf7,0xb1,0x10,0x92,0xfe,0xcf,0x8b,0x2b,0x66,0xe0,0x0c,0x53,0xdc,0x49,0x53 }, { 0x3b,0xe5,0x33,0x82,0x2b,0x14,0x6a,0x67,0xb7,0x64,0x93,0x97,0xf6,0xfd,0xcd,0xe0,0x45,0x12,0x33,0xed,0xa2,0x82,0x99,0x7f,0xe3,0x1c,0x4d,0xcc,0x0a,0x9b,0x09,0xfb }, { 0xf2,0x4c,0x0a,0xc0,0x1e,0x5b,0x7d,0xd9,0x45,0x85,0xa4,0x48,0x46,0xae,0xd3,0x1c,0x3f,0x84,0x3f,0x6f,0x6b,0xd1,0x7e,0xd4,0x3c,0xfa,0x92,0x9f,0xae,0xdb,0xe3,0x8e }, { 0xf5,0x38,0xcb,0xdd,0x2a,0x80,0xda,0xa5,0x14,0x8c,0x77,0x11,0xe4,0xde,0x66,0x7e,0xab,0xdc,0x90,0xf6,0x1f,0xbd,0x1a,0x9a,0xed,0xbd,0xff,0x47,0x80,0xda,0xd5,0xe1 }, { 0xd4,0x39,0x4a,0xaa,0xef,0x05,0xeb,0xdf,0xbd,0xcb,0xb4,0xb0,0xfe,0xc0,0x8b,0xda,0x11,0x20,0xe6,0xad,0x53,0x41,0x96,0x67,0x89,0xdc,0x22,0x8d,0x49,0x14,0x79,0xd4 }, { 0x29,0xd8,0xad,0xa1,0xdc,0x71,0x2d,0x24,0x64,0x8a,0xd5,0x3f,0xbd,0x7f,0x00,0xde,0x37,0x7f,0x67,0x24,0x6f,0x0a,0xfc,0xbb,0x4d,0xb8,0x61,0xfc,0x53,0x7e,0x4b,0xb2 }, { 0xfe,0xf6,0x5a,0xd6,0x79,0xa0,0x6b,0x18,0x36,0x56,0x39,0xa9,0x45,0xb3,0x10,0x2d,0x77,0x13,0x05,0xc6,0x68,0xbf,0x99,0x23,0x57,0x71,0x01,0x19,0xa5,0xb1,0xd7,0x38 }, { 0x05,0x51,0x39,0xb0,0xf6,0xda,0xf3,0x3b,0x3f,0xdc,0x29,0x4e,0x2b,0xfc,0x1a,0xd9,0x14,0xde,0x91,0xf7,0xd6,0xe9,0xf7,0x17,0xb4,0x50,0x9c,0x04,0x7f,0xbc,0x6a,0xcc }, { 0x7f,0x0c,0x8f,0x8c,0xbf,0x23,0xbd,0xaa,0xd8,0x5b,0x17,0x1a,0x4b,0xcd,0xa1,0x67,0x38,0xd3,0xe8,0x1a,0xcb,0x93,0x4f,0x7c,0xe7,0xb6,0xa8,0xfd,0xe8,0x97,0x21,0x5a }, { 0x5c,0x35,0xbe,0x3c,0x93,0xb6,0xab,0x3c,0x47,0xc5,0x5d,0xa7,0x4d,0x94,0x17,0x0b,0x0b,0x5e,0xb3,0x2a,0xbf,0xf2,0x0f,0x92,0x2f,0xaa,0xf2,0x1c,0x04,0xb9,0xee,0x18 }, { 0x0c,0xdc,0x95,0x23,0x1e,0xdd,0x87,0x63,0x4f,0x42,0xec,0x16,0x6c,0x3e,0x96,0x11,0x57,0x12,0xa4,0x8f,0x01,0x63,0x77,0xeb,0xe3,0x8a,0x30,0x23,0x48,0xeb,0x0c,0x1d }, { 0x28,0x6b,0xe3,0x20,0x13,0xbd,0x2a,0x04,0x4d,0x4b,0x6c,0x93,0xa6,0xd8,0xb7,0x23,0xcd,0x1f,0xff,0xd6,0x4e,0x75,0xaf,0x1c,0xaf,0x24,0x5e,0x57,0x0b,0x93,0xd5,0x9f }, { 0x0f,0x96,0x8d,0x60,0x70,0x44,0x6f,0xaf,0x45,0x53,0xdd,0xca,0x74,0xc1,0xbf,0xea,0x14,0x89,0xa5,0x6b,0x23,0xe7,0xca,0xd4,0x6d,0x5f,0x8a,0x95,0x76,0xaa,0x54,0x86 }, { 0xa1,0xfa,0x54,0x0c,0x8c,0x3d,0xeb,0x01,0xd5,0xb0,0xa2,0x43,0xbe,0xc3,0xf9,0xb1,0x7c,0xed,0x1f,0x3f,0xae,0x67,0xc7,0x34,0x07,0xb0,0x39,0xdf,0x93,0x8b,0x3a,0x68 }, { 0x74,0x74,0x9f,0xcb,0x58,0x72,0x24,0x48,0x7f,0x06,0x68,0x0c,0x23,0xf7,0xb4,0x5a,0x0c,0x7f,0x11,0x1d,0x3f,0xc7,0x98,0x15,0x0a,0x1e,0x3a,0xe7,0xa3,0x49,0xcf,0xb3 }, { 0x70,0x9a,0x22,0x79,0xcc,0x68,0xcf,0x00,0x7c,0x15,0x5e,0xb9,0x2f,0xd9,0x85,0x82,0xd8,0xe3,0xa3,0xad,0xce,0x47,0xa3,0x13,0x59,0x98,0xee,0xc9,0xa4,0x58,0xe6,0xd9 }, { 0xcb,0xbe,0xc9,0xa3,0xb1,0x61,0x52,0x64,0x7f,0x74,0x44,0xf4,0x66,0xd8,0x9f,0xee,0x0a,0xf3,0x55,0x54,0xfe,0x28,0xc9,0x92,0x88,0xa0,0x8c,0x88,0x5c,0xf3,0x19,0x7e }, { 0x8b,0x8a,0x88,0xd1,0x76,0xa4,0x1d,0x5e,0xbd,0x33,0x79,0xc2,0x20,0xef,0x0f,0xbb,0xa2,0x7e,0xcb,0x39,0x02,0x2c,0xe3,0xbf,0x60,0xc4,0x8c,0x03,0xe3,0x69,0x26,0x7d }, { 0x30,0x9f,0xa9,0x99,0xd7,0x87,0x86,0x4e,0xdd,0x1a,0x53,0xd7,0x3a,0xfa,0xd8,0x26,0xef,0x3a,0x3f,0xd9,0x30,0x54,0xa7,0xb6,0x48,0xad,0x26,0x2b,0x37,0xba,0xf1,0x9c }, { 0xdc,0xa4,0xe7,0x8d,0xb0,0x37,0x99,0xdd,0xa7,0x5e,0x8a,0x29,0x5c,0x0d,0xc7,0x21,0x6b,0xb6,0xbd,0xc6,0x96,0x7c,0x27,0xc1,0xb0,0xbb,0x05,0xc7,0x54,0x9e,0xa6,0x56 }, { 0xba,0x4d,0x60,0xd2,0xb5,0xff,0xeb,0x63,0x33,0x6c,0xf8,0xa0,0x9e,0x6c,0xe6,0x75,0xea,0x08,0x87,0x4b,0x71,0x8c,0x58,0x82,0xfc,0xd3,0xd6,0xe4,0x76,0xe5,0x2c,0xe0 }, { 0x1f,0x17,0xc2,0xd0,0xdc,0x7c,0xb7,0xec,0x7d,0x8a,0x1a,0xb9,0xf6,0x2c,0x9d,0xc0,0x97,0x05,0x1a,0xa4,0x11,0x5a,0x8c,0x01,0x13,0xa4,0x85,0xed,0x82,0x0e,0x1a,0x5a }, { 0xa3,0xc2,0x04,0xe1,0x74,0x99,0x6f,0x18,0xe3,0x56,0x5f,0xfd,0x66,0x5d,0x41,0x71,0x75,0x4d,0xca,0x20,0xb7,0xb9,0xc2,0xd0,0xe8,0x8a,0xf0,0xd5,0x36,0xc4,0x19,0x85 }, { 0x71,0x92,0xbe,0xc2,0xc8,0xb7,0x8d,0xe5,0x9a,0x3e,0x00,0x45,0x23,0x54,0x40,0xe0,0xd6,0x56,0x3c,0xc4,0x99,0x91,0xbe,0x63,0x97,0xbd,0x27,0xa0,0xff,0xa8,0x1d,0x18 }, { 0x81,0x1e,0x2a,0xe8,0xd6,0x34,0x4a,0x78,0xac,0xf6,0xfe,0x8e,0x29,0x5d,0x4f,0x53,0x8e,0x54,0xe7,0x3b,0x3b,0xd1,0x21,0x25,0x84,0x6f,0x60,0x9e,0xc4,0x1d,0xbd,0xaf }, { 0xc9,0x5d,0xf2,0x25,0xb7,0x6c,0xf4,0x96,0x55,0xbc,0x2d,0x12,0xfc,0x78,0x0a,0xab,0x96,0x4c,0x07,0xdc,0xcb,0x08,0xb2,0xe7,0xcc,0xcb,0x61,0x1a,0x48,0x34,0xe1,0xfd }, { 0x30,0x51,0xfa,0x7f,0x38,0xad,0xce,0x51,0x9e,0x6a,0x8d,0x35,0x85,0x97,0x69,0xed,0x9b,0xf1,0x5c,0xa5,0x91,0x5f,0x5b,0x9c,0xc7,0x0f,0xcc,0x34,0x5c,0xca,0x53,0xf9 }, { 0x46,0x45,0xee,0x13,0xc1,0x7a,0xa7,0x9c,0xe3,0x4c,0xfc,0x00,0xb2,0xbb,0x67,0xd4,0xb1,0x6d,0xf1,0x01,0x04,0x28,0x21,0xe1,0xe4,0xc4,0x45,0x8a,0x31,0xbe,0x87,0xdd }, { 0x86,0xdb,0x38,0x67,0xaf,0x37,0x79,0x11,0xda,0x0f,0x40,0xcd,0xb9,0xac,0xb0,0x8d,0x66,0x35,0x95,0x39,0xb0,0x70,0xc5,0xc5,0x5c,0x95,0xda,0x4d,0xa0,0x97,0xff,0x86 }, { 0x88,0xe5,0x3e,0x75,0x15,0xca,0xc8,0x77,0xe3,0x5a,0x5b,0xa8,0x52,0xa0,0xfc,0x38,0x3f,0x50,0xcf,0x5c,0x45,0x7a,0x74,0x6f,0x60,0x19,0x41,0x89,0xbc,0x76,0x00,0x24 }, { 0x92,0xd8,0xe6,0x2c,0x1a,0x4f,0x88,0x14,0x55,0x93,0xe6,0x08,0xf5,0x70,0xba,0x52,0x41,0x5a,0xac,0x53,0xa3,0x91,0x45,0xfa,0xb6,0x8e,0x46,0x10,0xef,0x1b,0xb2,0x79 }, { 0x26,0x6b,0x5d,0x36,0x45,0x51,0xf7,0x3b,0x9c,0xdb,0x75,0x34,0x09,0x9b,0x68,0x09,0xaf,0x9b,0x72,0xa4,0xe6,0x59,0xcc,0x5a,0xa9,0x51,0xb1,0x18,0x60,0xf7,0xd5,0x7c }, { 0x7b,0x18,0xc4,0x02,0x34,0xb0,0x98,0x63,0x7d,0x98,0xd0,0x15,0xd1,0xed,0xdf,0x17,0x91,0xe8,0xdb,0xe2,0x2d,0xf8,0x1b,0xb7,0xb6,0x65,0xf9,0x82,0xf4,0x88,0x45,0x9b }, { 0x6b,0x03,0x2c,0xc7,0xac,0xc2,0x14,0xa6,0x84,0x85,0x57,0xb5,0x1e,0x10,0xc4,0xc9,0x5c,0xdd,0x2c,0x41,0x78,0xcf,0x87,0x43,0x38,0xd7,0x87,0x85,0x5e,0x9c,0xc2,0x7f }, { 0x07,0xb2,0x9d,0x71,0xe8,0x77,0xd2,0x1c,0x93,0x56,0x52,0xd8,0x90,0xc8,0xee,0xd6,0xc4,0x91,0x82,0x19,0x1f,0x87,0xf3,0xd8,0x35,0x62,0x88,0xb1,0xb4,0xb5,0xc3,0x54 }, { 0x8f,0x8e,0xc6,0x2a,0x2a,0xe1,0xb6,0x6c,0xf5,0x0e,0x6c,0xab,0x96,0x91,0xc0,0x9e,0x87,0xa4,0xd4,0xba,0x55,0x42,0xd3,0xa1,0x90,0x38,0x6d,0x9d,0x9c,0xa2,0xdc,0xf0 }, { 0xa3,0x38,0xc8,0x6a,0xb2,0xb8,0x50,0xa5,0x14,0x45,0x2c,0x3a,0x70,0x2d,0xcf,0x47,0x45,0x79,0x1d,0x3d,0x8f,0x40,0xc8,0xfa,0xd6,0xde,0x4f,0x64,0x23,0x6b,0x49,0xca }, { 0xe6,0x3a,0xb1,0x11,0x20,0x88,0xb1,0x71,0xdf,0x28,0xb5,0x14,0x7c,0xad,0x05,0x23,0xf5,0x14,0x72,0x1b,0xd4,0x0d,0x9b,0x59,0xc1,0x8f,0x4f,0x91,0x7b,0x6a,0xc6,0x80 }, { 0x74,0x1c,0x65,0xf3,0xd7,0x1f,0xf0,0x3d,0xe7,0xf4,0x91,0xc0,0x08,0xcb,0x9a,0x26,0xf7,0x46,0x84,0xf7,0x0a,0x3e,0x78,0x71,0x71,0xa8,0x58,0x41,0x05,0x90,0x15,0xab }, { 0x36,0x64,0x01,0x7a,0x6e,0xdd,0xc9,0xfd,0xb7,0x3c,0x5f,0xb8,0xfd,0xc7,0xe6,0xbf,0x76,0xfc,0x70,0x30,0x11,0xbd,0x85,0x41,0xad,0xc0,0x47,0x44,0x5d,0x96,0x5f,0x9d }, { 0xd4,0x50,0x74,0x60,0xa9,0x22,0x0a,0x7f,0x0a,0x62,0x51,0x99,0x0f,0x51,0x49,0x5d,0xdd,0xa0,0xc1,0x33,0xba,0x6a,0x4e,0x3b,0x1b,0x2a,0x98,0xd7,0x84,0xa0,0xcc,0xed }, { 0x77,0xc8,0xfb,0x96,0xf1,0x4f,0xf4,0x21,0xe0,0x03,0xe2,0xdb,0x02,0x9d,0xf0,0xd4,0x5b,0xd3,0x77,0xd0,0x8f,0x84,0x45,0x50,0x10,0x21,0xbf,0xd5,0xa2,0x73,0x1e,0xf8 }, { 0x19,0x41,0xb8,0x39,0x58,0xed,0x3d,0x33,0xf9,0xd5,0xcb,0xb8,0xde,0x05,0xa3,0xdf,0x9f,0x96,0x44,0x9c,0x1e,0x7c,0xc3,0x28,0x22,0xcf,0x41,0xf6,0x72,0xad,0x49,0xc6 }, { 0x7e,0xb1,0x40,0xba,0xe6,0x43,0x2b,0xdc,0x5c,0xd7,0x81,0xa8,0x6d,0x41,0x31,0x92,0x33,0xa9,0x88,0xc2,0x0f,0xd5,0x87,0xd8,0x5d,0x72,0xd2,0x9f,0xa7,0xa3,0x82,0x53 }, { 0x1c,0x4c,0x04,0xcb,0xfb,0x6f,0xe9,0xc7,0xa6,0x82,0xee,0x85,0x6a,0x02,0x81,0x25,0x3c,0x6b,0x70,0xcf,0xb1,0x2a,0x47,0xc4,0x5d,0xd2,0xb0,0xb4,0xf5,0x1d,0x60,0x5b }, { 0x6c,0x3b,0xbb,0x18,0xf9,0x3f,0x29,0x88,0xa1,0x20,0xb2,0x09,0xc0,0x34,0xa2,0xbd,0xa5,0x22,0xec,0xdf,0xf9,0xce,0xe8,0xf8,0x01,0xba,0xbd,0xeb,0x4c,0xba,0x64,0x61 }, { 0xf0,0xa5,0xaf,0x4b,0x37,0x97,0x21,0xc4,0x1c,0x76,0x1b,0x1c,0x85,0x88,0xb7,0xad,0x2c,0x07,0x80,0xe9,0xb2,0xfb,0x44,0x87,0x85,0x5d,0xa1,0xb2,0x64,0x8a,0x29,0x1c }, { 0xc9,0x15,0x5e,0x23,0x95,0x4c,0x3a,0xb6,0x30,0xec,0x6e,0xd8,0xc6,0x47,0x8c,0xf2,0xaf,0x48,0x13,0x2a,0x23,0x0d,0xef,0x8e,0x83,0xb0,0xe3,0x26,0x3c,0x37,0x0a,0x5c }, { 0x55,0x62,0xe5,0xe4,0xe2,0x55,0x23,0x2a,0xd8,0xaf,0x45,0x1c,0x0e,0x26,0x4b,0xae,0xf4,0xf1,0x9d,0x26,0xc7,0x97,0x9a,0x69,0x82,0xa3,0x71,0x9e,0xa6,0xa9,0xb0,0xce }, { 0xb0,0xd2,0xb4,0xff,0x99,0xa1,0x84,0x27,0xbd,0x01,0xec,0x78,0x80,0x36,0x86,0x62,0xae,0xf3,0x39,0x3b,0xf9,0x90,0x5d,0xee,0xd1,0xd8,0xae,0x3e,0x9a,0x42,0x17,0x8e }, { 0x37,0x77,0xde,0xa6,0xc5,0xd0,0x5a,0xdc,0x4b,0xbb,0xc0,0xf5,0xd8,0x1c,0x22,0x6b,0xc1,0xd8,0xb8,0x8f,0xfc,0xb7,0x55,0xa0,0x79,0x74,0x54,0x31,0xaf,0x0f,0x2a,0xc4 }, { 0x61,0xe2,0xe1,0xbd,0x6e,0x74,0x2c,0xf3,0x22,0xfb,0xfc,0xac,0x8a,0x2f,0xab,0x18,0x12,0xff,0xb5,0x81,0x30,0x19,0x99,0xc1,0x31,0xa0,0x79,0xab,0x3b,0x94,0x2b,0x3b }, { 0x76,0xca,0x87,0x12,0xb4,0xbc,0xec,0xaa,0x62,0x6a,0x38,0xc2,0xe0,0xc5,0x87,0xc0,0xc8,0x59,0xf1,0x7c,0xc6,0xff,0x95,0x82,0x32,0x4e,0x3b,0xf3,0xe9,0x0b,0xa0,0x4b }, { 0xee,0xc5,0x74,0x1a,0x61,0x60,0xc3,0x5c,0xcb,0xc5,0x81,0xda,0x8e,0x67,0x0a,0x78,0xc5,0x6e,0xa5,0x3a,0x6e,0x95,0x44,0x0b,0x88,0x6e,0x4f,0x96,0xf6,0x87,0x51,0x67 }, { 0x27,0xef,0x47,0x76,0x9e,0x2e,0xf4,0x46,0x0d,0x21,0xfa,0x23,0x91,0x88,0xa5,0xfb,0xb7,0xd2,0x9b,0x67,0xa4,0xb1,0x3b,0xc0,0x70,0x61,0x36,0x55,0x46,0xac,0x5c,0x6e }, { 0xa3,0xc4,0x41,0xca,0x11,0x92,0x31,0xcd,0x56,0x41,0x02,0x94,0x07,0xc2,0xa8,0x0b,0xd3,0xfe,0xbd,0xb1,0xa2,0x49,0x8c,0xb3,0xc4,0x73,0xd5,0x37,0x3a,0xbc,0xd4,0x6b }, { 0x0b,0xb2,0x7e,0xf6,0x72,0x15,0x84,0xd7,0x2c,0xee,0x85,0x8a,0xee,0xdf,0xad,0x02,0x33,0x1f,0xc6,0x8f,0xfe,0x88,0x5e,0x0f,0x16,0xc8,0x4e,0x22,0xbb,0x32,0xaa,0x8e }, { 0x09,0x5e,0xee,0xa3,0x7c,0xf9,0xae,0x12,0x6f,0x61,0xf2,0xb1,0x74,0x8b,0x14,0xcc,0xca,0x16,0x92,0x1f,0xc6,0x08,0x35,0xd8,0x7d,0x1b,0x08,0x36,0x3f,0x14,0x76,0xb6 }, { 0xb1,0x11,0xf2,0x2e,0xff,0xbc,0x77,0xbb,0x8d,0x9a,0xfc,0xe0,0x78,0x44,0xe9,0xc0,0xec,0x65,0xfa,0x1f,0xa1,0xa1,0x2d,0x9a,0x34,0x23,0x37,0x50,0x95,0xa3,0x71,0xb6 }, { 0xda,0x5f,0x04,0xd1,0xa4,0x01,0x3b,0x3e,0x29,0x44,0xb2,0x5d,0x2e,0x32,0x9c,0x75,0xdb,0x2e,0x27,0xb2,0x4e,0x20,0x45,0x3a,0x51,0x63,0xf6,0x58,0xa5,0xa1,0x34,0xb7 }, { 0xfa,0xd7,0xee,0x91,0x9a,0x41,0xd0,0xc4,0xce,0xd8,0x08,0xcb,0x5f,0x89,0xbe,0x20,0xd2,0xe4,0x3a,0x9a,0x66,0xcb,0x0c,0xfc,0x5d,0x39,0x52,0x2a,0xa6,0x88,0xa1,0x2a }, { 0x16,0x22,0x4f,0xc3,0x98,0x9e,0x5a,0x5f,0x39,0xe8,0xac,0xad,0x3c,0xc3,0x67,0xa2,0x4d,0x3a,0x25,0x67,0x80,0xab,0x8e,0xbe,0xa1,0x9b,0x27,0x9c,0x9f,0xcd,0x68,0xf3 }, { 0x4d,0x4d,0xbd,0x12,0x93,0xb9,0x7c,0x0e,0xaf,0x33,0xb8,0xf7,0x13,0x7a,0xfb,0x55,0xb4,0x0a,0x97,0x1a,0x22,0xee,0x45,0x6f,0xb6,0x53,0x5b,0xaf,0xc8,0x7b,0x63,0x83 }, { 0x44,0x30,0xff,0x1e,0xed,0xc8,0xdd,0x56,0xf8,0x71,0xde,0xb8,0x4a,0x5b,0xe3,0x0c,0xe7,0xa2,0x5e,0x40,0x61,0x1e,0x31,0xff,0x9b,0xf1,0xbc,0x3a,0x72,0xeb,0xb4,0xc6 }, { 0xe3,0x30,0x01,0x80,0x63,0x1b,0xe6,0xb1,0x09,0x41,0x5f,0x49,0x86,0x3e,0x10,0xb9,0x42,0x51,0xe9,0xee,0x98,0xbf,0xd6,0xbd,0x93,0x15,0xe1,0x54,0x60,0x72,0x22,0xc0 }, { 0xeb,0xab,0xa3,0xd2,0xcb,0x08,0x31,0x18,0x51,0xaa,0x23,0x95,0x5c,0x19,0x46,0xd8,0x18,0xff,0x9c,0x47,0x3d,0xdc,0xff,0xe8,0xf1,0x23,0x14,0xe8,0xd9,0x32,0xa4,0xe1 }, { 0x9a,0xcd,0x4c,0x39,0x75,0x01,0x2e,0x23,0x9e,0x25,0x1f,0xf2,0xf9,0xa0,0x71,0x74,0x3c,0x5b,0xd4,0x3c,0xa2,0xbb,0x99,0xa5,0xe9,0x5b,0x54,0x5e,0x98,0xa7,0xe3,0x87 }, { 0x47,0xe6,0x41,0x7e,0xf2,0x21,0x1c,0x26,0xd6,0xcb,0x05,0xb5,0xc0,0x9a,0x08,0xa2,0x4d,0xa2,0xbb,0x86,0x78,0xed,0xde,0xee,0xa4,0x18,0xfb,0xae,0xc8,0x84,0x52,0xa0 }, { 0x87,0x89,0x84,0x0a,0x8a,0xc2,0x84,0x0f,0x95,0xba,0x16,0x8a,0x83,0x23,0x17,0x3a,0x71,0x0e,0x77,0x4a,0x0b,0xbe,0x6b,0xb8,0x39,0xf7,0x7f,0xe9,0x99,0x9f,0xa0,0x8a }, { 0x95,0xda,0x23,0x38,0x72,0xce,0x27,0x5c,0xc9,0x1c,0x9a,0xea,0x8e,0x0b,0xac,0xa8,0xa2,0x6a,0x51,0xee,0xf1,0x56,0x4b,0x97,0x2d,0x1c,0x40,0xa7,0x90,0x71,0x22,0x59 }, { 0xbf,0xab,0x17,0x8a,0xff,0xb9,0xdb,0xf6,0x5d,0x61,0x53,0x65,0xf6,0x3e,0xea,0x2f,0xc0,0xae,0xc5,0x82,0xe6,0xc1,0xd8,0x9d,0x22,0x1a,0x22,0xa5,0x4b,0x22,0x0d,0xca }, { 0x21,0xa5,0xca,0xf5,0xa0,0xdc,0xd4,0xd4,0x4d,0x47,0x2a,0xfb,0x54,0x56,0x4f,0xb7,0xe1,0x3d,0xf5,0x9d,0xfb,0xfc,0xec,0x54,0x52,0x60,0x4c,0xf7,0xad,0xc7,0xcd,0x1a }, { 0x4e,0x36,0x4e,0xa3,0x9c,0x8b,0x2b,0xb5,0x44,0x89,0x81,0xd0,0x24,0x70,0x32,0xe0,0x1c,0xb6,0x85,0x3f,0x1b,0x12,0xc8,0x4f,0x89,0xdc,0xda,0x09,0x3a,0x3d,0x46,0x23 }, { 0xc0,0x06,0x42,0x99,0xa0,0xaa,0x48,0xe2,0xc9,0x8e,0x4b,0x4e,0x65,0x03,0xdf,0x04,0xc0,0x3e,0x15,0x73,0x41,0x7d,0xdf,0xd3,0x52,0x2c,0xbc,0xde,0x85,0x7d,0x10,0x3a }, { 0x04,0x33,0x0e,0xf5,0xe1,0xb9,0xb1,0x65,0xe2,0x1d,0xf2,0x60,0x62,0x63,0x40,0xce,0x1e,0x33,0x7b,0x31,0xfc,0xbf,0x50,0x55,0x05,0x2d,0x1c,0xe2,0x95,0x54,0x1b,0x30 }, { 0x44,0xc5,0xfb,0x6a,0x83,0x38,0xd3,0x73,0xf9,0xab,0xdd,0x6c,0xd7,0xa3,0xd2,0x12,0x35,0x34,0xcc,0x41,0x28,0x6f,0x7c,0x02,0xd3,0x52,0x47,0xee,0x70,0xa8,0x39,0x26 }, { 0xeb,0xdd,0xe7,0x7a,0xf6,0xdb,0x5a,0xb9,0xb5,0x22,0xa7,0x64,0x4b,0x03,0x61,0x6c,0x16,0x24,0xda,0xf0,0x90,0xf2,0xbd,0xaa,0x61,0xfd,0xd8,0x62,0x60,0xb0,0xdd,0x35 }, { 0xae,0x8e,0x3a,0xa1,0x74,0xbf,0x43,0x37,0xe3,0x9d,0xe0,0xe0,0x8c,0xbd,0x88,0xb1,0xcd,0xf1,0x73,0xb2,0xc6,0x93,0xc1,0x09,0x55,0x52,0xcc,0xdb,0xa9,0x51,0x50,0x16 }, { 0xf4,0x95,0x68,0x6c,0x53,0x81,0x1b,0xd4,0x11,0xbb,0x92,0xbc,0x83,0x24,0xf6,0xd0,0x25,0x6d,0x66,0x50,0xf8,0xdc,0x11,0xd2,0x24,0x25,0xb3,0xa2,0x19,0xae,0x34,0xbe }, { 0x77,0xcd,0x4a,0x30,0x38,0xcd,0x19,0x8a,0x78,0x8c,0x19,0x5b,0x21,0x2b,0x53,0x1f,0x79,0x7a,0x18,0x94,0x19,0x05,0x10,0xfa,0x22,0x38,0x7b,0x43,0x5b,0x37,0x1d,0x24 }, { 0xc4,0x59,0xca,0x15,0x0f,0xba,0xab,0xd1,0x72,0xcc,0xd4,0x7f,0xc0,0x90,0x31,0x69,0x61,0x4c,0x21,0xdc,0x13,0xcc,0x9a,0x4a,0xae,0x23,0xd0,0x08,0x74,0xcb,0xd2,0x0e }, { 0x9c,0xbe,0x98,0x41,0xf0,0xb1,0xa5,0x98,0xc1,0x3b,0x40,0x2a,0x39,0xf4,0xbb,0x2f,0xa3,0xf2,0x8a,0xea,0x58,0x25,0x4d,0xe2,0x59,0x97,0x1e,0x43,0x20,0x07,0x6b,0x39 }, { 0x27,0xbe,0xe7,0xb5,0xc3,0x67,0x52,0xb2,0x79,0x95,0xba,0xb2,0x60,0x73,0xb1,0x4f,0x36,0xfd,0x4f,0x08,0xc5,0xf9,0x9e,0x9a,0xcb,0xc0,0x0a,0xda,0x11,0xe8,0x60,0xcc }, { 0x18,0xe6,0x56,0x78,0xbc,0xec,0xf4,0x4c,0x18,0x64,0x25,0xd4,0x1d,0xde,0x99,0x23,0x83,0xfd,0x79,0xdf,0x66,0xc1,0x9a,0xa7,0x3a,0x31,0xdc,0x80,0xc0,0x31,0x2c,0x9b }, { 0x44,0x4d,0xc6,0xcd,0xd8,0xcc,0x2f,0x7e,0xf6,0x55,0x74,0x61,0xea,0x40,0xf9,0x83,0x48,0x11,0xfb,0x59,0x39,0x66,0xec,0x95,0x94,0xcd,0x74,0x47,0x21,0x47,0xd0,0xdf }, { 0x60,0x87,0x98,0x76,0xa4,0xce,0x9d,0xd3,0x95,0x08,0x79,0xdd,0xbb,0xd6,0xd0,0x04,0x88,0xd6,0x1e,0x53,0x46,0xcd,0x79,0x1d,0x39,0x7d,0xd5,0x24,0x35,0x4c,0xe7,0xf7 }, { 0x71,0xf1,0x06,0xee,0xd3,0xbe,0x65,0xc0,0x73,0x2b,0x4d,0x4d,0xab,0xa1,0xb9,0x64,0xfc,0x18,0xb4,0x69,0x32,0xf2,0xd5,0xe1,0xf4,0x73,0xf0,0x4e,0x64,0x4c,0xec,0x54 }, { 0xda,0xab,0x1b,0x53,0xb6,0x7d,0xa0,0x4c,0x6b,0x07,0x3b,0x18,0x45,0x18,0x76,0xf4,0x90,0x43,0x9a,0xd5,0x7c,0xa3,0xb2,0xbb,0xca,0xf4,0x3c,0x60,0x8e,0x65,0x36,0x25 }, { 0xa8,0x1c,0x76,0x34,0x52,0xa2,0x70,0x5a,0x1c,0x35,0x04,0xbd,0xbc,0x4d,0x75,0xcb,0x62,0xf6,0x78,0x37,0x7d,0xe7,0xfa,0xdc,0xf7,0x47,0xd4,0xd1,0x70,0xf5,0xb0,0xde }, { 0x0b,0x8c,0x00,0x2b,0x0f,0x1b,0x5f,0xa1,0xcc,0x6c,0x6a,0x87,0xcd,0xb0,0x59,0x77,0x60,0xd3,0x14,0xb4,0x4b,0x5d,0xe7,0x07,0x3d,0x3a,0x29,0xd1,0xec,0xd3,0x29,0x2f }, { 0x37,0x5a,0xe1,0x59,0x3a,0x8f,0x12,0x2f,0x3b,0x6b,0xd0,0x37,0x5f,0xa1,0x6d,0x9f,0xb8,0xb4,0x69,0x8f,0xbe,0xea,0xd9,0x16,0xe7,0x99,0xac,0x08,0xc8,0xd3,0x91,0x7f }, { 0xbb,0x52,0xbf,0x72,0x34,0x32,0xed,0xb0,0xf2,0x22,0x7a,0xa2,0x2b,0xbf,0x58,0xd3,0x64,0x8b,0x74,0x4b,0x80,0xea,0xb7,0x82,0xa8,0xba,0xbd,0x42,0x4c,0x44,0x58,0xca }, { 0x59,0x24,0xf0,0x0e,0x2d,0x21,0xdf,0xb0,0xf7,0x4e,0x03,0x20,0x36,0x10,0x69,0xac,0x06,0xee,0xab,0x5d,0x96,0x12,0x31,0x4b,0x05,0xb3,0x13,0xab,0xf9,0x13,0x1d,0xb7 }, { 0x30,0x77,0xf7,0x05,0x92,0xeb,0x03,0x5c,0x23,0xf6,0x83,0xe5,0x0a,0xa3,0xd8,0x6f,0x08,0xb6,0x38,0x5a,0x67,0xb0,0xde,0xa6,0x08,0xb5,0x0d,0xd8,0x0f,0xec,0x0f,0xce }, { 0x64,0x86,0x84,0x59,0xe6,0x04,0x73,0x98,0xe3,0x7e,0x70,0x8e,0x85,0x36,0x27,0x93,0xe0,0x87,0x3e,0x94,0xda,0xba,0x6e,0xea,0xf0,0x40,0x23,0x2f,0xf6,0xd7,0x3a,0x20 }, { 0x77,0x1d,0x30,0x3c,0xb6,0x2f,0x5b,0x77,0x36,0xc9,0x8d,0xda,0xa4,0xdb,0xee,0x4e,0xb4,0xa3,0x04,0x6b,0x8f,0xb1,0x77,0x0e,0x15,0x56,0x50,0x43,0xa9,0x77,0x2a,0x18 }, { 0x9f,0x79,0x64,0x44,0xc5,0x0e,0x31,0x73,0xb7,0x22,0x38,0xa0,0x00,0x09,0x54,0x11,0x15,0xf6,0x0c,0xac,0x91,0x5e,0x11,0xf3,0x49,0xb9,0x20,0xd4,0x5a,0xb0,0xcf,0xe2 }, { 0x8d,0x2c,0xe8,0x00,0xd5,0xa8,0xf6,0x5f,0xda,0x82,0xdc,0xd3,0x38,0x99,0x51,0xa2,0xed,0xd6,0xdb,0xad,0x88,0x2d,0x9e,0x69,0xf1,0x2b,0x51,0x34,0xcf,0x60,0xc6,0x7e }, { 0xa6,0xe5,0x40,0x06,0xad,0x70,0x26,0x20,0x2f,0xfc,0x82,0x37,0x58,0xce,0x4e,0x54,0xa9,0x65,0x70,0x79,0xc8,0x6a,0x57,0x8d,0x14,0x1c,0xbb,0x0a,0xc7,0xbe,0x83,0xa7 }, { 0x7f,0x23,0x6a,0x5f,0x62,0x16,0xb9,0x50,0xc8,0xbb,0xa1,0x6c,0xf8,0x1c,0xcf,0x6f,0x0a,0xd0,0x2a,0x46,0xb9,0x59,0x2b,0x31,0x38,0xa3,0x5e,0x37,0x0b,0x3a,0x53,0x63 }, { 0xb6,0xff,0x42,0xa5,0x45,0xb7,0x35,0x62,0xa0,0xba,0x54,0x43,0x80,0x77,0xa4,0x6a,0x07,0xe0,0x12,0xeb,0x5f,0xe4,0x4e,0x13,0x62,0x16,0xed,0x33,0xde,0x80,0x97,0xc8 }, { 0xfb,0xcb,0xe3,0x8e,0xdf,0x86,0x7f,0x76,0x7e,0x9c,0x7f,0xc4,0xab,0x8c,0x16,0xc7,0x90,0x66,0x95,0x49,0x47,0x73,0x2a,0x82,0xd5,0xa9,0x4d,0x41,0xf0,0xbc,0x27,0xe2 }, { 0x12,0x21,0x5f,0xbc,0x93,0x7a,0xca,0x84,0x08,0xd3,0xf0,0xb0,0xca,0xfe,0xad,0x7b,0x2b,0x9e,0xb1,0x60,0xe2,0xcd,0x5d,0x1a,0x9f,0xec,0xd1,0xc8,0x62,0xa8,0x6c,0xb5 }, { 0x23,0x28,0x9e,0x35,0xe7,0xb5,0x12,0x09,0x5e,0x82,0x73,0x00,0xe4,0x72,0x4f,0xaa,0xfb,0xba,0x55,0xe8,0x7f,0xd4,0x83,0xb0,0x7f,0x50,0xab,0x1a,0x22,0xdb,0x86,0x8e }, { 0x27,0x6a,0xc6,0x37,0x1e,0xc3,0x89,0xf3,0x7e,0x30,0xdf,0x0f,0xba,0xc2,0xdf,0x71,0x7b,0x7b,0x9c,0x86,0x30,0xae,0x5e,0x9c,0x72,0xd7,0x0f,0x3b,0xa2,0x2b,0x33,0x34 }, { 0x03,0x5a,0x68,0x2d,0x4c,0x99,0x5a,0x6a,0x86,0x5b,0x7e,0x3c,0x71,0x53,0xcb,0x02,0x2e,0x2a,0xf9,0x23,0x82,0x4e,0x07,0x25,0x49,0x18,0x60,0xb4,0x9d,0xfb,0xcd,0x96 }, { 0x89,0x5d,0x9e,0xcc,0x2d,0xf6,0xb6,0xce,0x57,0x70,0xfb,0xf4,0x21,0x35,0x60,0x39,0xd4,0x44,0x52,0xfa,0x84,0x3c,0x83,0x9e,0xbf,0xd4,0x21,0xe8,0x9d,0x05,0x45,0x89 }, { 0x49,0x21,0x51,0xda,0x6a,0x3a,0x29,0x68,0x3c,0x10,0x78,0xf9,0xd2,0x8e,0x2d,0xfb,0xee,0x1b,0xaf,0x94,0xf7,0x9c,0x05,0xd1,0x6c,0x51,0x9e,0x51,0xf9,0x4d,0x9e,0x07 }, { 0x17,0x3f,0x7d,0x87,0xe8,0xea,0xcc,0x07,0x1b,0xce,0x10,0x6a,0x3c,0x99,0x2c,0xb7,0x41,0x9a,0xcc,0x39,0xe2,0x00,0xdf,0x6a,0xab,0x75,0x6c,0x39,0x7b,0x42,0x90,0x5b }, { 0x9f,0x58,0xd8,0x38,0xed,0xde,0xee,0x06,0x2d,0xbc,0xc8,0xda,0x9f,0x73,0x15,0x96,0xc0,0x3c,0x24,0x6e,0xf3,0x39,0xb0,0xf4,0x79,0x92,0x63,0x54,0xc1,0x8b,0x64,0xa4 }, { 0x69,0x5f,0xb4,0xd5,0x25,0xe8,0x0d,0xd1,0xfa,0x01,0xf8,0xd0,0xc3,0xce,0x4e,0x95,0xf7,0x90,0x76,0x6a,0x2d,0xa5,0x23,0x9d,0xdc,0xd2,0x2f,0x31,0x63,0x1d,0x68,0x1d }, { 0xb7,0xcf,0x8a,0xe3,0x6b,0xa8,0xe0,0x43,0x2d,0x00,0xc9,0x6f,0x01,0x3c,0x02,0x63,0x77,0x0c,0x87,0x30,0x26,0x51,0xd9,0x8c,0xb3,0xed,0x37,0xfd,0xbd,0x45,0xde,0xe0 }, { 0xb3,0x4b,0x20,0x61,0xf3,0x81,0x5b,0x85,0xd5,0x95,0xb0,0x6b,0x92,0x9e,0x1a,0x29,0x76,0xe5,0x51,0x23,0x29,0x66,0x86,0xd7,0x12,0xac,0x34,0x47,0x3e,0xf5,0xdf,0x84 }, { 0x86,0x0f,0xe8,0x2d,0x5f,0x48,0x31,0xce,0x17,0x86,0x01,0x94,0xd2,0x66,0xac,0x0f,0x88,0xcd,0x18,0x5c,0x68,0x67,0x17,0xb3,0x9d,0x6a,0xe3,0x3f,0x47,0x04,0xfb,0x28 }, { 0x51,0x27,0xb7,0x33,0xec,0xd1,0x7c,0xd2,0x8d,0xe5,0xe2,0xbd,0xbe,0xc2,0x4b,0x3c,0xa1,0x3c,0x75,0xcb,0x1c,0xce,0x5a,0x61,0xa1,0xe2,0x69,0x0e,0x0f,0xb7,0xe4,0x05 }, { 0x1d,0xda,0x6f,0x20,0xb0,0x44,0x93,0xcc,0xe7,0x6f,0x5c,0x01,0x3f,0xc3,0x99,0x02,0x35,0x07,0xbe,0x8c,0x88,0x5a,0xa2,0xd6,0x06,0x2f,0x55,0x35,0x96,0x56,0x06,0xe7 }, { 0x21,0x59,0xcc,0x33,0xcb,0x70,0x3e,0x93,0xd8,0x13,0x1c,0x62,0x76,0x5e,0xc8,0x78,0x0f,0xed,0x0b,0x6a,0xdd,0xe8,0xec,0x0a,0xeb,0xc4,0x00,0x0f,0xd9,0x10,0xd1,0x3a }, { 0x5c,0xb4,0x4a,0x39,0xac,0xf1,0x71,0xa9,0x73,0x28,0xca,0x54,0x69,0xba,0xee,0x55,0x26,0xe3,0x61,0x08,0x69,0x78,0xdd,0x09,0xae,0x5c,0x4c,0x16,0x25,0x76,0x51,0x8c }, { 0x22,0x99,0xa7,0xaf,0x59,0x08,0x3b,0xcd,0x1f,0x85,0x54,0x56,0x65,0xfe,0x69,0x30,0xa7,0x2e,0xe8,0x7d,0xf2,0xdb,0xbc,0x36,0x5a,0xcd,0xe2,0x2e,0x97,0x22,0x31,0xd4 }, { 0x6d,0x71,0x38,0x12,0xf0,0xdd,0x83,0xcf,0xd0,0x4a,0x4a,0x39,0xe8,0x2e,0x29,0xad,0x80,0x5d,0x15,0x61,0x8d,0xdc,0x72,0x34,0xbd,0x73,0xbd,0x5d,0xb6,0x37,0xd4,0x8a }, { 0x44,0x0b,0xab,0x24,0x27,0xc7,0xcf,0xc6,0x88,0xdc,0x7d,0x5b,0x66,0x8f,0x7a,0xbd,0x00,0x4c,0xe5,0xd6,0x79,0x4e,0x85,0x9f,0x4e,0x25,0x8c,0xbe,0x6c,0xa7,0x3b,0xb2 }, { 0x4e,0x3b,0xdf,0x0c,0x20,0xc0,0x50,0x50,0x97,0xf8,0x61,0x9c,0x51,0xb0,0x27,0x8d,0x50,0xe3,0x72,0x17,0x07,0x22,0xa6,0xaf,0x42,0xa7,0x58,0x0f,0xb4,0x0a,0x88,0x7e }, { 0x54,0x9e,0xff,0x66,0xc3,0xa5,0x1e,0xa4,0x2e,0xf0,0x24,0xdf,0x48,0x81,0x11,0x94,0x5d,0x93,0xf3,0x0f,0x3f,0xfc,0x8c,0xeb,0x2d,0x86,0x90,0x8e,0x74,0x8d,0xbe,0x23 }, { 0xc0,0xcb,0x79,0x6a,0xc1,0x96,0x4c,0x33,0x23,0x38,0xcf,0x79,0xf2,0x98,0xf1,0x55,0x68,0xe2,0x61,0x1a,0x0b,0xf2,0xea,0xfe,0x32,0x04,0xb6,0x1c,0x60,0x0b,0x21,0xc1 }, { 0xe2,0x80,0xd8,0x8e,0x81,0x1c,0xe9,0x51,0xc6,0x19,0x83,0x58,0x9a,0x40,0x07,0x5b,0x47,0x76,0xb0,0x22,0x76,0x74,0x0e,0x97,0xba,0xdd,0x90,0xbb,0xe1,0x78,0x46,0x58 }, { 0x6b,0x6d,0xb7,0x01,0xf0,0x56,0x30,0xc6,0xe8,0xa9,0x6c,0xf5,0x4f,0x54,0x5f,0x26,0x1a,0x5f,0xf8,0xa5,0x5a,0x94,0x0c,0x45,0x12,0x58,0x82,0xd8,0x48,0xd6,0x5c,0x23 }, { 0x3c,0xe5,0x54,0x37,0x65,0x84,0x80,0xb8,0x68,0x0d,0x00,0x3c,0x6c,0xc4,0xa0,0xfe,0x3c,0x4f,0xf0,0xab,0x5b,0x2a,0xf9,0x36,0x5b,0x63,0xa7,0x66,0x62,0xa6,0xcb,0xe7 }, { 0x53,0xc1,0x8b,0xbf,0xbe,0xbe,0x65,0x5b,0xb8,0x25,0x5b,0x26,0x48,0xdb,0x2a,0xdc,0x8f,0x25,0x42,0x09,0x31,0xd9,0x46,0x15,0x9a,0x7a,0xe1,0xad,0xe3,0x53,0x13,0x81 }, { 0xfc,0xc5,0x95,0x44,0xff,0x49,0x57,0xbb,0xd6,0x42,0xcf,0x3c,0x2f,0xbc,0x5f,0x48,0x83,0xe9,0x6a,0x21,0x9f,0xce,0x9b,0xa8,0x30,0x43,0x58,0x2f,0x6d,0x4e,0x8b,0x30 }, { 0x5c,0x9f,0x86,0xdd,0x8f,0x1c,0x85,0x49,0xef,0x82,0x51,0x7f,0x75,0x72,0x0b,0xfa,0x41,0xd0,0xcf,0xd3,0x0e,0x92,0x9b,0x67,0xf7,0x38,0xfb,0x9f,0xc2,0x36,0x47,0x62 }, { 0xce,0xc4,0xa4,0xbd,0x4c,0xad,0x9d,0x0c,0x2d,0x3b,0x2c,0xa7,0xaa,0x62,0x69,0x2c,0x39,0x77,0x69,0xdc,0xda,0x92,0x98,0x17,0x68,0x9d,0x0f,0xbb,0xbb,0xca,0xd2,0x4a }, { 0x34,0xc3,0xd3,0x54,0x49,0xd5,0xb7,0xec,0xc8,0xc0,0x3a,0xdb,0x38,0x5f,0x27,0xd1,0xac,0x6e,0xd3,0x46,0x5e,0xb8,0x49,0x0f,0x1c,0x9b,0x2f,0xd9,0x9e,0x8f,0x01,0x9a }, { 0x55,0xb4,0xb0,0x9c,0x4c,0x32,0x34,0xd4,0x50,0xc1,0x08,0x65,0xcf,0xac,0x8b,0x81,0x69,0x5c,0x05,0x97,0xe5,0xb5,0x70,0x30,0x6c,0x3c,0xe8,0xc2,0xe8,0xd2,0xde,0x28 }, { 0x05,0x39,0x9f,0xa0,0xb2,0xd5,0x63,0x0b,0xed,0xe6,0xb3,0x98,0xb8,0xb3,0xb4,0xb7,0x99,0x1a,0x2f,0x62,0x3b,0xb2,0x8c,0xb5,0xf6,0x0b,0x41,0x5f,0xa7,0x09,0x5d,0xf2 }, { 0xab,0x9a,0xc4,0x3b,0xc3,0x0c,0x79,0x0b,0x14,0xbe,0x0a,0xc4,0x5a,0x4d,0x07,0x79,0xac,0x2a,0xe4,0x99,0x69,0xa2,0xf7,0xe1,0x34,0xea,0x90,0x53,0x2b,0x65,0x4b,0x3a }, { 0x68,0x01,0x30,0x45,0x72,0x08,0xf8,0x4a,0xbd,0x8a,0x97,0x5a,0x86,0xbf,0x1c,0x00,0xd2,0x7d,0x1f,0x91,0xb1,0x2a,0x4a,0x5e,0x4c,0xbd,0xeb,0xe6,0xb4,0xdb,0xf6,0xfd }, { 0xb6,0x08,0x41,0x74,0x71,0xe7,0xfa,0x97,0x13,0xf2,0xea,0x40,0x36,0xf1,0x75,0x09,0xd7,0x5f,0x06,0xd9,0x8d,0x75,0x1a,0x3e,0xff,0xe2,0x59,0xec,0xe9,0x90,0xb0,0xbd }, { 0x86,0x84,0xa3,0x07,0xbe,0x35,0x3d,0x16,0xfb,0x4c,0x92,0x22,0x60,0xce,0x9d,0x74,0xf9,0xdc,0x22,0x82,0xe4,0x68,0x60,0x46,0xcc,0xf8,0x1a,0x7d,0x71,0xa9,0x26,0xb7 }, { 0xa7,0x40,0xbc,0xc9,0xbc,0x69,0x1e,0x15,0xed,0x41,0x87,0xe0,0xe6,0x6b,0x1e,0xb6,0x67,0x96,0xac,0x80,0xc3,0x12,0x80,0x22,0x02,0x28,0x9a,0xd5,0xee,0x77,0x60,0x8b }, { 0x6d,0xd5,0xa9,0xd7,0x2f,0x97,0x00,0xa3,0x92,0x1c,0xec,0x56,0x23,0x30,0xf1,0x44,0x8a,0xd1,0x91,0x2a,0x12,0x42,0xc2,0xa2,0xfd,0xc0,0x8c,0x6b,0x9c,0x17,0x84,0xda }, { 0xe0,0x1d,0xe6,0x1d,0x2c,0xbe,0x72,0xa3,0x05,0xb6,0xc0,0x7b,0xf1,0x6b,0x5c,0x5d,0x3c,0x07,0xbe,0x1f,0xb0,0x3e,0xfd,0x70,0x61,0x56,0x2d,0x28,0x06,0x62,0x65,0xbe }, { 0x57,0x0c,0xf7,0x58,0x91,0x93,0xee,0x88,0xa3,0x7d,0x6c,0x16,0x9a,0xb8,0xaa,0xf5,0x09,0xaa,0x87,0x01,0xf8,0x04,0xb8,0x37,0xa9,0xe0,0xe3,0xcd,0x3a,0x74,0xb5,0x57 }, { 0xc4,0x49,0x06,0x33,0xc6,0xc3,0xd7,0x71,0xb4,0x42,0x76,0x3b,0x93,0xf7,0x81,0x19,0x7a,0xd2,0xcb,0x09,0xb7,0xfe,0x07,0x40,0xad,0xc2,0xfb,0xe6,0xc0,0x1e,0x52,0x85 }, { 0x91,0x59,0xbf,0x15,0x87,0xf9,0xc0,0xc1,0x67,0x47,0x2f,0x34,0x57,0x22,0xac,0xf6,0x96,0x16,0x51,0xf7,0x4c,0x20,0x4b,0x7a,0x6e,0x03,0x9a,0x70,0xaa,0x77,0x30,0x5d }, { 0x45,0x19,0x94,0xac,0xad,0x8d,0x00,0x9b,0x40,0x79,0xff,0xc1,0xab,0x6a,0x02,0x5a,0xef,0x29,0xc1,0x30,0x40,0xb9,0x61,0x56,0xe9,0x7b,0x85,0x35,0x25,0xb2,0x72,0xa2 }, { 0xc6,0xb5,0xd5,0xca,0xf2,0x20,0x29,0x37,0xa7,0x79,0x43,0xb8,0xb7,0x31,0xf2,0xfe,0xa2,0x55,0xbf,0x81,0x0b,0x6a,0x89,0x3b,0xaf,0xbb,0x93,0x15,0xb3,0x21,0x87,0x37 }, { 0xda,0xb4,0xdd,0x47,0x25,0x5f,0x12,0xbd,0xb0,0xfa,0xa1,0x9d,0xc5,0x67,0xff,0xb3,0x40,0xa6,0x0e,0x06,0x2e,0xfa,0x46,0xdb,0x5c,0x7d,0x68,0x80,0xc5,0xb4,0xd6,0xcd }, { 0xfa,0x72,0x94,0x14,0xc2,0xc2,0x1d,0xc2,0xd2,0xd3,0x19,0x0f,0x7b,0x53,0x27,0x77,0x5e,0x9c,0xd4,0xd1,0x22,0x91,0xe0,0x21,0xc3,0x8a,0x4d,0xa2,0x5e,0xa3,0xbc,0x70 }, { 0x46,0x43,0x42,0x6f,0x7d,0x7d,0x72,0x95,0x2d,0x93,0xad,0xd2,0xfd,0x2f,0x56,0xdb,0x80,0xf3,0x87,0x9d,0xe7,0xa1,0x8a,0x8f,0x49,0xe5,0x22,0xf0,0xaf,0x16,0xde,0xe9 }, { 0xef,0x58,0xe8,0x98,0x2f,0x49,0x10,0x88,0x14,0xcc,0xb4,0xea,0x9d,0xd1,0x79,0x2b,0x35,0x2f,0x02,0xae,0xe6,0x13,0x22,0x3c,0xa5,0xed,0x02,0xec,0x4b,0xc7,0xba,0x8a }, { 0x5b,0x42,0x17,0xd2,0x1a,0xc1,0x64,0xc8,0xe2,0x8d,0xbd,0xea,0xfa,0x98,0x5b,0x99,0xb7,0x9e,0x57,0x0e,0x3b,0x86,0x1f,0x40,0x92,0x1e,0xcf,0x69,0xb1,0xe8,0xb4,0x4f }, { 0x8b,0x53,0x20,0xaf,0x9f,0x7e,0xa1,0x3a,0x24,0xf6,0x02,0xcb,0xf5,0x35,0x64,0xe1,0xa1,0x1d,0xa5,0x6f,0x03,0xf8,0x74,0xe6,0x18,0x15,0xf3,0x03,0xed,0x72,0xcf,0x38 }, { 0xe5,0x15,0xe6,0xae,0x84,0x85,0xa4,0x4c,0x3a,0x78,0xf0,0xcd,0xb3,0x7e,0x6e,0xe3,0xfa,0xc3,0x07,0x37,0x92,0x64,0x93,0x65,0xb0,0x2c,0xd0,0x7c,0x20,0xa0,0x67,0x3a }, { 0x19,0x53,0x6b,0x93,0x06,0xe9,0x0c,0xe3,0xc3,0xc3,0xc1,0xc5,0x85,0x58,0xad,0x89,0x72,0x84,0x08,0xf6,0x70,0xbd,0xc1,0x68,0xa7,0x1d,0xc9,0x7d,0xc4,0x3f,0x1c,0xae }, { 0x5b,0x37,0xfb,0x76,0x8f,0xa9,0xfb,0xca,0x0b,0xbd,0xd3,0xa7,0x37,0xdc,0xa6,0xbf,0xd5,0x45,0x5d,0x36,0x8e,0xfc,0x05,0x98,0x7f,0x00,0x2f,0x53,0x2a,0x59,0xa2,0x36 }, { 0x28,0xb5,0x56,0xb2,0x65,0xd5,0x25,0xd9,0xd4,0xd9,0x17,0x45,0x73,0x51,0x2c,0xbf,0x0b,0x70,0xdf,0x0b,0x87,0xcb,0x9e,0x0c,0x87,0xb2,0x52,0x6c,0xff,0xdf,0xdb,0x3e }, { 0x57,0xf1,0x6a,0x2f,0x05,0x82,0x37,0x91,0x4f,0x1d,0xb8,0x42,0x10,0x5f,0x13,0x15,0x12,0x99,0x53,0x58,0x57,0x62,0xcc,0xdd,0xc4,0xb2,0x8c,0x25,0x0e,0x63,0x87,0x88 }, { 0x81,0xa8,0x42,0x9b,0x73,0xe4,0x8a,0x31,0xf9,0xae,0x95,0x33,0x61,0x60,0xbf,0x9e,0x6e,0xad,0x9a,0x1e,0x6d,0x0d,0x33,0xc2,0xbf,0x7c,0xdf,0xdd,0xae,0x17,0x6e,0x6a }, { 0x2c,0x56,0xc8,0xc5,0x4f,0xa7,0x16,0x57,0x8e,0x0d,0x03,0xdd,0xa4,0x73,0xa2,0x6d,0xa2,0x37,0x0d,0x37,0x56,0x68,0x35,0x25,0x10,0xd5,0xed,0x30,0xd9,0xee,0xaa,0x23 }, { 0x79,0x08,0xb1,0x0e,0x3f,0x60,0x63,0x1d,0xc9,0x0c,0x3c,0xf9,0x63,0x45,0xaf,0x71,0x0f,0xd4,0xfc,0x3b,0xb0,0x95,0xc9,0x9d,0x7d,0x2e,0xf1,0x56,0x79,0xa1,0x0c,0x4b }, { 0x13,0x97,0x68,0xa9,0xf9,0xec,0x4b,0xf5,0x88,0x64,0xa1,0x20,0xf4,0x06,0x54,0x49,0x0d,0x8b,0x03,0x0f,0x7d,0x44,0x48,0xd9,0xce,0x94,0x80,0x63,0x3c,0x97,0xf8,0xe1 }, { 0xf7,0x36,0x8d,0x2b,0x65,0x8c,0x96,0x4f,0xa5,0xea,0xd5,0x3a,0xb0,0xac,0x85,0xb5,0xbd,0x1a,0xd7,0xa1,0x3f,0x87,0xb9,0xda,0x7d,0x48,0x30,0x5e,0x6a,0xa9,0xf7,0x0f }, { 0x2c,0x15,0x67,0x9c,0x9b,0x6b,0x9b,0x1a,0x20,0x42,0xda,0x42,0x3d,0xfd,0x10,0x51,0x25,0x36,0xa1,0xfb,0xcc,0xcf,0x1d,0xb4,0x26,0x69,0xfd,0x2e,0x0f,0x22,0xb8,0x67 }, { 0x93,0xda,0x4e,0xbe,0x2e,0x3b,0xc4,0x17,0xde,0xb3,0xf9,0x28,0x00,0x70,0xdd,0x7f,0x29,0x2d,0x89,0x9d,0xcc,0x46,0x18,0x3f,0x93,0x79,0x77,0x15,0xfc,0x96,0xc1,0x4d }, { 0x96,0xf5,0xec,0x6a,0x69,0xa0,0x43,0xe9,0xeb,0xff,0x04,0x9b,0xa6,0x96,0x72,0x3f,0x34,0xcf,0x4c,0x81,0x1a,0xe7,0x55,0xa3,0x7d,0x4e,0x63,0xf3,0x13,0xbc,0x67,0xe7 }, { 0x77,0xd9,0x4b,0xa6,0xa5,0x02,0x09,0x06,0xa7,0xe7,0x5f,0x9e,0x3a,0x25,0x6c,0xd7,0x66,0x42,0xc6,0x02,0x0e,0xd1,0x2f,0xf3,0x7c,0xc2,0x02,0xae,0xde,0x97,0x61,0xec }, { 0xfa,0xf7,0x93,0x59,0x56,0xe8,0xc6,0x68,0xc3,0x7e,0xf5,0x1a,0x25,0xe5,0x67,0x2f,0x93,0xe9,0x70,0x5b,0x0e,0xc8,0x66,0x65,0xe1,0x55,0xd5,0x5c,0xc5,0x0e,0x1c,0x93 }, { 0x28,0x9d,0x53,0x5c,0xf5,0x44,0x60,0xd1,0x3d,0xdd,0x52,0x10,0xb7,0xc1,0x8c,0xcb,0x2d,0x73,0x2e,0x8d,0xae,0x71,0xe2,0xdb,0x94,0xac,0xbb,0xfe,0x15,0x04,0x69,0x9e }, { 0xf6,0xea,0xa1,0xc6,0xa8,0x00,0x9b,0x0a,0x6d,0x14,0x3b,0x31,0xc7,0xdf,0x46,0x1d,0x06,0x72,0x54,0xf4,0xb3,0x9f,0xf4,0x21,0xee,0x66,0x09,0x6a,0xcf,0xdb,0x2d,0xcf }, { 0x51,0x05,0x7f,0x2e,0xd9,0x68,0x2c,0x03,0x31,0x8e,0x65,0x19,0xd5,0x66,0xb0,0x3e,0xeb,0x9a,0x82,0x6d,0x0a,0xc5,0xfe,0x56,0x2c,0x5c,0x52,0x42,0xd6,0x9b,0x3f,0x59 }, { 0xfc,0xab,0x28,0x84,0x3b,0x9d,0x8d,0xa4,0xec,0x50,0x48,0x8f,0x91,0xe6,0x37,0x67,0x99,0x1e,0x1d,0x22,0xa1,0x24,0xb7,0x66,0x46,0xf9,0x85,0x96,0xfd,0xd8,0xb9,0xa3 }, { 0x15,0x4b,0xb9,0x3c,0xe3,0x3b,0x38,0xe0,0x71,0x05,0xb8,0xd9,0x08,0xb5,0x43,0xfd,0x56,0xeb,0x63,0x27,0x8c,0x1e,0xf7,0x61,0xb2,0x4a,0x78,0xb3,0x4c,0xd4,0xa9,0xc9 }, { 0xec,0x9d,0x85,0x4c,0xb7,0x98,0x20,0x17,0x49,0x7e,0xae,0x94,0xa8,0x0c,0x44,0x2a,0xb0,0xd3,0x1e,0x59,0x88,0x5d,0x20,0x16,0x5d,0xcd,0x11,0xa9,0xf8,0x70,0x6f,0xea }, { 0x0e,0xdf,0x25,0x7a,0x67,0xef,0x7c,0x87,0xe1,0x9f,0x3b,0x6f,0xc0,0xd6,0x31,0x98,0x12,0xa2,0x44,0xfc,0x13,0xba,0xff,0x5c,0x90,0x67,0x41,0xf8,0x82,0x26,0x4b,0x3b }, { 0x29,0x97,0xa8,0x8c,0x7c,0xbf,0x2b,0xa6,0x23,0x9c,0x50,0xd8,0xb9,0x37,0x17,0xdc,0x50,0x7a,0xdb,0x13,0xb7,0xd7,0x91,0x77,0x64,0x75,0x6e,0x92,0xed,0x11,0x84,0x19 }, { 0x0a,0x24,0x12,0xa6,0x29,0x7d,0xad,0x68,0x61,0xd2,0xca,0x09,0x2d,0x4e,0xc5,0x74,0x4f,0x07,0x24,0x74,0x0b,0xff,0x9c,0x83,0x2c,0x9b,0x6c,0xe2,0xc7,0x29,0xc6,0xfe }, { 0x22,0x98,0x1a,0x1a,0xef,0x07,0x6f,0x12,0x9b,0x65,0x8a,0xcd,0x16,0xdc,0xc2,0x2a,0xaa,0x73,0xe2,0xbd,0xef,0x8b,0x95,0x64,0xf6,0x05,0xb3,0x54,0x5c,0x62,0x33,0x42 }, { 0xa6,0x74,0xd5,0xb1,0xf9,0x68,0x07,0xaa,0xd7,0x67,0xf6,0xac,0x4b,0x8a,0xef,0x15,0x9d,0xe7,0x4c,0x5d,0x4c,0x12,0x99,0x45,0xbd,0xd6,0x1b,0xff,0xd4,0x88,0xb8,0x25 }, { 0x67,0x60,0x02,0x27,0x51,0xf1,0x92,0xba,0xce,0x32,0x7d,0xa9,0xb9,0xc6,0x76,0x86,0xb8,0x74,0x2a,0x5e,0xb8,0xbf,0xd4,0xec,0xaf,0x9c,0x20,0x09,0xa8,0x06,0x5f,0x02 }, { 0x31,0xda,0xf9,0x66,0x42,0x20,0x72,0x49,0x6e,0x57,0xe5,0x43,0xe9,0xb0,0xda,0xd0,0x26,0xa2,0x6e,0xc6,0x96,0xae,0x72,0xf2,0xef,0xe4,0x70,0x90,0xb5,0x19,0xea,0xa1 }, { 0x46,0xce,0xee,0x8e,0xfd,0xe6,0xbd,0x40,0x15,0xd2,0x3e,0x19,0xb8,0x8e,0xc2,0xe0,0x7b,0xe8,0x7a,0x27,0x8a,0x9b,0x84,0x25,0x1f,0x89,0x04,0x7c,0x3b,0x22,0xf3,0xf1 }, { 0x07,0x59,0x82,0xcc,0xca,0x53,0x1b,0x25,0xcd,0x39,0xa4,0x88,0x3c,0x07,0xf1,0x60,0x7a,0x45,0x27,0x65,0x92,0xe5,0x0c,0x0f,0xcc,0xd7,0x62,0xef,0x8b,0xbd,0x94,0x44 }, { 0xf6,0x63,0x85,0xc1,0x2b,0xa9,0x4e,0x1e,0x45,0xf3,0x7e,0xd2,0x40,0x4c,0x5a,0x92,0x36,0x55,0xfd,0xca,0xf7,0x69,0x98,0x24,0x95,0xa4,0xe6,0x64,0x12,0xba,0x02,0x8a }, { 0x58,0xd4,0xd8,0xc1,0x7a,0x70,0x26,0xc7,0x10,0xe8,0x44,0x50,0x01,0xa2,0xcb,0xe6,0xeb,0x6b,0x50,0x40,0x22,0x10,0xbd,0xe4,0xcb,0xfb,0x0d,0x60,0xdc,0x8a,0xa3,0xa0 }, { 0x76,0x5c,0xcc,0x73,0xe5,0x41,0x8b,0xa5,0x74,0xad,0xbb,0x8f,0x17,0x62,0x20,0x59,0xc7,0x16,0x31,0x02,0xc5,0xb3,0x7d,0x65,0x35,0x0f,0x17,0x9c,0xf5,0x83,0xfe,0x91 }, { 0x10,0x01,0x30,0x2b,0xb4,0x6c,0x7d,0xfc,0x7e,0x30,0x66,0x95,0x55,0x9b,0xed,0x50,0x85,0xe0,0x16,0xca,0xdc,0x5a,0x9d,0x3e,0xb0,0xb0,0xb4,0x20,0x51,0x2c,0xc9,0xf4 }, { 0x92,0xae,0xf4,0x50,0xb4,0x2c,0xb1,0x9e,0x0e,0x26,0x41,0x52,0x44,0xfc,0x68,0x0b,0x77,0xab,0x29,0x5d,0xdf,0xa4,0x71,0x49,0xbd,0x61,0x63,0x1a,0xcf,0x50,0x52,0x06 }, { 0x86,0xcf,0x9e,0x56,0xd0,0x58,0xf4,0x56,0x2f,0x71,0xb3,0x6b,0x5f,0x56,0x2e,0x3b,0x8e,0x32,0x86,0x9c,0xb8,0x91,0x5f,0x43,0x40,0x61,0x24,0x94,0xb0,0x33,0xc4,0x48 }, { 0x4b,0x35,0xc1,0x74,0x57,0x55,0xf1,0x4f,0x9a,0x9e,0xe6,0xe9,0x8e,0xb8,0x66,0x66,0x46,0x64,0x5c,0x81,0x87,0xb2,0x56,0xd5,0xb0,0xc9,0x30,0x49,0x38,0xe6,0xd9,0x87 }, { 0xf5,0x8b,0xe6,0xcd,0xb9,0x4f,0x5d,0x48,0x2b,0x38,0xd7,0xdb,0x78,0x61,0x72,0xd7,0xc3,0x22,0x05,0x02,0xf2,0x0d,0x87,0x95,0xd2,0xd2,0x88,0xa2,0xd0,0x12,0x76,0x1c }, { 0x48,0x6d,0x9e,0xeb,0x1d,0xa1,0x3e,0x13,0x6b,0xde,0x05,0xe8,0xc1,0x57,0x0e,0xe2,0x4b,0x91,0x0b,0x60,0x17,0x97,0x06,0x98,0xd4,0x52,0xec,0x6c,0x36,0x92,0xa6,0x6f }, { 0xac,0x24,0x91,0x81,0x71,0x9b,0x1e,0x1f,0x6e,0x08,0xab,0x72,0x0a,0xfa,0x53,0x72,0x7e,0xf4,0xb3,0xa9,0x23,0xcd,0xc3,0x7e,0xce,0xcd,0xb5,0x84,0xf8,0x2a,0xfb,0x90 }, { 0xb0,0x9b,0xf7,0x7d,0xec,0x4c,0xf2,0x29,0x39,0xd9,0x5f,0xa8,0x9f,0xa2,0xb0,0x4d,0xa7,0x8f,0x91,0x7a,0x0d,0x04,0x18,0xb0,0x16,0x11,0xe6,0x8f,0x91,0x25,0x55,0x2b }, { 0x80,0x9f,0xaa,0x71,0x6d,0xdb,0x9e,0x74,0x3d,0xa5,0x8c,0x8c,0xea,0x0a,0xbf,0xa5,0x27,0xe7,0x65,0x91,0xc0,0xa2,0xe5,0x89,0x40,0x69,0x58,0xd5,0xe1,0x4e,0x7e,0xf1 }, { 0x43,0x57,0xa4,0xa9,0xac,0x35,0x49,0xaa,0xab,0x4c,0x82,0xdb,0x27,0x6a,0x6b,0x6f,0xdf,0x23,0x23,0xe2,0x8e,0xa7,0x7a,0x10,0xca,0xa4,0x9f,0x52,0x7b,0x85,0x53,0x13 }, { 0x9a,0xfe,0xd1,0x3f,0xcd,0x22,0x01,0x5e,0x05,0x4a,0x25,0x4a,0x09,0xe2,0x88,0x44,0x45,0xea,0xe1,0xe4,0xe8,0x7b,0xf3,0xb7,0x2b,0x70,0xf7,0x9a,0xe0,0x89,0xb0,0xa3 }, { 0xba,0x5e,0x72,0xa6,0x91,0x49,0xd3,0x5b,0xb5,0x91,0x4e,0x76,0xc6,0xbc,0xdb,0xdd,0x01,0x50,0x2e,0x30,0x65,0x56,0x66,0x5f,0x1c,0xf9,0xac,0xf3,0x0c,0x2c,0x68,0x79 }, { 0xc9,0x66,0xfe,0xd2,0x71,0x30,0x4a,0x2d,0xb8,0x98,0xfa,0xb7,0x14,0x58,0x8c,0x27,0xca,0x8b,0x17,0xa2,0x69,0x3c,0xf3,0x0c,0x8b,0x11,0xb7,0xed,0xdd,0x39,0x09,0x6b }, { 0xea,0xd1,0x23,0xc9,0xd7,0xd6,0xd4,0x91,0x6d,0x22,0x57,0x1b,0x9e,0x71,0xa6,0xad,0xa1,0x68,0x26,0x22,0xd6,0x17,0xb8,0x06,0x4c,0x8e,0x92,0x26,0x67,0x40,0xfd,0x5f }, { 0x3b,0xb4,0x57,0x82,0x8e,0x97,0x79,0x12,0x71,0xac,0x40,0x0d,0x9a,0x0a,0xba,0xeb,0x65,0x8d,0x20,0x7b,0x7b,0x0a,0x65,0xf7,0xb8,0xa9,0x2a,0x0d,0xc0,0xe7,0x50,0xa5 }, { 0x91,0x85,0x96,0xf9,0xb7,0x6d,0x6d,0x7e,0xa6,0xc7,0x8a,0xe5,0xe2,0x28,0x52,0x71,0xfd,0xf7,0x65,0x34,0x69,0xcd,0x9a,0xfc,0xc4,0x86,0x45,0x9a,0x85,0xbb,0x63,0xca }, { 0x97,0x40,0x5f,0x97,0xf5,0x10,0x67,0x02,0xd9,0x19,0x9f,0xd5,0xb8,0xa3,0x14,0xb5,0x77,0x35,0xb2,0xdb,0x93,0xb8,0xa6,0x02,0x55,0x6d,0xdf,0xd4,0x0a,0xe9,0xac,0xd4 }, { 0x0e,0x48,0xa7,0x6c,0x90,0xda,0x9b,0xbb,0x6e,0x71,0xfe,0x7d,0xb2,0x88,0x4b,0xc7,0xd6,0x92,0xcf,0x8b,0x4c,0x41,0xbf,0xf0,0x50,0x0c,0xb0,0x23,0x89,0xa0,0xdf,0x9c }, { 0x5f,0x77,0x19,0xb6,0x63,0x5b,0x44,0x86,0xc4,0x7f,0x0d,0x5b,0xa6,0x89,0x53,0x4b,0x20,0xee,0x56,0x60,0x51,0x40,0xc8,0x81,0x21,0x0b,0xc8,0xd0,0x73,0xdf,0xca,0xf6 }, { 0x01,0x7e,0xd3,0x96,0x15,0x53,0xb7,0xe1,0x4a,0x2b,0xa7,0x8b,0x9d,0x3f,0x5f,0xc4,0x3e,0x2c,0x61,0xbf,0x6c,0x16,0x37,0xb8,0x51,0xdd,0x71,0x20,0xff,0x9e,0xfa,0x76 }, { 0xa3,0x1a,0x30,0x4d,0xc7,0xa8,0xb0,0xd4,0x75,0x51,0x48,0x30,0x91,0xc8,0x3a,0xe0,0x21,0xdb,0xc7,0x9e,0xf3,0x88,0xe8,0xb6,0xcd,0x83,0xd5,0x9f,0x40,0x40,0x86,0xde }, { 0x1e,0x0a,0x9c,0xe5,0x60,0xd5,0x88,0xea,0x3e,0x19,0x20,0x1d,0x6d,0x0a,0xc0,0x49,0x5b,0xf2,0xc3,0x78,0x07,0x94,0xd8,0x26,0x54,0xb7,0xf5,0x53,0x9c,0x87,0xa0,0xc1 }, { 0xd7,0xdd,0x41,0xdc,0xe7,0xdf,0x3b,0x6b,0x73,0x33,0x68,0x16,0xec,0x5a,0x79,0x6c,0x3b,0x2b,0x78,0xd7,0xda,0x61,0x95,0x3e,0x06,0x3b,0xfc,0x4a,0x3d,0xca,0x22,0xf0 }, { 0x06,0x0e,0xac,0x6c,0x49,0x48,0x4f,0x33,0x4f,0x73,0xbc,0xd0,0x45,0x6f,0x5e,0xb5,0x6f,0x5e,0xed,0x88,0x72,0x99,0x66,0xc9,0x9d,0x38,0xf0,0xbf,0x20,0x4a,0xdf,0xf2 }, { 0xb3,0x78,0xf7,0x14,0x6f,0x75,0x66,0xdd,0xdc,0x1c,0x03,0xf1,0x8d,0x2d,0x1c,0x06,0xe3,0xf1,0x7d,0x02,0x35,0x80,0xf8,0x43,0x27,0x13,0xf0,0x3c,0x5a,0x1d,0xbc,0x5c }, { 0x43,0xc0,0x2f,0x2e,0x97,0xd5,0xbb,0x0b,0xc3,0xc1,0x78,0x1e,0xc5,0x8c,0xe8,0x7a,0x98,0xf4,0x56,0x01,0xc1,0x0d,0x13,0x12,0xe7,0x40,0x2f,0x74,0x5d,0x90,0x16,0x52 }, { 0x4c,0x2b,0xe2,0x3d,0x9c,0x16,0x24,0xb1,0xe9,0xa5,0x1a,0xc1,0x97,0x8b,0x10,0x2a,0x82,0x4c,0xcc,0xc3,0x33,0x8f,0x62,0x5e,0x29,0xb0,0x6a,0x8d,0xfb,0x82,0x91,0x1b }, { 0xb2,0x2f,0xd7,0xa3,0x1a,0x0c,0xa7,0xd5,0xe6,0x55,0x7a,0xff,0x42,0x1b,0x2b,0xfc,0x95,0x66,0x72,0x20,0x3b,0xaf,0x14,0x88,0xf7,0xcb,0xba,0x88,0xeb,0x0c,0xf6,0x0c }, { 0xab,0xec,0xa7,0xcf,0x8c,0xc1,0x7b,0x15,0x24,0x20,0xaf,0x47,0x6e,0x76,0x49,0x55,0x07,0x75,0xd1,0x62,0xc3,0x39,0x98,0xdf,0x09,0xef,0x7d,0x3a,0xa8,0x9e,0xda,0x61 }, { 0x8a,0x21,0x27,0x83,0xa5,0xf6,0x6c,0xa0,0xed,0x56,0x1f,0x0c,0x46,0xd7,0x60,0x9c,0x77,0x9e,0xdc,0x3a,0xf1,0xcd,0xd3,0xb9,0x80,0x6e,0x56,0xa5,0x1b,0x02,0x4e,0xe3 }, { 0x71,0x7a,0xda,0xa2,0x2f,0xe0,0x94,0xd7,0x49,0x78,0xdf,0x76,0x0e,0xfc,0x58,0xbe,0x73,0xf3,0xb8,0x11,0x6c,0x5d,0x47,0x19,0x96,0x96,0xb0,0xcc,0x42,0x80,0x73,0x1f }, { 0x22,0xab,0x41,0x34,0x04,0x32,0x8a,0xa1,0x7f,0xdc,0xd5,0x89,0x4e,0xb2,0x6e,0xe2,0xfb,0x8e,0x63,0x1c,0x6c,0xd7,0x4d,0x4c,0xeb,0x79,0xe6,0x88,0x35,0x19,0xea,0x73 }, { 0x5f,0xb7,0xdd,0x47,0xdc,0x71,0x12,0x09,0x09,0x2c,0x30,0x55,0xcc,0x79,0x0c,0x83,0xf3,0xe0,0x9b,0xdb,0x42,0x5e,0xf5,0xfb,0x4c,0xec,0xf6,0x7f,0xd6,0x07,0x82,0xdd }, { 0xe9,0x56,0xee,0x5a,0x95,0x89,0xa5,0x16,0x1f,0xe8,0x9f,0xac,0x04,0xb1,0xf8,0x4f,0x03,0x24,0x03,0xa7,0x3a,0x50,0x42,0x59,0x33,0x26,0x3c,0x81,0x6f,0x86,0x84,0x61 }, { 0x3b,0xdf,0xbe,0x23,0x8b,0xba,0x4c,0xcb,0x7d,0x3c,0xcc,0xfe,0xcf,0x76,0x27,0x07,0x0e,0xdb,0x3b,0x8e,0x74,0x03,0xbf,0x31,0x2b,0x07,0x09,0x08,0x12,0x03,0x34,0xc4 }, { 0x97,0xf4,0x9f,0x96,0x97,0x1a,0x6b,0x64,0x8e,0xd3,0x9e,0xce,0x6a,0xbd,0x7b,0x78,0x48,0x73,0x56,0x9e,0x16,0xd4,0x5d,0xb0,0x55,0x08,0x7e,0xae,0x39,0xc9,0x87,0xcc }, { 0x1b,0x8e,0x9d,0x0e,0xff,0x1b,0x1e,0xa5,0xfb,0x01,0x14,0xff,0x1f,0x53,0xe2,0x62,0x1d,0x9b,0x4e,0x93,0x62,0x52,0x2d,0xcc,0xcd,0x1f,0xe2,0x6c,0x7b,0x8c,0x64,0x88 }, { 0xc4,0xba,0xe6,0x53,0xf2,0x0e,0x78,0x78,0x04,0xee,0xa5,0x5d,0xc9,0xe2,0x54,0x93,0x85,0xb6,0xa9,0x2a,0x2a,0x45,0x10,0x6f,0x98,0x4c,0x4f,0xdc,0x80,0x9f,0x21,0x99 }, { 0x45,0xe0,0x41,0x57,0x40,0x9d,0x50,0xf8,0x26,0x34,0x7f,0x44,0x45,0xc1,0xf9,0x71,0x26,0xe8,0xa3,0x38,0x20,0x8a,0x89,0x81,0xc2,0x15,0x86,0x79,0xee,0x15,0x35,0x24 }, { 0x34,0x91,0x2d,0xe9,0x63,0x60,0x09,0x01,0x66,0x6b,0xdb,0x07,0x84,0x4b,0x8b,0xb8,0xf3,0x41,0xe4,0xad,0x2f,0xe1,0x5f,0xf9,0x7e,0xbf,0x97,0x5b,0x8f,0x65,0x3d,0x71 }, { 0x03,0xe5,0xb5,0x3a,0x13,0x1a,0x52,0x4c,0xe4,0x44,0xda,0x60,0xe0,0xde,0x80,0xfd,0x39,0xce,0x48,0x3e,0x44,0xaa,0xc4,0x12,0x11,0x2b,0x46,0x3e,0xba,0x7d,0xc5,0x4b }, { 0xe0,0xbc,0x28,0x7a,0x5d,0x38,0x47,0xa9,0x04,0x46,0xc5,0x78,0x63,0x35,0xa2,0xea,0xd7,0x22,0x34,0x75,0x7e,0x22,0xba,0x04,0x3c,0x7a,0x35,0x87,0x9b,0xa6,0x4f,0x60 }, { 0x1d,0xa7,0x09,0x34,0x54,0xca,0xcc,0x65,0x0c,0x0e,0xb9,0xe6,0x74,0x0a,0xcb,0x8a,0xfc,0x62,0x62,0x4d,0xbe,0x40,0xf9,0xb3,0x2e,0x81,0x47,0x07,0x57,0x33,0xb1,0x85 }, { 0xac,0x22,0x1f,0xc9,0x12,0xf1,0x7e,0x30,0x11,0xf8,0xdb,0xac,0x55,0xd1,0xec,0xf7,0xc3,0xb0,0xc7,0xd1,0x99,0x19,0x00,0xb6,0x8a,0x12,0x83,0x6b,0x9a,0xdc,0xb8,0x5e }, { 0xa8,0x34,0x0d,0x4c,0x3b,0x78,0xbe,0x63,0x1c,0x76,0x90,0x76,0x15,0x32,0x1a,0x28,0x20,0x72,0x81,0x0d,0x4d,0x0d,0x79,0x06,0xe1,0x37,0x90,0x16,0x19,0x44,0xa2,0xd3 }, { 0x91,0x0b,0x89,0xd3,0x20,0x36,0x27,0x53,0xdc,0x54,0x5a,0x75,0x25,0x8c,0x79,0xc9,0xd4,0x4c,0xe8,0x00,0x31,0xf3,0xe2,0x67,0xb7,0xaa,0xd9,0xf8,0x6b,0xce,0xf1,0x8f }, { 0x94,0xbc,0x12,0xe8,0x7b,0x10,0x82,0xcd,0x1c,0x9a,0x4e,0xe5,0x63,0x50,0xcd,0x47,0xa5,0x17,0x30,0x8b,0x62,0xef,0x93,0xed,0x5e,0x7a,0xe2,0x04,0xa6,0x33,0x40,0xf5 }, { 0x0c,0x8a,0x06,0x05,0x43,0xfc,0x46,0x75,0xf4,0x83,0x84,0x32,0xcc,0x9f,0x69,0x9f,0xc1,0xf3,0xf9,0x35,0xbd,0xb6,0x12,0x73,0xcc,0x1c,0xc9,0xd0,0xf6,0xeb,0x8b,0x40 }, { 0x0d,0xb0,0x58,0x40,0xb8,0x1f,0x54,0xe0,0x2e,0xf4,0xc2,0xca,0x14,0xf7,0x78,0x3a,0xf7,0x26,0x58,0xfe,0xc5,0x9a,0xc7,0x76,0xe4,0x2f,0x9c,0x89,0x34,0xf0,0x2c,0x6b }, { 0xe8,0x63,0x00,0x36,0x4e,0x21,0xde,0x0e,0xef,0x2c,0x10,0x14,0x51,0xc1,0x28,0x43,0x18,0xc4,0x9d,0xaf,0x7f,0xd2,0xf6,0x2d,0x73,0x2e,0x37,0x3e,0x7e,0x71,0xd5,0xa3 }, { 0xfb,0x07,0x1b,0xfb,0xda,0x7b,0x49,0x8d,0x64,0xb0,0xbd,0x37,0xd5,0x63,0x63,0xab,0x2b,0x33,0xdc,0x16,0xc2,0xc2,0x6c,0x65,0xb0,0xf0,0xab,0x91,0x5f,0x2c,0x86,0x1c }, { 0x9a,0xc9,0x68,0x24,0x6f,0xfc,0xac,0x07,0x1e,0xd9,0x57,0xf1,0x17,0x65,0x6e,0x6d,0x12,0x24,0x38,0x6b,0x64,0x40,0x5f,0xf1,0xe1,0xf0,0xf5,0x9a,0xff,0xf4,0x9b,0xfb }, { 0x38,0x53,0x32,0x9e,0xa1,0x12,0x82,0x22,0x55,0x1a,0x77,0xeb,0x5b,0x9d,0x98,0xa0,0xca,0xb2,0xe8,0xf9,0x74,0x3c,0xba,0x24,0x2a,0xbb,0x73,0x16,0x2f,0xf5,0x52,0x08 }, { 0xa9,0x37,0xf2,0x1e,0xb7,0xf9,0x66,0x1b,0x74,0xf9,0x42,0xd8,0x5e,0xb4,0x57,0x71,0x1a,0x56,0xf1,0x05,0x00,0x67,0x0c,0x99,0x44,0x6f,0x91,0x7b,0x0b,0x82,0x7b,0xa1 }, { 0x87,0xdc,0xd9,0xc7,0xa9,0x35,0xad,0xbc,0x10,0x0c,0xf7,0xd1,0x03,0x9b,0x81,0x46,0xd4,0x52,0xf5,0x9e,0xdd,0xe4,0x21,0x0c,0xbd,0xd7,0x52,0x37,0xff,0x36,0x93,0xa1 }, { 0x8d,0x01,0x02,0x1e,0x0b,0x3b,0xb7,0x2b,0xb9,0xe2,0x96,0xfe,0xb7,0x48,0x9d,0xa0,0xa1,0x51,0x3e,0xa9,0xb0,0x7e,0xd9,0xd6,0x57,0x7d,0xb0,0x08,0x20,0xc9,0xa3,0xda }, { 0x7a,0x7c,0x06,0x67,0x53,0x55,0x72,0x05,0x82,0x7d,0x69,0xa5,0x74,0x23,0x9e,0xc3,0x62,0x0a,0x60,0xb7,0x30,0x73,0xd4,0x8e,0x19,0x51,0xff,0xf5,0xdb,0x4c,0xb1,0x0b }, { 0xce,0x80,0xc5,0x54,0xf6,0x3b,0x28,0x6e,0x79,0xa8,0x11,0x88,0x9c,0x68,0x86,0xdb,0x78,0x9a,0x3f,0x24,0x34,0x67,0x00,0x12,0xdb,0x42,0x37,0x4d,0x29,0x44,0xd6,0x7a }, { 0x6b,0x3b,0x03,0x3d,0xa4,0x8e,0x93,0xde,0xda,0xa1,0x6a,0xeb,0x67,0xe5,0xf5,0xa3,0x08,0xef,0x18,0xad,0x79,0x7e,0xe7,0xd0,0x14,0xb0,0xd2,0x6a,0x49,0x56,0x1b,0xad }, { 0xca,0x6e,0x87,0x6b,0x8f,0x22,0x74,0x53,0xb5,0x05,0x2e,0xdd,0xff,0x63,0xe6,0x8b,0xdc,0x1c,0x8c,0x2f,0x34,0x73,0x94,0x68,0xf7,0x24,0x23,0xb3,0xd3,0x8e,0x47,0x7b }, { 0x24,0x16,0x0d,0x5e,0x03,0xd0,0xc8,0xca,0xfe,0x52,0x11,0x11,0xde,0x4e,0xf6,0x58,0xd9,0x90,0xa3,0x8b,0xf1,0x6e,0x83,0xe3,0xa5,0x30,0x88,0x3d,0xf8,0xe4,0xed,0x7b }, { 0x5c,0x28,0xa2,0x32,0x09,0xbf,0x99,0xc6,0x00,0x28,0xe1,0xd7,0x05,0x99,0x47,0x97,0x1d,0xc1,0x56,0xc1,0xb9,0x7a,0x33,0x41,0xbc,0xaa,0x2f,0x3a,0xff,0xe6,0x45,0x61 }, { 0x08,0x20,0x0c,0xa6,0x46,0x69,0xc1,0xf0,0xc5,0xb3,0x61,0x44,0xe5,0xb2,0xac,0x17,0x01,0xad,0x3a,0x4e,0xb7,0x95,0x0b,0x51,0x89,0xea,0x8b,0x32,0xd6,0x74,0x44,0x64 }, { 0x87,0x52,0x82,0xd2,0xbc,0x2f,0x28,0x5f,0xb7,0x5f,0xea,0x2a,0xe3,0x75,0xa5,0x07,0x19,0xb3,0xba,0xa1,0x1c,0x5e,0xab,0x2c,0xdf,0xe6,0x64,0xae,0x2a,0x0b,0x71,0x72 }, { 0x06,0xed,0x87,0x10,0x6e,0x67,0x0b,0xc4,0xe2,0xbe,0x3c,0xcb,0x5d,0x21,0x08,0xb2,0xf7,0x3e,0x36,0x22,0x43,0xc1,0xa2,0x91,0x87,0xae,0xc7,0x5b,0x71,0x3d,0xfa,0xb9 }, { 0x08,0xdd,0x36,0x15,0x47,0xf0,0xae,0x01,0x32,0xa2,0x44,0xbe,0x8c,0xef,0x1c,0x92,0x56,0xbf,0x16,0x48,0x6a,0xc8,0x7c,0x83,0xb0,0x3d,0xf6,0x36,0x8e,0xda,0xb5,0x94 }, { 0xc0,0xe7,0x30,0xe3,0x53,0xdc,0xe3,0xa2,0xde,0xc4,0xeb,0x01,0xe3,0x65,0xdf,0xc9,0x44,0xbc,0x22,0xef,0xab,0xe6,0x11,0xf3,0xbb,0x25,0xfa,0x7a,0x2f,0x41,0x89,0x65 }, { 0xe1,0xdc,0x4f,0x53,0xc8,0xc5,0x09,0x28,0x37,0x90,0x28,0x40,0x11,0xe8,0xe0,0xba,0xbc,0x85,0x37,0x1e,0xd9,0x8b,0xdf,0x92,0x8c,0x0f,0xa2,0xf7,0xef,0x1a,0x2f,0xaa }, { 0xf0,0x47,0x41,0xed,0x58,0xf5,0x67,0x37,0xfa,0xd9,0x5b,0xe6,0x26,0xe4,0x91,0x7c,0x01,0x3f,0x05,0x45,0x77,0x30,0x8e,0x8b,0xf9,0xe5,0xd6,0xa0,0x51,0xf6,0xa5,0xf8 }, { 0x23,0x5a,0x90,0x9f,0xec,0x31,0x22,0x2e,0x76,0x20,0x23,0x8c,0x52,0x06,0xce,0x74,0x03,0xa3,0x39,0xd3,0x51,0x64,0x9e,0xd2,0x18,0x3e,0xac,0x48,0x5e,0x83,0xd4,0x7c }, { 0x98,0x92,0xc8,0x1b,0xdb,0xc5,0xc9,0x3f,0x03,0x8b,0x0c,0xaf,0xa4,0x21,0x8d,0x2f,0x39,0x64,0xbb,0x82,0xb1,0xc8,0x3b,0x5d,0xd0,0xce,0x97,0xb3,0x7f,0xdf,0x64,0x86 }, { 0x73,0xe9,0x2a,0x38,0x09,0xf0,0x45,0x1b,0x0b,0x77,0x66,0xae,0x23,0xee,0x4c,0x45,0x42,0x40,0x2f,0x79,0xab,0xb0,0x26,0xb7,0xb1,0x7f,0x9e,0x9e,0xa5,0x4f,0x9c,0x95 }, { 0xb9,0xac,0x21,0xe9,0x87,0xd5,0x90,0x9a,0xbc,0xcf,0x3c,0xe7,0x2e,0xd9,0xcf,0x71,0x15,0x66,0x6f,0x64,0x73,0x98,0x79,0x6d,0x12,0x15,0xd0,0x7a,0x2b,0x03,0x17,0xf0 }, { 0xf6,0xae,0x0f,0xa1,0x02,0x56,0xcb,0xa5,0x95,0xe9,0x78,0xd2,0x53,0xab,0xdd,0xd9,0x18,0x22,0x91,0x27,0x65,0x91,0x43,0x82,0xb8,0x46,0x75,0xb9,0x62,0x0b,0x23,0x3c }, { 0x5b,0xd6,0xb6,0x85,0xe9,0xd5,0xfa,0x95,0x16,0x07,0xac,0xf5,0xab,0x1f,0xc0,0x66,0x7d,0x76,0xdf,0xb0,0xd3,0xa1,0xba,0xe7,0x94,0x24,0x19,0x84,0x7a,0x9f,0x58,0x1d }, { 0xe5,0xb6,0x20,0x9d,0x30,0xf8,0xad,0x93,0x77,0x64,0xa5,0xac,0xc9,0x97,0x74,0x1a,0x1d,0x71,0x70,0x5a,0x60,0x20,0x63,0xf9,0xaf,0xd3,0xed,0xbf,0x92,0x5f,0xe6,0x59 }, { 0x20,0x3a,0xec,0x83,0x7c,0x23,0x52,0x71,0xa8,0x12,0x73,0xf2,0x1b,0xd6,0x6d,0x53,0xe0,0x73,0x37,0x27,0xcf,0x50,0x59,0x7d,0xbc,0xfc,0xb6,0x00,0x5a,0xa2,0xc3,0xf3 }, { 0x05,0xe8,0x89,0x47,0xf8,0x6b,0x39,0x42,0xbb,0xbb,0xb2,0x5b,0xb5,0x45,0xe0,0xdd,0x1f,0x24,0xfb,0xe7,0x88,0x54,0x9c,0xe5,0xa5,0xf1,0x70,0xb9,0xdd,0x27,0x9f,0x49 }, { 0xa6,0x25,0x9e,0xbe,0xdc,0x69,0xf4,0x8a,0xad,0xf9,0x31,0xfb,0x28,0x36,0xe2,0x96,0x4a,0x28,0x96,0x45,0xdc,0x78,0x3b,0x33,0x45,0x94,0x64,0xde,0x7d,0xe6,0xfd,0x2b }, { 0xc7,0xd8,0x30,0xd4,0xd4,0xc4,0x52,0x44,0xa7,0xf5,0x63,0x99,0x42,0xd8,0x81,0x0d,0x94,0xc9,0x57,0xb3,0x0a,0x35,0x79,0xc8,0xfa,0x7c,0xb8,0xb5,0x07,0xf7,0xbf,0x68 }, { 0x52,0x90,0xba,0x5b,0x4b,0xad,0xc6,0xab,0x7f,0x41,0xe3,0x65,0xaf,0x82,0x72,0x51,0xc7,0xad,0x10,0x9a,0xd2,0x4f,0x80,0x43,0x69,0xe0,0x30,0xbd,0xf1,0x4d,0xcc,0x34 }, { 0x42,0x3a,0x0f,0x0e,0xff,0xfd,0xd5,0x3e,0x84,0x53,0x45,0x99,0xf1,0xf2,0x6f,0x44,0xd0,0x70,0xdb,0x33,0xfd,0xc7,0xbf,0x7e,0x6e,0x86,0x1f,0x3d,0xf2,0x34,0x40,0x41 }, { 0xff,0x57,0x57,0xc6,0x39,0xe5,0x2d,0x66,0x0c,0x66,0x90,0x6e,0xfc,0x73,0x98,0x5b,0xe3,0x1a,0x19,0x17,0xd5,0x58,0x09,0x14,0xc0,0x60,0x43,0x50,0xee,0x7a,0xdb,0x97 }, { 0x82,0xd5,0x88,0xd1,0x23,0xff,0x6c,0xad,0x75,0xc2,0xf8,0xbc,0x4d,0xed,0x4c,0xd3,0x48,0x1c,0x82,0x16,0x48,0x24,0xbb,0xf4,0x82,0x9f,0x0b,0x65,0xd0,0xb8,0xcf,0x56 }, { 0x7b,0x55,0xdf,0xb8,0x04,0x43,0x73,0x58,0x54,0xb2,0x7b,0xce,0x3a,0xf9,0x43,0x57,0x8f,0xba,0x6b,0xa2,0x92,0xc0,0x5a,0x9d,0xb8,0x16,0x64,0x0e,0x40,0x4d,0x2e,0xba }, { 0x8a,0x70,0x27,0x4d,0x43,0x5f,0xef,0x0d,0x69,0xaa,0xa8,0x5d,0xad,0x23,0x25,0x22,0x6c,0x53,0x11,0x5b,0x16,0xf5,0xa3,0xf2,0xd2,0xf9,0x8d,0x95,0x16,0xc9,0x1c,0x8b }, { 0x19,0xbc,0x23,0xc5,0x20,0x4b,0x1c,0x59,0x43,0xcb,0xd1,0xe2,0x1a,0x8e,0x7e,0x17,0xc2,0xe9,0x32,0x7e,0x3f,0x04,0x71,0xf9,0xc6,0xc7,0x99,0x7e,0x5a,0x57,0x58,0x31 }, { 0xda,0xcc,0xf0,0xba,0x45,0x39,0x80,0xdd,0x02,0xcc,0xda,0x0f,0x20,0x52,0x1c,0xae,0xc9,0xe9,0xc6,0x6c,0xd0,0x2b,0x64,0x9e,0x84,0x4c,0xb3,0x9d,0x13,0xd3,0xcf,0x3e }, { 0xf6,0x19,0x6b,0x7b,0x15,0x8b,0x47,0xfa,0x2d,0xa7,0x69,0x5a,0x07,0x99,0xa3,0xbd,0x62,0xcb,0x53,0x79,0x4d,0x63,0xcc,0xb3,0xad,0xd1,0x04,0xaa,0x14,0x5b,0xf5,0xfa }, { 0x50,0xa8,0xa2,0x1f,0xb1,0x3d,0x4d,0x2e,0x03,0x03,0x7e,0x39,0x3e,0x5c,0x60,0xdd,0xb9,0xf9,0x2d,0x97,0xb5,0x5c,0x8a,0xa7,0x7e,0x95,0xa0,0x62,0x42,0x15,0xd7,0xa1 }, { 0x59,0x7e,0x1c,0xc8,0xdc,0x74,0xd7,0x0b,0x53,0xa1,0x5b,0x07,0xac,0xf7,0x8d,0x75,0x63,0x1a,0x1d,0x05,0xa7,0x33,0x63,0x12,0xb9,0x97,0x93,0x11,0x67,0xd2,0x2d,0x85 }, { 0x3a,0xe8,0x8a,0xad,0x0c,0x4a,0xeb,0xef,0xfa,0x02,0x91,0xdc,0x9c,0x33,0x79,0x84,0xb1,0xb9,0x0b,0x3d,0xae,0x51,0x6e,0x2b,0x43,0xc8,0xa1,0x9d,0x39,0x7e,0xa5,0xeb }, { 0x4f,0xae,0x25,0xb7,0x42,0xf7,0xad,0x66,0xed,0x7b,0x03,0x6a,0x89,0x84,0x93,0x95,0xa1,0x13,0x21,0x34,0xb0,0x3e,0xf4,0xa0,0x20,0xdb,0x4b,0x4f,0xf5,0xf7,0xa7,0xa3 }, { 0x2c,0x4b,0x89,0xf5,0xd0,0xf6,0xaf,0xb4,0x6d,0xb0,0x47,0xe5,0x7e,0x2b,0xf9,0x44,0x89,0x7a,0x9f,0x1d,0x1a,0xbc,0x76,0x44,0xf9,0x25,0x79,0x0b,0xaa,0x7b,0x5e,0x1f }, { 0xe4,0xa7,0x5c,0xc1,0x17,0xca,0xe0,0xb4,0x48,0x13,0x25,0x7e,0x1c,0xb7,0x1e,0x6b,0x22,0xb4,0x24,0x13,0xd4,0x68,0xc0,0xb9,0x3a,0xb1,0x1a,0x0b,0x32,0x4c,0xf4,0x4b }, { 0xcc,0x8a,0xab,0xdf,0xaf,0xf1,0xaa,0xc6,0x91,0x27,0xc8,0x25,0x23,0x29,0x7b,0x57,0x58,0x90,0xf6,0xe7,0xc8,0xeb,0xb5,0x9c,0x2f,0xfd,0x73,0x64,0xec,0xbe,0x92,0x06 }, { 0x8f,0x21,0xaf,0x7f,0xe8,0xa5,0x68,0x3e,0x4e,0xf6,0x10,0xff,0x0e,0x2f,0xed,0x21,0x79,0xac,0xf6,0xb7,0x4c,0x58,0x2a,0x36,0x3a,0x35,0x8a,0xa6,0xcb,0x02,0x6a,0x25 }, { 0xc8,0xef,0x6b,0x28,0xc8,0x84,0xf7,0x76,0xa5,0xb0,0x9a,0xf7,0x2c,0x08,0xf2,0xfd,0x23,0x93,0x56,0x67,0xf3,0xb9,0xa3,0xc7,0xdb,0x68,0x23,0x93,0x1e,0xb3,0x21,0x3c }, { 0xa7,0x14,0x84,0x5b,0xdb,0xb4,0x14,0x24,0x96,0x1d,0xba,0xc8,0xc6,0x1d,0xc6,0x34,0xc3,0x8e,0x1d,0xfd,0x0f,0x99,0xe4,0xc2,0x0e,0x4f,0xa7,0xa0,0xa8,0x6f,0xec,0xea }, { 0xd0,0xf9,0x8d,0x32,0x74,0xab,0x4d,0x20,0xba,0x8c,0xe4,0x6c,0x75,0xf9,0x98,0xdd,0xf3,0x4a,0xa5,0x2d,0x08,0x9d,0xba,0xde,0x34,0xea,0x9f,0x8e,0x1a,0xad,0x37,0x15 }, { 0x98,0x65,0xcc,0xe3,0xdb,0x40,0xb4,0x54,0xe5,0xd0,0xe9,0xbf,0x7c,0xb4,0x33,0x5f,0xfc,0x1b,0x1e,0xd3,0x46,0xa1,0x4f,0x11,0x64,0x92,0x62,0x8f,0xef,0x02,0xc9,0x9b }, { 0x02,0x64,0x07,0x29,0x66,0x47,0x17,0x94,0x35,0x2a,0x8e,0x4f,0xbb,0xda,0xdd,0xd1,0x42,0x5e,0x00,0x44,0xfe,0x1d,0xc6,0xde,0xf6,0x27,0xf9,0x9e,0x2a,0x6d,0xdc,0xbc }, { 0x25,0x6b,0xbd,0x2d,0x83,0x14,0xa6,0x12,0x87,0xc1,0x07,0x98,0xbd,0xff,0x34,0xe2,0x67,0x1c,0xce,0x8c,0x65,0x62,0x6e,0x03,0x2b,0xc6,0xce,0xe6,0x00,0xff,0x76,0xee }, { 0xc1,0x0d,0x1d,0x96,0x54,0x31,0x9a,0x51,0x0f,0xe9,0x07,0xd0,0xed,0xeb,0xcf,0x09,0x1e,0xa4,0x86,0xb3,0x94,0x1b,0xdc,0x8d,0xcc,0xe4,0xb2,0xad,0x14,0x8d,0x81,0xf4 }, { 0xb4,0xeb,0xa6,0xb5,0x7d,0x7f,0x27,0xd8,0x81,0x46,0x7f,0x81,0x8e,0x2c,0x7e,0x4a,0x16,0xc0,0x28,0xd7,0xda,0xbe,0x5a,0x1a,0x91,0xb3,0xdb,0x73,0x10,0x62,0xdc,0xd6 }, { 0xc7,0x2f,0xff,0xba,0x08,0x2e,0x44,0xae,0x12,0xa9,0x5a,0xb7,0xd0,0x4a,0x8d,0x49,0x39,0x43,0x67,0xa7,0xfe,0xa4,0xc3,0xce,0x7e,0xb5,0xef,0x42,0x63,0x4f,0x14,0x07 }, { 0x75,0x85,0xd7,0x29,0xa1,0x8c,0x61,0x1b,0xa0,0x7e,0x68,0x6f,0xd6,0x4d,0xe4,0x1f,0xd3,0xfa,0x29,0x88,0x56,0x28,0x5b,0x7d,0xee,0x33,0xaf,0xa2,0x2a,0x4b,0xb0,0x6e }, { 0x9b,0x68,0x69,0xd5,0x20,0xba,0xa2,0xcd,0xb0,0xfe,0xca,0xbb,0x99,0x55,0x04,0xce,0xf7,0x37,0x7f,0x2c,0xe4,0x8c,0x82,0x1d,0x00,0xdb,0x08,0x69,0x8f,0x99,0x30,0xc2 }, { 0x6a,0x99,0x17,0x61,0x1a,0x20,0x23,0x80,0xe8,0xe2,0x2f,0xf1,0x8b,0x06,0x80,0x78,0xd9,0x5e,0x2c,0x39,0x15,0x52,0xb5,0xaa,0x98,0x0d,0x90,0xdc,0xe6,0x95,0x66,0xb0 }, { 0x8b,0xc3,0x1e,0xae,0xbb,0x8d,0xb9,0x4a,0x60,0xf1,0xac,0x2a,0xf4,0xca,0xc5,0x64,0x9d,0x5f,0x69,0xaf,0x45,0xf0,0x92,0xb0,0x97,0xc2,0x41,0xb4,0x2d,0xa3,0x05,0x75 }, { 0xc8,0x20,0xa2,0xd5,0x1d,0xd4,0xac,0x0f,0x66,0xcb,0x88,0x9d,0xeb,0xf8,0x76,0x9a,0xee,0x66,0xa5,0xbe,0x5a,0x5a,0x07,0xa6,0xf1,0xcf,0xbb,0xac,0x94,0x50,0x3c,0x10 }, { 0x21,0x7a,0x92,0xbf,0xd6,0x45,0x89,0x1a,0xa5,0x93,0x8d,0x8a,0xd4,0x6f,0xb6,0x2f,0x0f,0x7b,0x73,0x4d,0x7a,0x8b,0x3e,0xf4,0x53,0x03,0x61,0x69,0x6f,0xc9,0xd5,0xca }, { 0xd7,0x21,0xaa,0x22,0xbb,0x1e,0xdd,0x1e,0xbf,0x08,0xf6,0x1e,0x0a,0x3c,0x15,0x70,0xf0,0xf3,0x05,0xc1,0xb2,0xbd,0xcd,0xc2,0x70,0xaa,0x66,0x79,0xa5,0xcd,0xbb,0xab }, { 0x27,0x54,0xfc,0x50,0x47,0x2d,0xa9,0x0e,0x57,0x44,0x11,0xb3,0x3f,0xb7,0x56,0x39,0x89,0x7b,0xf5,0x20,0x28,0xd0,0xa8,0xfe,0xdf,0xcd,0xe2,0x7a,0x4e,0x5c,0x77,0x12 }, { 0x76,0xf4,0xbb,0x49,0x11,0x09,0xae,0x56,0x69,0xab,0xe8,0x6c,0xcc,0x67,0x70,0xa3,0x77,0x52,0x20,0xc6,0x72,0x2b,0xc8,0x22,0x61,0xad,0x59,0x0c,0xc7,0x40,0x1f,0x35 }, { 0xcd,0xfe,0x36,0xd8,0x03,0xfb,0x56,0xae,0x35,0xeb,0xc5,0xe3,0xdc,0x59,0xba,0x4c,0xc8,0x51,0x6b,0xd8,0x04,0x99,0x1c,0xaa,0xfa,0xf6,0x9b,0xbb,0xc3,0xda,0xb4,0xe6 }, { 0x74,0x06,0x5b,0x35,0xe6,0x7b,0x88,0xbc,0xd7,0x0e,0x3c,0xf9,0xc8,0x93,0x4d,0x67,0xeb,0x11,0x43,0x63,0xf9,0xa8,0x91,0x61,0xbc,0xb7,0xee,0xec,0x8f,0x99,0x15,0x38 }, { 0xe7,0x45,0x91,0x3b,0x11,0x20,0xd2,0x09,0xf5,0x30,0x80,0x17,0x8c,0x59,0x69,0x39,0xe1,0xc2,0xbc,0x81,0xf4,0x8d,0x45,0xc5,0x4c,0x5b,0x01,0xbc,0x91,0x12,0x13,0x03 }, { 0xb2,0xc9,0x10,0xf8,0x0d,0x69,0x58,0xe1,0xfd,0x80,0x6a,0x01,0x7c,0xe0,0xd3,0x83,0xbb,0xb3,0x1b,0xf5,0xfb,0x7e,0x8a,0x77,0xf9,0x27,0xfc,0x70,0xa3,0x41,0xcb,0x5f }, { 0x18,0xd9,0xd0,0x9e,0x57,0xdd,0x10,0xbe,0x5f,0xe6,0x99,0x79,0x2a,0x83,0x0e,0x4f,0x3c,0x6e,0x7c,0x72,0x33,0x69,0xc3,0x1c,0x5a,0x9d,0xbc,0x52,0x5c,0x1d,0x63,0x07 }, { 0x73,0xee,0x29,0x40,0x03,0x01,0x94,0x0b,0xdc,0x29,0xc1,0xb4,0x93,0x40,0x85,0x8a,0x8d,0x4d,0x70,0xd2,0xae,0xf5,0xc1,0xa2,0xcd,0x87,0x04,0x63,0x42,0xd0,0xd3,0xe5 }, { 0x5e,0xdf,0x53,0x2f,0xcd,0x1e,0x56,0x0b,0xd1,0x21,0x76,0xc0,0x58,0x51,0x7e,0x41,0x62,0x9a,0xda,0x89,0x36,0x39,0x7e,0xaa,0xd9,0x19,0x36,0x72,0x59,0xee,0xe2,0xe8 }, { 0x90,0x4a,0x77,0xa3,0x4a,0xd9,0x3c,0xe0,0x8e,0x43,0x3d,0x8c,0x78,0x4a,0x25,0x66,0x3d,0x5a,0x06,0x17,0x54,0xae,0x77,0x56,0xc7,0xd9,0x9f,0x6f,0x7a,0xd3,0x21,0x9e }, { 0x82,0xbe,0xd1,0xe7,0x49,0x41,0x97,0xdd,0x39,0xdc,0x6f,0x3a,0x0c,0x94,0x16,0x5f,0x60,0xad,0xe7,0x8e,0xd0,0x1a,0xd4,0xeb,0x6b,0xbb,0xae,0xe5,0x20,0xba,0xad,0x9c }, { 0xa9,0x60,0xc0,0xbe,0x3a,0x13,0x3f,0x9a,0xc4,0x99,0xcd,0xb0,0x8a,0xe8,0x9d,0x67,0xfa,0xb4,0xff,0x66,0x2e,0x85,0x15,0xf8,0x2d,0x7d,0x48,0x23,0xd8,0x16,0x82,0xab }, { 0x11,0x8f,0xe0,0xa4,0xaa,0x70,0x64,0xea,0x30,0xcc,0xed,0xf3,0x68,0x16,0xe6,0xd7,0x32,0x34,0xe2,0x41,0xe5,0x7a,0x2d,0x32,0x38,0xb1,0x7e,0xd0,0xdb,0xef,0x66,0x04 }, { 0xae,0x65,0x58,0xd4,0xc0,0xf8,0xa0,0x4f,0x7e,0x03,0x6b,0x16,0x02,0x5f,0x73,0xa8,0x47,0x61,0x12,0xc3,0xdc,0x54,0x7b,0x09,0x8a,0x44,0xa3,0x06,0x2e,0x8d,0x98,0x23 }, { 0xc9,0x38,0xf6,0x82,0xc4,0x92,0x4d,0x04,0xf7,0xc2,0x29,0xf4,0x98,0x17,0x3e,0x07,0x86,0xca,0x91,0x64,0x4a,0xf4,0x16,0x0b,0x5a,0x92,0x2b,0x96,0x44,0xfe,0xe3,0xb8 }, { 0xb9,0x5c,0x33,0x29,0x4f,0xcd,0x70,0x7f,0x48,0x87,0xfb,0x70,0x74,0x36,0x15,0xad,0x9d,0xf6,0x58,0x42,0x2a,0xdb,0x81,0xcd,0xf7,0x4c,0x54,0x71,0x0d,0xab,0x98,0x90 }, { 0xd6,0x45,0x5e,0xe6,0x07,0xfe,0x73,0x5c,0x57,0x6e,0x1a,0x84,0x31,0xb7,0x13,0xeb,0x70,0x5e,0x01,0xa5,0x57,0xc1,0xcb,0x10,0xa0,0x27,0xbb,0x3e,0xba,0x4f,0x86,0x01 }, { 0xa1,0x32,0xbe,0x64,0x7b,0x0a,0x38,0xd8,0xa8,0xf0,0x8e,0x24,0x1f,0x5f,0xb0,0x37,0xa9,0x96,0x0f,0x87,0xd1,0x5e,0xce,0x5e,0xcc,0xfe,0x55,0x93,0x1b,0x65,0xaa,0x5a }, { 0x17,0xca,0x80,0x90,0x38,0x66,0x76,0x04,0xef,0x98,0x76,0xfd,0x44,0xdf,0xd3,0x86,0x59,0x48,0x2a,0x1a,0x59,0x05,0x91,0x16,0xd2,0xf6,0xdd,0x60,0xbb,0x9f,0x59,0xf8 }, { 0x36,0x7f,0xb0,0x04,0x73,0x08,0x69,0x95,0x9b,0x45,0x38,0x1a,0xd5,0x31,0x86,0xd5,0x4b,0x93,0x8a,0x67,0xad,0x40,0x0d,0xc9,0x33,0x22,0x9e,0xc1,0x32,0x0e,0x2e,0xaf }, { 0xb0,0x58,0x35,0xcf,0x75,0x66,0x95,0xad,0x42,0xb9,0x8c,0x04,0x2a,0x68,0x9d,0xae,0x7b,0xbe,0xd9,0x75,0x49,0xb8,0x9a,0x9d,0x4e,0xa1,0xdf,0x11,0x02,0xc3,0x23,0x5a }, { 0xb0,0xf4,0x69,0x8f,0x78,0x10,0xc9,0x13,0x93,0x7b,0x95,0x23,0x64,0x54,0x92,0x3c,0x68,0xfe,0x4e,0xe5,0xe5,0x08,0x64,0xe0,0x22,0x88,0x91,0x69,0x1a,0xa6,0x1e,0x88 }, { 0xf2,0xfb,0x61,0xf0,0x97,0x66,0x19,0x52,0x9d,0x81,0xfb,0x58,0xa1,0x1f,0xb7,0x3f,0x85,0x52,0xe7,0x64,0xa8,0x61,0xb9,0x11,0x5c,0xdd,0x86,0xda,0x5c,0x27,0xef,0x6a }, { 0xa9,0x8f,0x2b,0x81,0x1e,0x63,0x09,0x76,0xb0,0x26,0x14,0x81,0xaa,0x06,0x24,0x2b,0x01,0x35,0xaa,0x5f,0x01,0x36,0xa7,0x77,0xa7,0x57,0x8c,0x0f,0x41,0xe5,0xc2,0x95 }, { 0xeb,0xde,0x18,0x01,0x0c,0xc7,0xfa,0x1e,0xc8,0x4d,0x10,0x9c,0xa4,0xfb,0x62,0x7f,0xbe,0x65,0xfc,0x46,0x45,0xe9,0x94,0x59,0x51,0xc4,0x3b,0x19,0xf5,0xe5,0xca,0xab }, { 0x78,0xb3,0x50,0x54,0x3c,0xe9,0xc8,0xe1,0xd7,0x76,0x76,0xc9,0xb2,0x76,0xc7,0x15,0xaf,0x88,0x28,0x03,0x5d,0x5f,0x88,0x24,0xfc,0xf9,0xe6,0x94,0x05,0xfd,0xbd,0x42 }, { 0xf1,0x6d,0xff,0x85,0x6a,0x22,0xe8,0x2f,0xeb,0xf5,0xbb,0x83,0x65,0x8d,0x58,0xb4,0xc1,0x56,0xcc,0x3c,0x6c,0xcc,0x89,0x63,0x84,0xc7,0x28,0x39,0x91,0xb1,0x9e,0x98 }, { 0x1e,0xe3,0xa5,0x54,0xc3,0x4e,0xb4,0xc2,0x62,0x88,0x07,0xc4,0xd5,0x00,0xe3,0x77,0xae,0x47,0x01,0x76,0x4b,0xb4,0x53,0x92,0xe9,0x6f,0xac,0x3a,0x55,0x1c,0x35,0x71 }, { 0xa2,0x07,0x82,0x56,0x9b,0x87,0xcd,0x2e,0xb9,0x0c,0x31,0xfe,0xde,0xcb,0x75,0xd7,0x22,0x8b,0xb5,0x05,0x56,0x6c,0xfb,0x50,0x2b,0x05,0x76,0x4a,0xcc,0x3f,0xd6,0x58 }, { 0x42,0xad,0x03,0x93,0xb5,0xda,0x22,0xb1,0x78,0xae,0xb9,0x50,0x8c,0xf6,0xa4,0x7d,0x99,0xbe,0xa8,0x23,0xc4,0x8a,0x33,0x93,0xfd,0xda,0x06,0x84,0xd4,0x21,0x97,0x7f }, { 0xc2,0xae,0x4f,0x23,0x94,0xd5,0x01,0x9b,0x09,0x42,0x52,0x73,0x25,0x20,0xeb,0x60,0x48,0x9e,0x31,0x2b,0x5d,0xad,0xa1,0xdc,0xcb,0xc6,0x7d,0x98,0x26,0x1d,0xe2,0xa0 }, { 0xd5,0xb2,0x51,0x61,0x01,0xbf,0xe9,0xe8,0x9d,0x91,0x15,0xc7,0x7c,0x80,0x3b,0x81,0x10,0x7e,0xef,0xe4,0x4e,0x99,0x3d,0x18,0x4c,0xfd,0xaf,0x85,0xa5,0xea,0x6b,0x71 }, { 0x74,0xa7,0x13,0x89,0x08,0xb2,0xa8,0xd5,0x58,0x0f,0xd3,0xf4,0xad,0x8e,0xd7,0x09,0xf1,0x2c,0x50,0xec,0x08,0x79,0x2b,0x29,0x82,0xd2,0x27,0x04,0x52,0xdf,0x51,0xf7 }, { 0x71,0x51,0xf0,0x74,0xdf,0x59,0x1f,0xeb,0xec,0x49,0x85,0x0b,0x31,0x16,0xa8,0x52,0x49,0x16,0x99,0x02,0x7c,0x5e,0x31,0xeb,0xc4,0x85,0xdb,0xe2,0x44,0x81,0xe6,0x05 }, { 0x37,0x80,0x6c,0x56,0xd8,0x27,0x68,0x3e,0x4c,0xed,0x40,0x92,0x06,0x0d,0x28,0x01,0x68,0xe8,0xed,0x61,0x22,0xa1,0xf2,0xc1,0xa3,0xcb,0x43,0x0e,0xbc,0xa7,0x0f,0x64 }, { 0x6a,0x96,0x2e,0x83,0xb0,0x3e,0x80,0x60,0xbb,0xb4,0xc4,0x57,0x58,0xdf,0xbb,0x1c,0x1d,0x91,0xd2,0xbc,0x01,0xa3,0xc9,0xd7,0xcf,0x89,0xbd,0x3d,0x9d,0x94,0x63,0xf7 }, { 0xb5,0x75,0xbf,0x77,0x58,0x7c,0xca,0x41,0x84,0x0a,0x38,0x14,0x84,0x88,0x03,0x9e,0xed,0xa8,0x01,0x5a,0xc6,0x6a,0xff,0x45,0x46,0x2b,0x72,0x64,0xd0,0x9c,0x44,0xc7 }, { 0x73,0x99,0x7b,0xcf,0x65,0x8a,0x01,0x85,0xf3,0xc3,0x9f,0x59,0xc4,0xb4,0xe2,0x05,0x0f,0xcd,0xe0,0x16,0x05,0xf3,0x2b,0xf9,0x5a,0xf8,0xb5,0xbe,0xed,0xe4,0x89,0xb4 }, { 0x5c,0x6d,0xfc,0x0e,0x59,0xa7,0xa8,0x29,0x7b,0x27,0xfd,0x5e,0x34,0xa9,0x9a,0x81,0xfb,0x9a,0x95,0x11,0x4b,0xa0,0xdf,0x61,0x45,0xa6,0xb2,0x45,0xf9,0x49,0x79,0xb9 }, { 0x2b,0x89,0x90,0x7d,0xa1,0xd5,0x9a,0x25,0xe7,0xd4,0xe9,0xa3,0xd3,0xbb,0x51,0x17,0x8d,0x9d,0x58,0xf0,0xe1,0x02,0xfc,0x7d,0x5b,0x08,0x2d,0xe9,0x85,0xcc,0x22,0xd4 }, { 0xf6,0x7c,0x99,0x9e,0x6f,0x90,0x1a,0x66,0x0e,0xb8,0x4a,0x9d,0x19,0x5f,0x94,0xae,0x4c,0x4f,0xa1,0x15,0x3a,0x7e,0x42,0x31,0x00,0x60,0xee,0xca,0x82,0x91,0x07,0x9d }, { 0x95,0x58,0x02,0x74,0xaa,0x2b,0xc5,0xec,0x0c,0x4c,0xf3,0x1b,0x06,0xf1,0x16,0x7d,0xe3,0x14,0xae,0x2f,0x2d,0x28,0xe2,0x79,0xea,0x91,0xfc,0x99,0xeb,0x49,0x21,0x22 }, { 0x95,0x8e,0x98,0x85,0xea,0xae,0xc9,0xd9,0x75,0x82,0xda,0x5a,0xfe,0x67,0x05,0xef,0x71,0x2b,0xa5,0x26,0xf0,0x80,0x8a,0xa0,0xcb,0x50,0x35,0xb7,0x14,0x7d,0x0f,0x2c }, { 0x4a,0xcd,0xcd,0x00,0x9b,0x44,0x69,0x84,0x93,0x91,0xa6,0xa2,0xda,0x0a,0x60,0xf2,0x48,0xf3,0xd8,0xb5,0x34,0xab,0xfe,0x15,0x87,0x71,0x51,0xcc,0x8e,0x49,0xda,0x03 }, { 0x14,0xc4,0x8a,0xc1,0xa5,0x56,0x53,0xd1,0xb8,0x44,0x9a,0xf2,0xd2,0x92,0x4b,0x36,0x4c,0xbf,0x99,0xb7,0x97,0xae,0xa4,0x06,0x8c,0x2a,0xda,0x59,0xf4,0x7e,0xba,0x3d }, { 0x42,0x99,0x37,0x20,0x4a,0xbd,0xd8,0x99,0xfe,0x66,0x07,0x41,0x81,0x50,0x82,0x1f,0x90,0x49,0x06,0x86,0x7c,0x65,0xa5,0xd3,0xed,0x74,0xe4,0xdf,0x87,0xf1,0x08,0xff }, { 0x5c,0x7a,0x52,0x28,0xd7,0x48,0xa5,0x2b,0xf9,0x83,0x7c,0xea,0x9e,0xe2,0x97,0x3c,0x7b,0x43,0x0a,0xc7,0x71,0x4b,0x0d,0x5c,0x7a,0x1a,0x75,0xbf,0x69,0x02,0x4d,0xe0 }, { 0xb9,0xa7,0x42,0x1a,0x14,0xfb,0x4c,0x3c,0x4c,0xc1,0x38,0x4e,0xce,0x37,0xec,0x25,0x82,0xcf,0x5a,0x69,0x39,0x75,0x5b,0x24,0xbe,0x1a,0xb5,0x72,0x5a,0x97,0xa5,0x3b }, { 0x25,0xf3,0xdc,0x5a,0x51,0x2d,0xce,0x8f,0x85,0xf4,0xe7,0xba,0x2b,0x5e,0x5b,0x0c,0x0f,0x97,0xd8,0x43,0xaa,0xd6,0x26,0x7b,0xdb,0xae,0xde,0xcf,0xf7,0x9a,0x28,0xe1 }, { 0x91,0xab,0x59,0x75,0x35,0xcc,0x44,0x74,0x2d,0x20,0x20,0x73,0xa0,0xe2,0xe1,0xc9,0x9b,0x29,0x98,0x15,0x35,0x0e,0xc7,0xa0,0x16,0x85,0x6f,0x29,0xed,0xbf,0x60,0x19 }, { 0xea,0xdb,0x53,0x3f,0x6e,0xd4,0xec,0x84,0x96,0xe4,0x21,0xe5,0x0f,0x79,0x0b,0x23,0x5c,0x1b,0x31,0xc5,0x24,0x6f,0x7a,0x08,0x2d,0xc3,0x0c,0xc0,0x67,0x63,0x9d,0x77 }, { 0xa6,0xb2,0xc4,0x46,0x42,0xc9,0xef,0x9f,0x9c,0x3d,0x65,0x62,0x65,0xba,0xb3,0x48,0xc0,0x47,0xe9,0x72,0xe7,0x26,0xb8,0xce,0x31,0xe3,0x22,0xe3,0x1d,0xb0,0xf0,0x95 }, { 0x5a,0x62,0x5f,0xff,0xc2,0xf4,0x14,0xf7,0xc0,0xc3,0xa4,0xe3,0xb8,0xae,0x9f,0xb3,0x8d,0x93,0xfd,0xcf,0x2d,0x31,0xd8,0x72,0xe6,0x86,0x38,0xfa,0x96,0x12,0xc6,0xe2 }, { 0x66,0x9e,0xc8,0x1d,0x99,0xb4,0x75,0x1e,0x83,0x30,0xe3,0x83,0x6e,0x24,0x5e,0x5e,0x0d,0xff,0x91,0x9a,0x54,0xd8,0xca,0x73,0x14,0x22,0x30,0x89,0x3b,0x67,0x72,0x9a }, { 0xca,0xb0,0x18,0x19,0xe9,0xf9,0x03,0xfa,0xa4,0xe9,0xf6,0x05,0xbc,0xf6,0xd2,0xd9,0x0b,0xb3,0x22,0x4d,0xe5,0x79,0x20,0x92,0x5a,0x18,0xdb,0x2f,0xd2,0xfc,0x1d,0xc3 }, { 0xe8,0x52,0x4f,0x4f,0x3f,0xd3,0x97,0xb6,0x31,0xc1,0xbf,0xfb,0x06,0xd5,0x2a,0xba,0x84,0x27,0xb1,0x3c,0x5d,0xdc,0x80,0x26,0x6f,0x37,0x56,0x45,0x3b,0xa7,0x07,0x32 }, { 0x4b,0x6c,0x43,0xd1,0x3d,0x7e,0xa0,0x37,0xef,0xd6,0x54,0xfa,0xb6,0x92,0x3f,0x20,0x1b,0x1a,0x9c,0x92,0xc4,0x7e,0x13,0x21,0xb6,0x17,0xda,0xa7,0x1a,0x55,0x94,0xa5 }, { 0xe6,0xeb,0xd1,0x66,0xfd,0x21,0x47,0x1b,0x8b,0x90,0x4f,0xa1,0x9b,0xfb,0x4a,0xab,0x30,0xe1,0xba,0x63,0xc0,0x2a,0xde,0xc5,0xb0,0x96,0x61,0x89,0x4e,0x9c,0x42,0x7d }, { 0x5b,0x94,0xd4,0x90,0xd9,0x6f,0x85,0x73,0x22,0xd8,0x1c,0x55,0xbd,0x31,0xe1,0x76,0xb3,0x3d,0x1a,0xc8,0x26,0xa1,0xf1,0xf1,0x4e,0x65,0x2f,0xdb,0x6a,0xc3,0xd0,0x99 }, { 0xee,0x07,0x3e,0x91,0xdb,0x93,0x0e,0x55,0x05,0x9f,0xe9,0xb5,0x39,0x94,0x82,0x55,0xa0,0xc2,0xd8,0x89,0x4b,0xe5,0x95,0xd4,0xee,0xcb,0x57,0xa5,0xca,0xa5,0xd9,0x34 }, { 0x19,0xf3,0xe7,0x36,0xed,0xc8,0x88,0x12,0x1c,0x0e,0xf4,0x84,0xd0,0x77,0x84,0x50,0x5c,0x95,0x35,0x9a,0xcb,0x24,0xa4,0x1a,0xea,0x54,0xd3,0xcf,0x46,0x38,0x5a,0xc8 }, { 0x17,0x27,0xba,0xae,0xca,0x0d,0xc3,0x60,0xbd,0x14,0x0c,0x61,0x83,0xc7,0x8b,0x03,0x5b,0xe7,0x19,0x91,0x39,0x25,0x4b,0x3e,0x38,0x83,0xf7,0x9d,0xc3,0xe6,0x73,0x74 }, { 0x68,0x8a,0x1e,0x32,0x49,0x73,0xe7,0xa5,0xeb,0xe9,0xbb,0x41,0x53,0x74,0x11,0xcf,0x1c,0x4a,0x24,0xa7,0xcf,0x1c,0x47,0x3d,0xec,0xac,0x1a,0x8d,0x4a,0x7d,0x2f,0x18 }, { 0x5d,0x77,0x2e,0x7a,0xb5,0xd2,0xc2,0x31,0x0b,0xd6,0xa7,0xc9,0x78,0x4a,0xc1,0xff,0x67,0xda,0x44,0x61,0x63,0xa0,0xa9,0x7e,0x67,0x0f,0x80,0x00,0xa0,0xa8,0x3e,0xa3 }, { 0x0f,0x85,0xd7,0x91,0x3e,0x9d,0x58,0xf0,0xcd,0x29,0xba,0x4e,0xd5,0x9e,0xbd,0x65,0xbe,0x7f,0x09,0x54,0x22,0xf4,0x93,0x65,0x05,0x06,0x90,0xa2,0xb2,0x8d,0x3a,0x46 }, { 0x99,0xb2,0xb0,0x99,0xe2,0x64,0x7c,0x96,0x2f,0xae,0x11,0xe9,0x8a,0x8b,0x4e,0x43,0x96,0x30,0xd4,0xcc,0xc4,0x20,0x75,0xa6,0x3a,0x05,0x5c,0xde,0x91,0x4d,0x0e,0xe5 }, { 0x53,0x86,0xf9,0xbc,0xa1,0xd1,0x30,0xeb,0x7d,0x40,0x8d,0x79,0x28,0xd5,0xe2,0xe9,0x58,0x30,0xe5,0x47,0xa3,0x45,0xe2,0x43,0x90,0x75,0x5a,0xd5,0x67,0x3f,0x9e,0x89 }, { 0x38,0xe5,0x8f,0x84,0x6f,0x03,0x10,0x1b,0x12,0x02,0x38,0x92,0x30,0xfc,0x9e,0x17,0xc7,0xf3,0xb8,0x14,0xd0,0xa6,0x88,0x03,0x02,0xf8,0x4a,0x73,0xdf,0xa9,0x0b,0xec }, { 0xb7,0x75,0xb9,0x8e,0x0a,0x0e,0xf8,0x4e,0x09,0xd1,0xac,0x5d,0xf3,0x1f,0x95,0x39,0x02,0xdb,0x56,0x50,0xb2,0xef,0x68,0x39,0x04,0x02,0xc7,0xe0,0x24,0x55,0x55,0x91 }, { 0xda,0x8e,0x10,0x24,0x67,0x0c,0xe0,0xcf,0x31,0x62,0x79,0xcc,0x88,0xe4,0x7e,0x70,0x46,0x67,0x1a,0xc4,0x73,0xfa,0x0a,0xeb,0xd9,0x38,0x1e,0xd9,0xb1,0xdd,0x6e,0x96 }, { 0xf0,0x3c,0x97,0x8a,0x21,0x86,0xc6,0xb8,0x64,0xb4,0x94,0x2e,0x5a,0x82,0x4c,0x90,0xa4,0xc8,0x40,0x82,0x01,0xa2,0x09,0x44,0x7d,0x75,0x08,0x77,0x84,0x76,0x3f,0x4a }, { 0x1f,0x55,0xbf,0x6a,0x0b,0x48,0x7b,0xee,0xde,0xc6,0x25,0x0f,0xc1,0x89,0xa8,0x08,0x56,0x0e,0xf1,0x1c,0x9a,0xfd,0x12,0xe9,0x19,0xd0,0x80,0xcb,0xc0,0x37,0xf5,0x4b }, { 0x9f,0xa7,0x07,0xc4,0x3c,0x4c,0x65,0x1a,0x74,0x1a,0xde,0x42,0xc1,0x93,0xb4,0x4a,0x8c,0xbd,0x6c,0xe0,0x7e,0xd6,0x03,0x1f,0x3f,0xb1,0x19,0xdb,0xc6,0xc8,0x44,0x4a }, { 0x98,0x15,0xf7,0x34,0x7c,0xb6,0x11,0xf1,0x2c,0xf4,0xcb,0xa4,0xbf,0xf7,0xf0,0x56,0xf8,0x7b,0x7d,0x25,0x53,0x91,0x8a,0x0e,0x8c,0x2a,0x32,0xb3,0x44,0x97,0x7f,0x64 }, { 0x84,0xf3,0x0d,0x7a,0x9e,0x10,0x67,0xbc,0x34,0xb0,0x24,0x56,0x0d,0x2d,0x71,0xf6,0xb3,0x91,0xec,0x3d,0xce,0x76,0x29,0x7d,0x68,0x6b,0x6c,0xc5,0xc0,0x70,0x61,0xd0 }, { 0xd3,0x84,0xbc,0xcb,0x4d,0x12,0xa0,0x35,0xf8,0xf5,0x99,0xca,0x26,0xb3,0x0c,0x15,0xa6,0x95,0x50,0x41,0x58,0x33,0x65,0x71,0x4e,0x11,0x4b,0x92,0xce,0x24,0x79,0x9a }, { 0xce,0x51,0x78,0x8b,0x24,0x74,0x71,0xd7,0xa0,0xdd,0x98,0x8a,0x5d,0xdd,0xcb,0x5c,0x91,0xf7,0x29,0x86,0x73,0xe8,0x11,0xb6,0x49,0xe0,0x1e,0x33,0x32,0xf7,0x0d,0x98 }, { 0xf0,0x76,0xa8,0x51,0x49,0xd9,0x21,0x58,0x6f,0x39,0xad,0x7b,0x4c,0x6f,0x9d,0x8a,0x55,0x4f,0xc4,0x19,0x33,0xe3,0xbf,0x2d,0x6e,0xb0,0x5a,0x53,0x4f,0x83,0x89,0x79 }, { 0x96,0xbc,0xbd,0x78,0x73,0x80,0x9e,0xe8,0x2f,0x33,0xea,0x0a,0xe4,0xb5,0xf7,0x99,0x5c,0xe0,0x5c,0x15,0x7a,0x5f,0xca,0xb1,0xe0,0x73,0xe3,0x2e,0x42,0x07,0x89,0x55 }, { 0x1e,0x7e,0x37,0x18,0x89,0xda,0x22,0xb1,0x2d,0x1e,0x0b,0xad,0x04,0xcb,0xf1,0x6d,0xdb,0xd1,0xbe,0xa8,0x55,0x6a,0x11,0x35,0xb3,0x95,0x9e,0xf6,0x9c,0xd7,0x11,0xb7 }, { 0xf7,0xa7,0x17,0x74,0x4a,0xca,0xdc,0x16,0x15,0xe4,0x05,0x75,0xc3,0xd2,0xb4,0xc6,0x66,0x60,0xa2,0xb3,0x14,0x87,0x06,0x7f,0x51,0x5d,0x2c,0x18,0x25,0x50,0xb9,0x2d }, { 0xa4,0xb7,0xbd,0xb9,0xf3,0x4e,0x62,0x6e,0x81,0x7a,0x94,0xf5,0x7d,0x8a,0xad,0x13,0xf1,0x47,0x1a,0xf1,0x77,0xfa,0xff,0x80,0xf7,0x43,0x02,0x3b,0x90,0xec,0x65,0x5b }, { 0x6c,0xfe,0x85,0x20,0xed,0x21,0x34,0xb4,0xc1,0xd0,0x4b,0x34,0x7f,0xe2,0x29,0x07,0xa0,0x40,0xfa,0xf5,0x33,0x4f,0xa4,0xba,0x10,0x0f,0xaa,0x27,0x81,0xfd,0x47,0xc2 }, { 0x92,0x6e,0xf0,0x70,0x94,0x84,0x76,0x9d,0xef,0x1a,0x8e,0x00,0x8c,0xbd,0x6d,0xea,0xd2,0x12,0x9f,0xba,0xeb,0xf2,0x6c,0x44,0x04,0x45,0x7b,0xaf,0x5c,0xc9,0x52,0x44 }, { 0xc2,0xd4,0xbc,0xa8,0x7c,0x14,0xec,0x11,0x30,0xe0,0x33,0xf0,0xf2,0xef,0x9c,0x64,0xbf,0x13,0xd7,0xf8,0x11,0x23,0xd4,0x0c,0xf6,0x52,0x45,0x15,0xf6,0x62,0x7b,0x18 }, { 0xcf,0xef,0x87,0xc2,0xf1,0x47,0x2d,0xc9,0x6e,0x5e,0x5e,0x91,0xad,0x6e,0xb6,0xe5,0x53,0xd9,0x60,0x08,0xa0,0x11,0x45,0xc9,0xce,0x2e,0xd3,0xef,0x77,0xa3,0x54,0xed }, { 0x88,0x06,0x94,0xbc,0xcb,0x14,0xaa,0x44,0x7d,0x83,0xe6,0x5b,0xa1,0xc8,0x44,0x5d,0x11,0x4c,0x86,0xe6,0x08,0x55,0x4e,0x5e,0xf7,0x6c,0xd8,0xc4,0x0d,0xa2,0xd4,0x51 }, { 0x04,0x81,0xdd,0xce,0xcc,0x70,0xe5,0x99,0x77,0xdd,0xec,0x44,0xa2,0x9c,0x9c,0x06,0x13,0x6e,0x09,0x38,0x88,0x64,0xae,0x7a,0xb7,0xb0,0x2d,0xa5,0x0a,0x6b,0xed,0xc7 }, { 0x97,0x9a,0xd4,0x8e,0x89,0x25,0xb8,0xfe,0xc4,0xf1,0xa7,0x69,0x2d,0xdf,0x81,0x3d,0x61,0xed,0x83,0x2a,0x93,0x37,0x82,0x61,0xfd,0xb1,0x1c,0xfa,0x57,0x5e,0x50,0x85 }, { 0x7b,0xdc,0xf0,0x0f,0x7f,0xea,0x39,0xc8,0xd2,0xfa,0xf4,0x93,0x8e,0x43,0xab,0xd8,0xbc,0x23,0x99,0xc0,0x56,0x1b,0xd0,0x7a,0x1d,0xd1,0x54,0x9f,0x32,0xa7,0x24,0x52 }, { 0xe4,0xa8,0x2a,0xf6,0xf2,0xfe,0xfa,0xd7,0x0a,0xd0,0x98,0xa1,0x87,0x13,0x10,0x9f,0xb8,0x28,0x52,0x45,0x0e,0x6d,0x2a,0x2f,0x80,0x25,0x67,0xa6,0xe7,0xeb,0x2b,0xed }, { 0xe7,0x02,0x16,0xac,0xfd,0xbb,0x4a,0xf5,0xab,0x79,0x0c,0xf0,0x90,0x3b,0x9c,0x11,0x23,0xd0,0x19,0x1b,0xc7,0x1a,0x3d,0x95,0xfc,0xea,0xc5,0x79,0xcc,0xad,0xff,0x98 }, { 0x53,0xeb,0xc3,0x32,0x43,0x99,0x60,0x8f,0x84,0xa1,0x1a,0x45,0x49,0x75,0x9b,0x85,0x60,0x7c,0x9c,0x98,0x74,0x3b,0xe9,0x3a,0x2e,0x5e,0x60,0xf3,0x20,0xfd,0x39,0xbf }, { 0x5b,0xd6,0x9c,0xfa,0x9f,0xb1,0xa3,0x61,0x03,0x16,0xa3,0x98,0x43,0xd7,0x57,0xda,0xca,0x5a,0xa0,0x27,0xaa,0x82,0xf9,0xf7,0x91,0xb0,0x27,0x05,0xab,0x11,0x28,0x60 }, { 0x40,0xc5,0x73,0xb2,0xf2,0x1a,0xef,0xf6,0x30,0x87,0x91,0xb2,0x85,0x78,0x90,0xf5,0x12,0x39,0x16,0x39,0xea,0xea,0x5e,0x6f,0x7f,0xed,0x1e,0x34,0xcb,0x3d,0x70,0xdd }, { 0x0b,0x45,0xd7,0xf7,0x66,0x37,0xee,0x67,0xd2,0xcf,0x56,0xd1,0xb8,0x86,0x34,0x01,0x3b,0x83,0xeb,0x3a,0x37,0xb0,0xc9,0x7e,0x07,0x21,0xcc,0x73,0xd2,0x2b,0x11,0x58 }, { 0xa8,0xa9,0xae,0x42,0x2c,0x2c,0x28,0xd3,0x76,0xd4,0xae,0x15,0xe1,0x45,0x47,0x22,0x15,0x6e,0x13,0x68,0xbc,0xfe,0xa1,0xf4,0xd2,0xbf,0xa5,0x23,0x17,0xb9,0xcf,0x2b }, { 0xe7,0x64,0x3a,0xcc,0x8a,0xa8,0x19,0x98,0x0b,0xda,0x04,0x5c,0x7c,0xdc,0x8e,0x7a,0x61,0x69,0xb3,0xc5,0x5c,0xc9,0x30,0xd4,0x32,0xaa,0x50,0xd6,0xae,0x41,0x31,0x96 }, { 0xae,0xeb,0x3f,0x45,0xda,0x52,0x74,0xe0,0x62,0x03,0xc4,0xed,0x88,0xbb,0xdc,0x6e,0x68,0x7a,0xb1,0x2a,0x02,0x41,0x22,0x72,0x63,0x3f,0xe3,0x6b,0x91,0x0b,0xc7,0x32 }, { 0x6f,0xd0,0x4f,0xe9,0xb7,0x88,0x20,0xd7,0x5a,0x08,0x72,0x20,0x94,0xd8,0x0e,0x0a,0x52,0x57,0x48,0x38,0x7a,0xf5,0x26,0x2f,0x3c,0xcf,0x4f,0x61,0x27,0xcc,0x42,0xd0 }, { 0xf8,0x35,0x4d,0xf2,0x7f,0xda,0xf3,0xd6,0x7c,0x9d,0xf3,0xf6,0x9a,0x3a,0x9f,0x27,0x58,0xf2,0x8f,0xad,0x77,0x1e,0x4b,0xf3,0xb9,0xce,0x58,0x4f,0x92,0x7f,0x19,0x3a }, { 0x22,0x98,0x50,0x54,0x56,0x0d,0x1c,0xba,0xf9,0x5e,0xd9,0x7d,0x05,0xb6,0xe4,0x47,0xa8,0x5d,0x4a,0x90,0x85,0x5c,0x63,0x24,0xb8,0x4c,0x47,0xe0,0x72,0x45,0xd5,0x40 }, { 0xeb,0x0e,0xfb,0x73,0xd0,0xb4,0x44,0x4f,0xec,0x6d,0x97,0x60,0x5d,0x98,0xa9,0xa9,0x45,0xbf,0xcd,0x99,0xf0,0x06,0x37,0x72,0xd3,0x27,0xb2,0x45,0x2b,0x19,0x2e,0xbf }, { 0x3c,0x2b,0x34,0x4b,0x38,0x49,0xb1,0x21,0x11,0x09,0x7b,0xdf,0x86,0x52,0x00,0xfe,0x45,0x39,0x1f,0x9d,0x42,0x54,0xe5,0xca,0x65,0xde,0x9d,0xd6,0x92,0xe2,0x71,0x32 }, { 0x29,0x71,0xb2,0xfd,0xb6,0x4b,0xb2,0xa5,0x01,0xf7,0x34,0x6a,0x91,0xa9,0x72,0x54,0x0a,0x59,0x09,0xa4,0x13,0x5b,0x18,0x4a,0x50,0x3d,0x21,0x9e,0xb4,0x07,0xe6,0xac }, { 0x9f,0x7d,0x41,0x12,0xf4,0x8b,0xfe,0x0b,0xbd,0xd0,0xd2,0xfd,0x8f,0x6c,0xaa,0x7e,0xee,0xb8,0xc3,0xba,0x14,0x39,0x81,0x30,0x13,0x20,0x57,0xac,0xe4,0x29,0x88,0x38 }, { 0xc1,0xc7,0xdb,0xec,0x7e,0xc0,0xa5,0xcf,0xe1,0x02,0x11,0x29,0x9d,0x8c,0x10,0xde,0xd7,0x9c,0x18,0xf7,0xc1,0xd0,0x4c,0xbe,0xab,0x06,0x92,0x4d,0x61,0x7c,0xb7,0x77 }, { 0x36,0x18,0x77,0x8d,0x0d,0xa7,0xdc,0x1d,0xc8,0xb0,0x24,0xca,0x05,0xc1,0xa1,0xd1,0x27,0xd3,0x56,0x3b,0x80,0xb1,0x88,0xa2,0x80,0x22,0xc1,0x9c,0xcc,0xb4,0x87,0x89 }, { 0xa3,0xfd,0x15,0xcf,0xfa,0x65,0x0f,0x79,0x61,0xac,0x96,0x21,0x08,0xd7,0x05,0x20,0xaa,0x40,0xe5,0xfd,0x90,0x8c,0xba,0x74,0x2d,0x8b,0x39,0x26,0x03,0x27,0xf2,0xcc }, { 0xfe,0x32,0x56,0x3a,0xd4,0x80,0xbc,0x47,0x14,0xf7,0x98,0xdc,0x3b,0x4b,0x44,0x82,0x47,0x1c,0xad,0xac,0xd1,0xc4,0xe0,0x51,0xea,0x2b,0xff,0x6f,0xc7,0x63,0xfc,0xea }, { 0x1d,0x06,0xee,0x3b,0x90,0xb4,0xd1,0xf4,0xe7,0x84,0xd9,0xe5,0xd3,0xd1,0x72,0x04,0x09,0xbe,0xa0,0x2f,0x9c,0x95,0x4a,0x1f,0x8f,0xbe,0xc6,0xeb,0xf0,0xa1,0x56,0x8d }, { 0xa9,0x7d,0xa3,0x1c,0x31,0x5c,0x1f,0x9e,0xcc,0x90,0x0a,0xe5,0x7d,0xa7,0x21,0x1f,0x55,0x71,0xc2,0xee,0x13,0x88,0x77,0x42,0x83,0xda,0x51,0x5d,0x12,0xa4,0xa6,0x7a }, { 0xb5,0x5c,0xee,0x2f,0x8c,0x1b,0xd9,0x75,0x7b,0x91,0xa4,0x6e,0xe0,0x62,0x97,0x72,0x3a,0x12,0x6c,0xea,0x82,0x2c,0x71,0xef,0xb8,0x00,0xf3,0xd4,0xce,0xc3,0x16,0xf2 }, { 0xb1,0xcc,0x9f,0xc5,0xc5,0x6a,0x1d,0x1f,0x13,0xa8,0x9c,0x49,0x5a,0x2c,0x24,0x62,0x56,0x25,0xe6,0x76,0x35,0x15,0x7b,0xf1,0xc2,0x04,0xbf,0xaa,0xa7,0x24,0x2c,0xa1 }, { 0x9e,0x75,0x93,0x01,0x38,0x1f,0x44,0x14,0xcd,0xec,0x40,0x06,0xae,0x0c,0x78,0x6a,0x83,0xea,0x92,0x2e,0x95,0x51,0x2f,0x3d,0x97,0x5c,0x00,0x75,0x96,0x84,0x65,0x3e }, { 0x55,0xc8,0x41,0xb7,0x13,0x62,0xb8,0xbe,0x5f,0x8f,0x1c,0xb1,0x78,0x0e,0xfd,0xf3,0x59,0xed,0x35,0xc1,0xd4,0x4a,0x21,0x0b,0xf0,0xf5,0xad,0xae,0x75,0x70,0x72,0x8d }, { 0x93,0xc4,0x0c,0xdf,0xd4,0x07,0x09,0xda,0x3e,0x4c,0x05,0x57,0xa8,0xc7,0x66,0x22,0x7a,0xf9,0xec,0xa3,0x4c,0xce,0xd7,0xd1,0x7a,0x4b,0xb0,0xe2,0x0e,0x09,0xdd,0xf9 }, { 0xee,0xe7,0x06,0x4b,0xfa,0x70,0xab,0xdd,0x7c,0x66,0xb4,0x4b,0xf4,0xbc,0x5e,0x6b,0x9c,0x62,0xa2,0xcb,0xa1,0x25,0xaf,0x0c,0x41,0x3d,0xcc,0xf5,0xab,0x81,0xab,0x83 }, { 0xfb,0xfc,0x15,0xcf,0x61,0x1b,0xe9,0xe4,0xa5,0x8b,0x83,0x60,0xf7,0x66,0xfc,0xd0,0x8f,0xe7,0xea,0xf1,0x20,0x3e,0x25,0x8f,0xa1,0xf3,0xb4,0xa8,0xcf,0x0a,0xd3,0x8e }, { 0x9a,0x02,0xd1,0x18,0xa3,0x4e,0xd3,0x60,0x86,0x3e,0xd4,0x12,0x21,0x9f,0x66,0xe4,0x53,0x36,0xd9,0xd5,0xf3,0x72,0xff,0x51,0x7a,0x2f,0x06,0x2c,0x5f,0x8d,0x09,0xd9 }, { 0x65,0xe1,0xc8,0x38,0xa7,0x49,0xb4,0x9c,0x76,0x08,0x76,0x70,0x25,0x3e,0x3f,0x8e,0xa4,0xe0,0x2e,0x45,0x85,0x7d,0x43,0xd5,0xbb,0x7a,0xb6,0x8e,0x9d,0x1d,0x0b,0xce }, { 0xe6,0x58,0x44,0x6d,0x17,0x8a,0x23,0x11,0x01,0xef,0x2a,0xf7,0x42,0xb2,0x78,0xc7,0xef,0xd5,0x8b,0x7a,0x50,0x0c,0xf5,0x10,0xf7,0xd4,0x93,0xa2,0x5e,0xeb,0x53,0xf5 }, { 0x3f,0x4c,0x56,0x1d,0xdf,0x4a,0x80,0xf0,0x6d,0xeb,0x9a,0xbd,0x62,0xab,0xcc,0xe6,0xf7,0x30,0x78,0x4e,0x5a,0x8d,0xe8,0xc4,0xa2,0xef,0x2f,0xf4,0x16,0x00,0x4f,0x83 }, { 0x16,0x8f,0x76,0x89,0x2c,0x7d,0xe3,0x99,0x52,0x8e,0x84,0x62,0x9d,0xf1,0x97,0x3d,0xd5,0x1b,0x91,0x20,0x93,0x31,0x4a,0x22,0x35,0x83,0xa1,0xda,0x4c,0x94,0xcd,0xd9 }, { 0xc1,0x8a,0xea,0xe8,0xfa,0xc9,0x96,0x79,0x97,0x82,0xd2,0x9f,0xf7,0x98,0x7a,0x4e,0xae,0x8d,0xd1,0x0c,0xd4,0xad,0x37,0xbc,0xe4,0x8b,0xdc,0x2e,0x1d,0x0c,0xcf,0x84 }, { 0x0d,0x68,0x6c,0xd7,0xfe,0x21,0x80,0xb0,0xf6,0x64,0x9a,0xc6,0x1f,0xc2,0x75,0x2f,0xb6,0x43,0x25,0x28,0x0b,0x49,0x86,0xa6,0xba,0x84,0x8e,0x18,0x31,0x0d,0x25,0xfc }, { 0x42,0x1f,0xfe,0xab,0x04,0x33,0xe3,0x9e,0x85,0x7c,0xf6,0x9f,0xa7,0xbd,0xf4,0xbe,0x80,0x0c,0xf7,0x98,0xa0,0xf5,0x60,0x28,0x04,0xd8,0x6e,0x89,0x20,0xb7,0x77,0x32 }, { 0xbd,0x48,0xef,0x70,0xe8,0x6a,0xba,0xd8,0x22,0xa1,0xfa,0x75,0xc6,0x55,0xf7,0x16,0xad,0xd0,0xee,0xa9,0xb3,0x73,0x7f,0x0f,0x62,0xc5,0x11,0x7d,0xf9,0xb9,0x1b,0x03 }, { 0x25,0x47,0x9a,0x84,0x95,0x5e,0x2e,0x74,0x62,0xac,0x89,0x22,0x0b,0x3f,0xfa,0x0b,0x67,0xa4,0x5c,0x24,0xbe,0x03,0xc0,0xbb,0x37,0x91,0xe1,0x82,0xb0,0x73,0xe6,0x52 }, { 0xa8,0x5a,0x28,0x7b,0xaa,0x73,0xf1,0x97,0x65,0x1c,0xe3,0x63,0x95,0x45,0xa4,0x31,0x3f,0x29,0xd7,0x40,0x12,0x5a,0xce,0xc5,0x87,0xe3,0xfd,0x7b,0x7c,0xba,0x8e,0xa8 }, { 0xe2,0x7b,0x0e,0xb8,0xcb,0x10,0x7c,0x84,0x3d,0x7d,0x35,0x90,0x8b,0x76,0x2b,0x56,0x8b,0x64,0x12,0xbb,0x99,0x80,0xaf,0xe1,0xac,0x7e,0xe8,0xfc,0x0b,0x4c,0x85,0x8b }, { 0x82,0x71,0x1c,0x1f,0x5a,0x94,0xab,0xb1,0xde,0xa2,0xfc,0xae,0xbc,0xf8,0x28,0xe4,0x79,0xc6,0xe2,0xb4,0xc7,0x40,0x5d,0x98,0xee,0xf6,0x7f,0x2c,0x55,0x86,0xd0,0xd1 }, { 0x36,0x2f,0x7e,0x46,0x61,0x70,0x2c,0x8c,0xa6,0x99,0xba,0x90,0xc9,0x3e,0x8f,0xa7,0xe9,0xa7,0xdf,0xa0,0x1f,0xb3,0xe2,0x8c,0xc1,0x09,0x96,0xb0,0x46,0xf9,0x33,0xeb }, { 0x75,0x05,0x92,0x46,0x79,0x45,0xa9,0x44,0x32,0x19,0x5d,0x31,0xa0,0x6a,0x54,0x27,0xb8,0x6d,0x1e,0x72,0xd4,0x43,0xa3,0xb9,0xf1,0xb6,0x0b,0xa7,0x68,0xc8,0x1c,0xc2 }, { 0xd4,0x41,0xa2,0x7a,0xcb,0xa1,0x7b,0xa5,0xf6,0x26,0xdc,0xb1,0xba,0x90,0x02,0x72,0x0a,0xc4,0xc4,0x31,0xd5,0x97,0xcc,0x64,0x7e,0xdf,0x5f,0xb1,0xd8,0x72,0x2b,0x64 }, { 0x2a,0xe1,0xb5,0x7b,0x36,0x74,0x59,0xc6,0xcb,0x95,0x90,0x2e,0xd3,0x0d,0xc3,0x9c,0x28,0xed,0x26,0x35,0x61,0x3b,0x6b,0x39,0x84,0x03,0x61,0x2b,0x57,0xb7,0x78,0x70 }, { 0x36,0x0b,0x62,0x08,0x74,0xee,0xec,0x6a,0x2f,0xfc,0xce,0xe2,0xbf,0x4d,0x41,0x79,0x82,0xa0,0xc6,0xf8,0xd3,0xc0,0xd4,0x17,0x48,0x5a,0xc2,0x30,0x64,0xb7,0x93,0xf9 }, { 0x19,0xdc,0xae,0xee,0xe9,0xe9,0x5f,0xad,0x0f,0x44,0xff,0xcd,0xc3,0x96,0x49,0x9c,0xaf,0x22,0xf6,0xc3,0x5a,0x94,0x5e,0x2f,0x9c,0xd2,0xcb,0xef,0x3a,0xcc,0x98,0x20 }, { 0x71,0x75,0xed,0xc3,0xee,0xe6,0x9d,0x36,0x5f,0x2a,0x96,0xa4,0x05,0xf7,0x35,0xa4,0xfc,0x4c,0x54,0xe5,0x0e,0xcc,0xc9,0x0a,0x45,0x34,0x8d,0x8b,0xb8,0xee,0x80,0xdc }, { 0x27,0x8d,0xab,0x78,0xd2,0xfc,0x8b,0x6f,0xe7,0x46,0x7d,0xe2,0xbe,0x08,0xd5,0x5d,0xea,0x03,0xfb,0xe9,0xc3,0x07,0xd5,0x32,0x62,0xcd,0x02,0xc0,0xc4,0x68,0x5d,0x8b }, { 0xc1,0x63,0xa1,0x79,0x05,0x0b,0x94,0x4c,0xaa,0xdf,0x61,0xaa,0x7a,0x43,0x57,0x15,0x16,0x2e,0xd4,0x93,0xef,0x72,0xbb,0x63,0x32,0x4e,0x8d,0x16,0xb2,0x40,0xc4,0x8a }, { 0xe8,0x91,0x7d,0xde,0xb2,0x18,0xb4,0x8f,0x75,0xd8,0x14,0x00,0xc6,0xfd,0xa5,0x99,0x71,0x4f,0xa6,0xd5,0x62,0x37,0x10,0xd9,0x92,0x47,0x9c,0xb5,0x41,0x38,0xe1,0x88 }, { 0xdb,0x4d,0x67,0xee,0xbe,0xc4,0x37,0xa1,0xb1,0xc8,0xfa,0x2f,0xee,0xea,0xf3,0x63,0xec,0x7c,0x7c,0x83,0x09,0x3a,0x3d,0xfb,0xa9,0x79,0x31,0x24,0xe7,0x33,0xcf,0xdb }, { 0x0c,0x09,0x95,0xd3,0xd5,0x20,0xa3,0xb5,0x65,0x15,0xfc,0x53,0x58,0x92,0x59,0x87,0x87,0x43,0xce,0x67,0x8c,0x1f,0xb2,0xc5,0x5f,0x2a,0xb6,0x92,0x07,0x85,0xa5,0x00 }, { 0x0e,0xc4,0x67,0x33,0x19,0x47,0xd3,0x6f,0x03,0x23,0x59,0x0d,0x04,0x7f,0xb0,0x8b,0x4d,0x32,0x8a,0xe2,0x63,0xaa,0xa1,0x58,0x72,0x2e,0xde,0x50,0x18,0x6a,0x61,0x82 }, { 0xb1,0xb8,0x71,0x68,0xbe,0xb3,0x97,0x51,0xf6,0x26,0x01,0xd1,0xbb,0x1c,0x97,0x7f,0xe8,0x45,0xfb,0xe1,0xd4,0x71,0x29,0x36,0x88,0xa2,0xb4,0xc2,0xfb,0x56,0x2b,0xc9 }, { 0x02,0x63,0xbe,0x38,0xdf,0x59,0x13,0x3b,0xc8,0xe4,0xfc,0x59,0x9f,0x51,0x9a,0xfb,0x51,0xd0,0x61,0xf9,0xb1,0x2e,0x05,0xb1,0xe1,0x9e,0x49,0x12,0xaa,0xad,0xca,0xc4 }, { 0xe4,0xad,0x83,0xc7,0x2d,0x3c,0x9c,0x01,0xda,0x92,0xf2,0x8f,0x90,0x6b,0x8c,0x75,0x46,0xda,0x41,0xc4,0xb2,0x3f,0x55,0x0c,0x7b,0x62,0x6a,0xd4,0x78,0x55,0xaf,0xdc }, { 0x7c,0x1b,0xd5,0x14,0x73,0x88,0x77,0x27,0xbf,0x82,0xad,0x52,0x65,0x0f,0x41,0xbd,0x5c,0x11,0x75,0xd7,0x1a,0x91,0x15,0x43,0xd2,0x17,0xbe,0xb8,0x1e,0x9c,0x3a,0x3c }, { 0x95,0xa6,0xcd,0x97,0x93,0x6f,0x8e,0x4e,0x05,0xc5,0x77,0x23,0x7b,0x97,0x41,0xaf,0x6d,0x7c,0xaa,0xd5,0xe4,0x49,0xb3,0x35,0xad,0xfb,0xc0,0xaf,0x01,0xbb,0x4a,0x1c }, { 0x47,0xa0,0x3e,0x0a,0x93,0x95,0xc2,0x4e,0x03,0x10,0xbb,0x0a,0x44,0x3f,0x00,0x08,0x4f,0xdb,0x11,0xc9,0x45,0x0f,0x12,0xc7,0xa3,0xcd,0xe8,0x35,0x22,0x80,0x63,0x0d }, { 0x4a,0x92,0x0e,0xc5,0xa4,0xa3,0x66,0xf8,0x51,0xa9,0x6d,0x53,0x67,0x52,0xab,0x6e,0xdc,0xac,0xd6,0x37,0x4d,0x41,0x97,0x92,0xec,0xae,0xe2,0x1d,0x6c,0xcc,0x7c,0x7f }, { 0x58,0x27,0xbd,0x30,0xdd,0xa0,0x24,0xbc,0x7d,0x74,0xa7,0x5f,0x2c,0xa2,0x33,0x57,0x80,0xa3,0xe9,0x3a,0xcd,0x2c,0x74,0xca,0x97,0x2c,0x6a,0xf2,0x94,0x95,0x87,0x69 }, { 0xe7,0x02,0x54,0x46,0xa4,0x75,0xe0,0x9c,0x22,0x2c,0xe1,0x62,0x33,0xf0,0x0e,0x22,0x51,0x5c,0x69,0xa3,0xae,0xd8,0x14,0xb9,0xbb,0x2f,0xb2,0xc4,0xb5,0x75,0xfb,0x46 }, { 0x9a,0x82,0x90,0x59,0x1f,0x61,0x30,0x49,0x5b,0x3a,0xec,0x50,0xce,0x9c,0xbe,0x1b,0x40,0x4f,0xae,0xb4,0xf4,0xfd,0x06,0x84,0xcd,0x53,0x99,0x5e,0x53,0xb4,0xb1,0xb7 }, { 0x87,0x50,0xb4,0x5f,0xb7,0x62,0xba,0xab,0x0b,0x72,0x06,0xce,0xb4,0x77,0x57,0x6f,0x9c,0xdf,0x66,0xda,0x0a,0x26,0xf2,0xf2,0x66,0xc6,0xf2,0x2e,0x40,0x0d,0xbe,0xd3 }, { 0xfc,0x15,0xb7,0xf1,0xfd,0xcf,0xd0,0xe9,0x2b,0xbb,0xb0,0xd7,0x94,0xf6,0xb9,0x05,0x5e,0x67,0x5b,0xaf,0x68,0x3c,0xae,0x24,0xb9,0xfc,0x30,0x76,0x0c,0x5e,0x43,0x3d }, { 0x5d,0x0a,0x65,0x5b,0xbd,0x37,0x45,0x65,0x76,0x0a,0xf8,0x4c,0xae,0x44,0x8d,0x25,0x1e,0x94,0xe6,0xd7,0x18,0x90,0xf2,0x1e,0x44,0xec,0x6e,0x52,0x6c,0x40,0x25,0x95 }, { 0x6c,0x00,0x52,0x76,0xe6,0xbc,0x7a,0x12,0xc3,0x55,0xe5,0x3d,0x7f,0x30,0xb7,0x69,0x98,0xd6,0xf2,0xf6,0x47,0xa7,0xf8,0x19,0xa5,0x5e,0xa3,0xbc,0xce,0x40,0xac,0x16 }, { 0x6a,0xc6,0x85,0x90,0x9a,0x22,0x8d,0x77,0x95,0xef,0x2f,0x7e,0xb9,0x96,0x11,0x69,0x00,0xa7,0xef,0x86,0x42,0xf2,0x2f,0x70,0x99,0xa0,0x37,0xa0,0xd0,0x96,0xe3,0x5a }, { 0x68,0x13,0xc8,0x9e,0x4c,0x9f,0x4b,0xa7,0x24,0x0c,0x8a,0xd4,0x56,0x0b,0xe7,0xa7,0xf3,0xbc,0x00,0x19,0xcc,0x97,0x5a,0x20,0xe4,0x92,0x28,0x0a,0x90,0xb5,0x3c,0xb2 }, { 0x98,0xbc,0x90,0x56,0x38,0x4c,0x17,0x59,0x31,0xc4,0x96,0xac,0xa7,0x40,0xb4,0xbe,0xc3,0xfe,0x46,0x9d,0xcf,0x02,0xf1,0x11,0x0c,0xf0,0x72,0x47,0xef,0xd0,0xa7,0xc9 }, { 0x0d,0xae,0xab,0x9d,0x22,0x74,0x1a,0xb5,0x83,0xcd,0xc7,0x23,0xf9,0x22,0xbf,0x38,0x37,0x76,0x4b,0x27,0x88,0xcd,0xe2,0xae,0x17,0x6a,0xb3,0xbe,0xdd,0x60,0x53,0x4d }, { 0xe9,0x41,0x73,0xdd,0xc4,0xe9,0xa1,0x46,0xb7,0xd3,0x05,0x4e,0xe7,0xba,0xd1,0xf2,0x86,0x53,0x23,0x71,0xd8,0xf2,0xa6,0xd8,0x8e,0xcb,0x09,0xa7,0xe8,0xe7,0xa4,0xcb }, { 0xb5,0xda,0x9b,0x1a,0xb3,0x8b,0x0c,0xae,0x72,0xe3,0x11,0x02,0x2f,0x26,0x45,0xdf,0xa0,0x68,0xba,0x9e,0x24,0x70,0x86,0x5d,0xf3,0xa2,0x75,0xdb,0x78,0x13,0x6f,0x2d }, { 0x23,0x3b,0xd1,0x92,0xd4,0x10,0x1f,0xdc,0x01,0x65,0x2d,0x40,0x7a,0x6f,0x34,0x96,0x14,0x0a,0xb3,0xf7,0x30,0xfa,0xe0,0x20,0xbf,0x37,0xf4,0x86,0x5e,0xd6,0xc6,0x30 }, { 0xf6,0x96,0xe2,0x2e,0xe4,0x58,0xce,0xbc,0xff,0xdf,0xc6,0xc1,0x48,0xc4,0xc5,0x2a,0x75,0xed,0xf4,0x13,0x86,0x94,0xcd,0x95,0x42,0x4f,0x3d,0x81,0x5c,0xcb,0xe6,0xa6 }, { 0xaf,0x33,0xc1,0x5e,0x3b,0xc2,0x16,0x0a,0x0f,0x1a,0xd1,0x41,0xd9,0xa9,0xec,0x76,0xb4,0x2f,0x34,0xfb,0x47,0xbc,0x95,0xff,0x8c,0x63,0x68,0x24,0x26,0x04,0x55,0xbc }, { 0x9e,0xd3,0xc0,0x08,0x9b,0x5f,0x79,0x0c,0x7b,0x82,0xe9,0x8a,0xb6,0xe5,0xe4,0x5b,0x8e,0x26,0xe1,0x61,0xff,0x4c,0x83,0x8d,0x66,0x59,0x0b,0x6c,0x65,0x64,0xeb,0xb9 }, { 0x55,0x10,0x53,0x30,0xa3,0x5f,0x9f,0x3d,0x5f,0x6a,0x28,0x36,0x2d,0x9d,0xa1,0x07,0x07,0xf8,0x19,0x28,0x3f,0x38,0xfd,0xe8,0x05,0x7b,0x34,0x38,0xd6,0x46,0xf1,0x02 }, { 0x1d,0x80,0xf8,0xcd,0xf9,0x18,0xce,0x43,0x8a,0xf3,0xc6,0x37,0xac,0x84,0xa1,0x94,0x5d,0x09,0x3b,0xbf,0x92,0x41,0xa1,0xdd,0x17,0x70,0x75,0x90,0x90,0xb1,0x05,0x9f }, { 0x61,0xc7,0x63,0xfc,0x93,0x3d,0x3f,0xe2,0xd5,0x39,0x84,0x2d,0x1a,0x94,0x62,0xae,0x41,0x86,0x38,0x53,0x23,0x6e,0xa7,0xee,0x73,0xb5,0x69,0xd7,0xd6,0xc0,0x3d,0xc9 }, { 0xf3,0x4d,0x45,0xe0,0x73,0x2e,0x61,0x8c,0xda,0x25,0xc1,0x5f,0x8e,0xc2,0x33,0xd9,0x63,0x51,0x41,0xc1,0x92,0x06,0xa7,0x80,0xda,0x70,0xcb,0x1c,0xa0,0x7f,0x32,0x63 }, { 0xa6,0xb5,0xca,0xfb,0xd3,0xad,0xf4,0x74,0xde,0x77,0x0f,0x73,0xd4,0xca,0x11,0x5c,0x56,0xd6,0x08,0x4d,0x1e,0x1c,0xcd,0xde,0xe4,0x15,0x8f,0x41,0x75,0xc9,0xd0,0x5e }, { 0x62,0x78,0x89,0x30,0x37,0x8e,0x7c,0x83,0x7a,0x28,0x7b,0xfb,0x72,0xd3,0x9e,0xc4,0x5c,0xe2,0x58,0xa8,0x05,0x52,0x16,0x37,0xaa,0x5f,0x34,0x54,0xd0,0x5b,0x62,0x68 }, { 0x15,0xc0,0x4e,0xa8,0xbd,0x77,0x1a,0x4a,0x58,0x98,0x96,0xdb,0x9d,0x95,0x97,0x0d,0xb9,0xab,0x00,0xf1,0x95,0xfb,0x73,0x64,0xd1,0x96,0xf9,0x3f,0x67,0xb3,0xf5,0x27 }, { 0x03,0x6f,0xf6,0x41,0xde,0x85,0xdc,0x13,0xda,0xd3,0x92,0x66,0xba,0xbb,0x74,0x7d,0xf7,0x59,0xe6,0x8a,0xab,0x1a,0xe9,0xce,0x3c,0xdb,0xb6,0xd5,0x51,0x5e,0x16,0x26 }, { 0x23,0xec,0x63,0x9a,0xba,0x39,0x6e,0x4c,0x51,0x78,0x35,0xdf,0xe3,0xab,0x7b,0x4f,0xdc,0xaa,0xe0,0x94,0xaa,0x51,0xe7,0x83,0xc6,0x1a,0x2c,0xf2,0xf1,0x4f,0x21,0x5f }, { 0x70,0xe0,0x4b,0x93,0xb5,0x3e,0x79,0x9a,0xe4,0x9b,0x85,0x72,0x82,0x0a,0xb7,0x93,0x3d,0xb2,0x56,0x3d,0x14,0xd6,0x8e,0x35,0xaa,0xe8,0x11,0x18,0x16,0xf1,0x34,0x91 }, { 0x3e,0xf5,0xdc,0x8b,0x66,0x60,0xdb,0x12,0x8e,0xa0,0x76,0xb0,0xa8,0x29,0x48,0x41,0xde,0x69,0x1a,0x80,0xbe,0x30,0xf9,0x3b,0xd9,0xca,0x0d,0x8d,0x26,0xf9,0x60,0x6e }, { 0xf2,0xfb,0x28,0xd1,0xf9,0xc6,0x60,0x1c,0xbc,0x47,0xbe,0xb1,0xfa,0x7d,0x0b,0xfc,0x84,0x05,0xc6,0x46,0x07,0xfc,0x58,0xd1,0x20,0x7d,0x2c,0xac,0xb2,0xae,0x9c,0xa1 }, { 0x0e,0x13,0x94,0xb0,0x0b,0x46,0x47,0x2b,0x0a,0xb3,0x92,0xd5,0x88,0xf5,0xb6,0x53,0x5c,0x48,0x6d,0xfb,0x2c,0xcd,0x26,0x94,0x83,0xe0,0x53,0x68,0x0a,0xe5,0x49,0x28 }, { 0x6e,0xa5,0xae,0xf9,0xb1,0xe7,0xff,0xa6,0xaa,0xdd,0xb6,0x6f,0x76,0x2a,0xbc,0x93,0x14,0xbf,0x9b,0x1c,0xf8,0x0d,0xa0,0x67,0x25,0x44,0x1e,0xa8,0x87,0xd0,0x94,0x4d }, { 0xed,0xf1,0x02,0xad,0x38,0x38,0xe8,0x3f,0xc6,0x45,0x57,0xc4,0x64,0x58,0xc9,0x75,0x93,0x9b,0x43,0x63,0xa2,0xb0,0x94,0x2e,0x9f,0x1b,0xab,0xad,0x63,0xa5,0xca,0x43 }, { 0xa0,0x8a,0x93,0xab,0x17,0x23,0xed,0x85,0x99,0x0d,0x01,0x88,0x48,0x36,0xaf,0x21,0xec,0xba,0xd6,0xa1,0xdb,0x71,0xb0,0xc0,0xcd,0xd8,0xbe,0xc6,0x18,0x74,0x6e,0x6a }, { 0x44,0x2b,0xd7,0x60,0x4d,0x9b,0xad,0xeb,0x58,0x15,0x7d,0x77,0xa7,0x4b,0xf9,0x65,0xcf,0xe7,0x3d,0xf9,0x9c,0xb8,0x5b,0x11,0x05,0x56,0x35,0xc8,0x17,0xd2,0xbe,0xc3 }, { 0xcf,0x27,0x0d,0x69,0x2c,0x5a,0x35,0x87,0xc0,0xa0,0x52,0x57,0x79,0x43,0xfb,0xb9,0x6f,0x77,0x40,0x02,0x3b,0x7b,0xd9,0x0c,0x11,0x88,0x4f,0x16,0x33,0x4d,0x4b,0xdd }, { 0xdb,0x3e,0x11,0xa6,0x27,0x73,0x43,0x37,0xff,0xe0,0x2b,0x85,0x39,0x05,0x66,0x23,0x49,0x49,0xc0,0x61,0x50,0x8e,0xc2,0x64,0xf1,0x1d,0x8e,0x91,0xf6,0xf2,0x44,0x35 }, { 0x7c,0x20,0x0a,0x17,0x89,0x87,0x24,0x82,0xa6,0x2b,0x21,0x96,0x41,0xb0,0x69,0xbb,0xf8,0xf8,0x91,0x0e,0x62,0x7d,0x43,0xdd,0xf3,0x63,0x35,0x5b,0xb2,0xb9,0x67,0x5e }, { 0x41,0xee,0x04,0xbe,0x99,0xb4,0xd5,0x37,0x8c,0x71,0xad,0x42,0x46,0x2b,0xce,0xea,0x9e,0xff,0x94,0xca,0xb6,0xfa,0x68,0xe0,0x74,0xdd,0x84,0xb0,0x5b,0x2c,0xaf,0xe7 }, { 0xfd,0x5e,0xd3,0x17,0xaf,0x6b,0x68,0xd2,0x19,0x38,0x2d,0x0c,0x26,0x27,0x50,0x34,0x28,0x78,0x2c,0x57,0xeb,0x8f,0x70,0x7b,0x7e,0xac,0xa1,0x87,0x65,0x0e,0xd8,0x7d }, { 0x6e,0x00,0x29,0xff,0x00,0x80,0x9e,0xd4,0xdd,0x21,0x4a,0x95,0x03,0xa3,0x63,0x72,0xa8,0x6b,0x4f,0xbf,0x80,0x8e,0x2f,0x78,0xbb,0x5e,0x12,0xee,0x8e,0x58,0xa1,0x5a }, { 0xb4,0x12,0xa5,0x31,0xf3,0xb4,0x22,0x44,0xf9,0x34,0x3f,0xec,0x3a,0x4e,0x81,0x48,0xb4,0xcd,0x9e,0x4e,0x4b,0x47,0x94,0x37,0x4d,0x2e,0x7e,0x98,0xea,0x2c,0xeb,0x2e }, { 0x3b,0x15,0x52,0x54,0x9c,0xb4,0xbb,0x6d,0x5b,0xea,0xd0,0x81,0x54,0xd8,0x4f,0x02,0xb4,0xe9,0xf6,0x8f,0x6a,0xd8,0x2b,0x78,0x59,0xec,0x65,0xdb,0xbe,0x7a,0x08,0xed }, { 0xe3,0x59,0xae,0x58,0x75,0x40,0xa4,0x88,0x2e,0x74,0xb2,0x74,0xa3,0xc3,0x0c,0xd0,0xaf,0x27,0xa0,0x7d,0x2c,0xaa,0x78,0x38,0x4b,0x85,0x4f,0x5b,0xf5,0x9c,0x23,0x69 }, { 0xb2,0x42,0x35,0x11,0xb2,0x27,0xad,0x34,0xdb,0xfe,0x53,0x18,0xc8,0x34,0x8d,0x7e,0x8b,0xba,0x32,0x19,0xc6,0xca,0x7b,0xa3,0xe2,0xf8,0x67,0xa1,0x6e,0x6f,0xc7,0x3a }, { 0xb6,0x1b,0x89,0x3c,0xa7,0x2d,0xfa,0xc2,0xff,0x37,0x9a,0xc9,0xc4,0xb6,0x4e,0x9e,0x0d,0x02,0x26,0xf0,0x9c,0xdb,0xa4,0xf5,0xae,0x29,0x38,0x16,0x3d,0x7f,0xbf,0xf8 }, { 0x89,0xac,0xd4,0x45,0x75,0xa3,0x75,0xcf,0xe1,0x7e,0xc9,0x18,0x37,0xa2,0x03,0x22,0xb9,0x39,0x9b,0xa0,0x9d,0x42,0xae,0x70,0x85,0x9b,0xdc,0xb0,0x87,0x2f,0xdb,0xc0 }, { 0x61,0x58,0x27,0x98,0xcb,0xed,0x7e,0x00,0x17,0x7b,0x00,0xdf,0x96,0xc0,0xd3,0x97,0xce,0x16,0xd8,0x7b,0x1b,0x95,0xa9,0x6e,0x74,0xe2,0xcb,0x0c,0xf9,0x13,0x1a,0xf1 }, { 0x31,0xe6,0x58,0x2c,0x7f,0x2a,0x5f,0xb8,0x74,0xc7,0x41,0xf0,0xf8,0x18,0xe4,0x4b,0xad,0x95,0x34,0xba,0x33,0x37,0xac,0x95,0x92,0x70,0x31,0x00,0xeb,0xa1,0xdd,0x7e }, { 0x34,0x58,0x0f,0x00,0x14,0x69,0x40,0x93,0xc9,0x0d,0x2e,0x64,0xe1,0xfa,0x92,0xc1,0x42,0xb5,0x3e,0xe5,0x31,0xd7,0x2a,0xfe,0x2a,0xa0,0x44,0x2f,0xa5,0xd3,0x26,0x6d }, { 0x7c,0x75,0x2d,0x94,0x33,0x5a,0xe0,0xe4,0x83,0x89,0x6f,0xdb,0x8d,0xb0,0xb1,0xc7,0xc5,0x45,0xee,0xb4,0x31,0x13,0xec,0x3d,0x9c,0xbc,0x91,0x6d,0xf7,0x52,0x97,0x4f }, { 0x55,0xe6,0x82,0xd2,0xb6,0x8c,0xb0,0x42,0xfd,0xe6,0x03,0xda,0x2a,0x19,0x78,0x21,0x9a,0x8b,0xfe,0xb2,0x71,0xc2,0xf7,0xdb,0xad,0xaa,0x37,0x9d,0x02,0x07,0x74,0xfd }, { 0x34,0x43,0x13,0xcc,0xc3,0xa7,0xdf,0x62,0x81,0x0d,0x32,0xfd,0x80,0xc6,0x51,0x5f,0x49,0x42,0x7b,0x01,0x2d,0xe5,0x52,0x89,0x0b,0x0b,0xc7,0xe5,0xcc,0xa1,0xf1,0x7f }, { 0xa9,0x90,0x75,0xec,0x7e,0xec,0x17,0x7d,0x95,0x8c,0x4f,0xd8,0xd2,0x4c,0x59,0xdf,0xa4,0xfb,0xa7,0x2a,0xd6,0xa0,0x7d,0xcd,0x59,0x23,0xf7,0x0f,0xe1,0x82,0x1c,0x1d }, { 0xb5,0x6a,0x66,0x66,0xcf,0x45,0x70,0x54,0xce,0xfd,0xa4,0x89,0x4e,0x9b,0x51,0x6d,0x30,0x3a,0x7d,0xd3,0x28,0x89,0x25,0x7f,0x63,0xea,0xbe,0x0a,0xa6,0x6e,0x9e,0xf0 }, { 0xae,0x8c,0x49,0x9b,0x08,0x2d,0x1e,0x78,0x50,0xff,0x94,0xf5,0xe5,0xda,0x62,0x88,0x7c,0x73,0x93,0x5a,0x11,0x67,0x78,0x32,0x7a,0x79,0x93,0x25,0x54,0xd7,0xf2,0x27 }, { 0xe2,0x79,0xe7,0x8a,0x6a,0x0f,0xa7,0x75,0x90,0x9e,0xa3,0x15,0x53,0x66,0xb7,0x0d,0xdc,0x8b,0xc7,0xa0,0x9a,0xe0,0x46,0x44,0xf7,0x11,0xde,0x6e,0x58,0x00,0x0a,0x9b }, { 0xf8,0x27,0x75,0x9b,0xca,0x19,0x1d,0x45,0x7f,0x9f,0x4a,0x3e,0x9d,0xef,0x50,0x1f,0x9f,0x38,0x9d,0xcd,0x0a,0xd2,0x97,0x75,0x73,0xc3,0x14,0x59,0x52,0xd4,0x6b,0xb6 }, { 0xcf,0x46,0xc5,0xf1,0xf8,0x04,0xe9,0x74,0x3b,0x3a,0xc0,0x7e,0xcb,0x31,0xfb,0x17,0x8e,0x4f,0x02,0xc2,0x81,0x5b,0x03,0xa3,0x38,0xfa,0x10,0x67,0x50,0xc7,0x1c,0x6a }, { 0x54,0x5b,0x86,0x4a,0x9c,0xb1,0x7b,0xf9,0xa9,0x7f,0xa4,0x55,0x5b,0xdf,0x70,0x03,0xbe,0x8c,0x7d,0x0b,0xb0,0x22,0x57,0x29,0x59,0x85,0x03,0xfd,0x68,0x29,0x32,0x74 }, { 0xbb,0xbf,0x65,0x31,0xf3,0x1b,0x16,0x8f,0x52,0xc6,0x16,0xa2,0x77,0x4d,0xed,0x1c,0x4e,0x6d,0xcb,0xbe,0xe0,0xee,0xbf,0xb6,0xe0,0x3b,0xe2,0x09,0xf4,0xb1,0x75,0x03 }, { 0x6b,0x56,0x2a,0x39,0x57,0x4b,0xff,0x25,0x1e,0x1f,0x48,0x61,0x0d,0xee,0xb0,0x24,0x77,0x48,0xb9,0xc8,0x0e,0xeb,0xe2,0xf1,0xd6,0x2f,0xf7,0x7d,0xbf,0x2f,0xaf,0x30 }, { 0xfe,0xee,0x9c,0x8e,0x15,0x20,0xfa,0xc8,0x1b,0xc0,0x7f,0x11,0xd2,0x35,0x59,0x31,0xc4,0xca,0x94,0xb9,0xa5,0x74,0xf2,0xa4,0x2b,0xa2,0x9a,0x1e,0xe4,0x97,0xfd,0x05 }, { 0xa2,0x9e,0x34,0x2d,0x94,0xb0,0xfe,0x29,0xde,0x82,0x73,0xd1,0xfd,0x90,0x0f,0xb8,0x99,0x29,0x50,0x7f,0xc5,0xb4,0xad,0xcf,0x18,0x88,0x45,0x10,0x80,0x2e,0x03,0x7f }, { 0x7a,0xb9,0x6a,0xf1,0x0b,0x2a,0xe7,0x72,0x61,0x13,0x3d,0xc2,0x9d,0x15,0x52,0x4e,0x55,0xb9,0xda,0x30,0xcf,0xa3,0x58,0xb4,0x55,0x07,0xe9,0x4f,0x38,0x41,0x69,0x08 }, { 0xb5,0x42,0xde,0xd8,0x16,0xfc,0x67,0x27,0x20,0xeb,0xe2,0x58,0x6a,0x87,0xa8,0x39,0x6f,0x63,0x68,0x9f,0x9d,0x02,0x6f,0xb2,0xbe,0x85,0xe9,0xf3,0x3b,0x93,0xde,0x64 }, { 0xc5,0x7a,0x95,0x97,0x30,0x2f,0xc2,0x0f,0x5c,0x76,0x72,0xdd,0xfb,0xbf,0x46,0x70,0x32,0x35,0x2d,0xf0,0x9c,0xce,0xa2,0x49,0xc4,0x18,0x87,0x1c,0x00,0x0d,0xa0,0x21 }, { 0x9d,0xaf,0xc3,0x00,0x62,0xe3,0xdd,0x45,0xf2,0xa1,0x85,0x28,0x80,0x0d,0x31,0xcf,0xf7,0x7f,0xc4,0x6e,0xea,0x72,0x44,0xa9,0x9b,0x06,0xf9,0xa4,0x86,0xef,0xc8,0xbc }, { 0x1e,0x88,0x97,0xda,0x03,0xf5,0x06,0x44,0xd7,0x13,0x41,0x14,0x49,0xbc,0xbe,0xe2,0x7e,0x93,0x37,0xee,0xf1,0x46,0x0b,0xbb,0x21,0x2a,0xc8,0xc7,0xb7,0x18,0xbb,0xfa }, { 0xeb,0x70,0x6e,0xf5,0x2e,0xc7,0x2e,0x6b,0xad,0x45,0x6b,0x75,0x59,0xba,0xa0,0x38,0x41,0x05,0x4a,0xd7,0xe1,0x5d,0xa9,0x54,0x0e,0xd7,0xce,0x69,0x76,0x83,0x7a,0x67 }, { 0xd1,0xb7,0xff,0x78,0x3f,0xa0,0x25,0xa3,0xaf,0x67,0xba,0xf4,0x37,0xdd,0x5d,0x15,0x49,0x43,0x26,0x1f,0xff,0x50,0x05,0xcb,0x01,0xb2,0x91,0x04,0xde,0xb0,0xaf,0xad }, { 0xef,0xbe,0x6a,0xe7,0xec,0x46,0xb1,0x95,0x71,0xdf,0xfb,0x42,0x75,0x77,0xf2,0xe0,0x50,0x0b,0x2a,0x23,0x45,0x3c,0x1a,0x5d,0xec,0xcd,0xef,0x80,0xe7,0x1b,0x7d,0x26 }, { 0x73,0x1b,0x62,0xa7,0xbe,0x73,0xec,0xd8,0xb8,0xd6,0x20,0x17,0xdb,0x39,0x7f,0x58,0x86,0x89,0x16,0x6f,0x50,0xea,0x96,0xb7,0x64,0x32,0x4c,0xe9,0x42,0xd5,0x3a,0xd5 }, { 0xa4,0xb7,0x1d,0x68,0x15,0x6e,0xb4,0x50,0x1b,0xbe,0x3e,0xd0,0x40,0x94,0xf3,0x3c,0xdc,0xef,0xb6,0x15,0x66,0xc2,0x09,0x94,0x26,0xa8,0x2d,0xb1,0x8b,0xf6,0xd9,0x18 }, { 0xff,0x86,0xcf,0x9b,0x4c,0x4c,0x79,0x88,0x4a,0x80,0xc4,0xc2,0xd7,0xdd,0x05,0x49,0xe0,0x10,0xe3,0xc0,0x71,0x4d,0xd8,0x3b,0x28,0xeb,0xf1,0xcf,0xa6,0x92,0x44,0x87 }, { 0xa3,0xe1,0x91,0xe1,0xd2,0x91,0x13,0xc0,0xa6,0x88,0xc4,0xd4,0x6c,0x6e,0xc3,0x35,0xce,0x28,0x93,0x61,0x8e,0xbd,0x99,0xc7,0x49,0xea,0x4f,0xe0,0x35,0xf2,0x55,0x44 }, { 0xd4,0x0e,0x12,0x99,0x42,0x66,0x9d,0x10,0x0c,0xc0,0xf3,0x2e,0xd5,0xd1,0xfa,0xdb,0x4b,0x20,0xf8,0xbc,0xeb,0x79,0xa4,0x3f,0xe3,0xd1,0x9e,0x60,0x79,0x5b,0x21,0x5c }, { 0xc3,0xee,0x8e,0x5e,0x03,0x0e,0x73,0x46,0x69,0xf8,0xa1,0x72,0xc7,0x11,0x84,0xe1,0xc8,0x3a,0xa3,0x26,0x41,0x74,0x6c,0x65,0x93,0x78,0x5a,0x5c,0xf7,0x9b,0x26,0x98 }, { 0x1f,0x3f,0xac,0x31,0xf9,0x43,0x17,0x33,0x6d,0x96,0xfa,0x76,0xc8,0x77,0xa6,0x18,0x96,0xac,0x9b,0x04,0x22,0x1b,0x16,0xd1,0xc5,0x95,0xff,0x7f,0x25,0x90,0xc8,0xd3 }, { 0xd3,0x10,0x7c,0x86,0x8b,0xf4,0xd0,0x23,0x29,0x85,0x3f,0xbd,0xb4,0x2f,0x23,0x45,0x5f,0xd1,0xb2,0xbb,0xa7,0x88,0xdb,0x7b,0xbb,0x30,0x6f,0xa5,0xdd,0x4c,0x00,0xbd }, { 0x1c,0x6f,0xa3,0x86,0x36,0xfa,0xac,0xae,0xc5,0x5b,0xa7,0x12,0x02,0x3e,0x3d,0xa4,0x29,0xfd,0x9b,0x81,0xbe,0xac,0x0b,0x94,0x92,0xd1,0x01,0xdb,0x9e,0xdf,0xd1,0xef }, { 0xb0,0xf0,0xd5,0xeb,0x9c,0xc2,0x51,0xfb,0xa4,0x65,0x46,0xe1,0x17,0xac,0x4e,0xed,0xd6,0x51,0xca,0x4f,0x98,0xed,0x6b,0x13,0xb9,0x8e,0xcc,0x00,0xb8,0xb9,0x26,0xde }, { 0x71,0x4c,0xf9,0xff,0x26,0xb1,0x1e,0xa1,0xd6,0x96,0xbb,0x2f,0x34,0x82,0x1b,0x65,0xf5,0xec,0x30,0xf5,0x40,0x92,0x8f,0x11,0xd5,0x81,0xe6,0x1f,0x84,0x63,0xfe,0x3e }, { 0xe4,0x70,0xa0,0x3e,0x37,0xed,0xbe,0xd8,0x88,0x45,0x13,0x09,0xb3,0x4a,0x17,0x1f,0x6b,0x1d,0x1a,0x9d,0xba,0x9e,0xbf,0xf6,0xf9,0xe9,0x6a,0x91,0x67,0x64,0x6f,0xe4 }, { 0x0b,0x52,0x4b,0x57,0x08,0x69,0x56,0xd4,0xcb,0x57,0x14,0x6f,0xbd,0x31,0x1b,0x07,0xfd,0x4b,0x70,0x26,0x90,0xeb,0x70,0x3c,0x37,0xe0,0x67,0x7f,0x20,0xff,0x01,0x8b }, { 0xef,0x52,0x69,0x60,0x5c,0x29,0x00,0x2f,0x21,0xa8,0x92,0x0e,0x05,0x50,0x5d,0x5c,0x19,0x12,0x01,0xd2,0x6d,0x73,0x43,0x6c,0xb2,0xcb,0xac,0xdc,0xe3,0x65,0xf6,0x12 }, { 0xdc,0x06,0x03,0x8e,0xaa,0x8b,0x46,0xab,0x25,0x93,0x8b,0x57,0x2d,0xc3,0x8e,0x29,0xae,0x79,0x3e,0xcc,0xda,0xd1,0x35,0x77,0x68,0xa8,0x5f,0x10,0xce,0x36,0x91,0xfb }, { 0x51,0xa2,0x59,0xbd,0x43,0xc6,0xaa,0xd4,0x9a,0xdd,0x16,0x9f,0xc9,0x8a,0x4a,0x1e,0xec,0x82,0xae,0xe7,0xe9,0x3d,0x5a,0x3c,0x38,0x93,0x97,0x04,0xfe,0x10,0x89,0x38 }, { 0x12,0x4c,0x62,0x07,0x88,0x7d,0xdc,0x3b,0xe4,0x31,0x29,0x40,0x3b,0xfb,0x3a,0x5a,0x6b,0xb6,0xbb,0x23,0xa2,0x08,0x0c,0xb5,0x6e,0xdf,0xf0,0xa2,0x73,0xb3,0xef,0xa2 }, { 0x98,0x7b,0x6f,0x5d,0x83,0xe5,0x8b,0xd5,0xc9,0x97,0xbb,0x99,0x38,0xfb,0x4a,0x60,0x1f,0x2f,0x70,0x77,0x6c,0x16,0x50,0xdf,0xea,0x81,0x55,0x33,0xac,0x29,0x20,0x8d }, { 0x4c,0x43,0x72,0x68,0x4a,0xde,0x24,0x40,0xe0,0xd1,0x0f,0x4c,0x80,0x64,0x11,0x0a,0x0f,0xdb,0xaf,0x68,0x9e,0xa4,0x21,0xde,0x98,0x81,0xae,0xa1,0x86,0x16,0xbc,0x90 }, { 0x02,0x6f,0xe1,0xb0,0x46,0xa1,0xf8,0xff,0x32,0x55,0x1f,0xe8,0xe5,0x7a,0x65,0xf3,0xce,0xdf,0x39,0x63,0xdf,0xa2,0x81,0xa0,0x33,0x5d,0x89,0xa1,0xba,0x27,0xb4,0xfd }, { 0x73,0x56,0xfc,0x22,0xe2,0x2a,0x31,0x0d,0x1d,0xef,0x39,0x0a,0x9c,0x2b,0xe0,0x69,0x3b,0x9b,0x2c,0xad,0x18,0x5f,0xc2,0x66,0x75,0x80,0x0c,0x97,0xe3,0x81,0xd2,0xc0 }, { 0x4d,0xf6,0x1c,0xeb,0x35,0x5b,0x39,0x23,0x7d,0x33,0xa8,0xe1,0x34,0x48,0x73,0xc3,0x0c,0x1f,0x79,0xd4,0x21,0x56,0x82,0x66,0x39,0x26,0x54,0x9c,0x9e,0x79,0xa6,0x84 }, { 0xbf,0xab,0x5a,0x5a,0x6a,0xe3,0xcb,0xcb,0xb7,0xf1,0xf6,0x79,0x8c,0x95,0x19,0x1c,0x43,0x32,0x4f,0x40,0x2e,0xd5,0xe7,0x49,0xc3,0x9c,0x73,0xcd,0x4a,0xda,0x43,0x3d }, { 0x76,0xa1,0x59,0x20,0x44,0xa6,0xe4,0xf5,0x11,0x26,0x5b,0xca,0x73,0xa6,0x04,0xd9,0x0b,0x05,0x29,0xd1,0xdf,0x60,0x2b,0xe3,0x0a,0x19,0xa9,0x25,0x76,0x60,0xd1,0xf5 }, tinyssh-20180201/crypto-tests/precomp_ed25519.data.py000066400000000000000000000056461322704306500221540ustar00rootroot00000000000000import hashlib, binascii b = 256 q = 2**255 - 19 l = 2**252 + 27742317777372353535851937790883648493 def H(m): return hashlib.sha512(m).digest() def expmod(b,e,m): if e == 0: return 1 t = expmod(b,e/2,m)**2 % m if e & 1: t = (t*b) % m return t def inv(x): return expmod(x,q-2,q) d = -121665 * inv(121666) I = expmod(2,(q-1)/4,q) def xrecover(y): xx = (y*y-1) * inv(d*y*y+1) x = expmod(xx,(q+3)/8,q) if (x*x - xx) % q != 0: x = (x*I) % q if x % 2 != 0: x = q-x return x By = 4 * inv(5) Bx = xrecover(By) B = [Bx % q,By % q] def edwards(P,Q): x1 = P[0] y1 = P[1] x2 = Q[0] y2 = Q[1] x3 = (x1*y2+x2*y1) * inv(1+d*x1*x2*y1*y2) y3 = (y1*y2+x1*x2) * inv(1-d*x1*x2*y1*y2) return [x3 % q,y3 % q] def scalarmult(P,e): if e == 0: return [0,1] Q = scalarmult(P,e/2) Q = edwards(Q,Q) if e & 1: Q = edwards(Q,P) return Q def encodeint(y): bits = [(y >> i) & 1 for i in range(b)] return ''.join([chr(sum([bits[i * 8 + j] << j for j in range(8)])) for i in range(b/8)]) def encodepoint(P): x = P[0] y = P[1] bits = [(y >> i) & 1 for i in range(b - 1)] + [x & 1] return ''.join([chr(sum([bits[i * 8 + j] << j for j in range(8)])) for i in range(b/8)]) def bit(h,i): return (ord(h[i/8]) >> (i%8)) & 1 def publickey(sk): h = H(sk) a = 2**(b-2) + sum(2**i * bit(h,i) for i in range(3,b-2)) A = scalarmult(B,a) return encodepoint(A) def Hint(m): h = H(m) return sum(2**i * bit(h,i) for i in range(2*b)) def signature(m,sk,pk): h = H(sk) a = 2**(b-2) + sum(2**i * bit(h,i) for i in range(3,b-2)) r = Hint(''.join([h[i] for i in range(b/8,b/4)]) + m) R = scalarmult(B,r) S = (r + Hint(encodepoint(R) + pk + m) * a) % l return encodepoint(R) + encodeint(S) def isoncurve(P): x = P[0] y = P[1] return (-x*x + y*y - 1 - d*x*x*y*y) % q == 0 def decodeint(s): return sum(2**i * bit(s,i) for i in range(0,b)) def decodepoint(s): y = sum(2**i * bit(s,i) for i in range(0,b-1)) x = xrecover(y) if x & 1 != bit(s,b-1): x = q-x P = [x,y] if not isoncurve(P): raise Exception("decoding point that is not on curve") return P def checkvalid(s,m,pk): if len(s) != b/4: raise Exception("signature length is wrong") if len(pk) != b/8: raise Exception("public-key length is wrong") R = decodepoint(s[0:b/8]) A = decodepoint(pk) S = decodeint(s[b/8:b/4]) h = Hint(encodepoint(R) + pk + m) if scalarmult(B,S) != edwards(R,scalarmult(A,h)): raise Exception("signature does not pass verification") f = open("precomp.txt") def l(line): l = "" for i in range(32): if i == 31: l += "0x%s%s" % (line[2*i], line[2*i+1]) else: l += "0x%s%s," % (line[2*i], line[2*i+1]) return l while True: line=f.readline() if len(line) == 0: f.close() break print "{", l(binascii.hexlify(publickey(binascii.unhexlify(line[0:-1])))), "}," tinyssh-20180201/crypto-tests/precomp_nistp256.data000066400000000000000000012554301322704306500221200ustar00rootroot00000000000000{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, { 0x6b,0x17,0xd1,0xf2,0xe1,0x2c,0x42,0x47,0xf8,0xbc,0xe6,0xe5,0x63,0xa4,0x40,0xf2,0x77,0x03,0x7d,0x81,0x2d,0xeb,0x33,0xa0,0xf4,0xa1,0x39,0x45,0xd8,0x98,0xc2,0x96,0x4f,0xe3,0x42,0xe2,0xfe,0x1a,0x7f,0x9b,0x8e,0xe7,0xeb,0x4a,0x7c,0x0f,0x9e,0x16,0x2b,0xce,0x33,0x57,0x6b,0x31,0x5e,0xce,0xcb,0xb6,0x40,0x68,0x37,0xbf,0x51,0xf5 }, { 0x7c,0xf2,0x7b,0x18,0x8d,0x03,0x4f,0x7e,0x8a,0x52,0x38,0x03,0x04,0xb5,0x1a,0xc3,0xc0,0x89,0x69,0xe2,0x77,0xf2,0x1b,0x35,0xa6,0x0b,0x48,0xfc,0x47,0x66,0x99,0x78,0x07,0x77,0x55,0x10,0xdb,0x8e,0xd0,0x40,0x29,0x3d,0x9a,0xc6,0x9f,0x74,0x30,0xdb,0xba,0x7d,0xad,0xe6,0x3c,0xe9,0x82,0x29,0x9e,0x04,0xb7,0x9d,0x22,0x78,0x73,0xd1 }, { 0x5e,0xcb,0xe4,0xd1,0xa6,0x33,0x0a,0x44,0xc8,0xf7,0xef,0x95,0x1d,0x4b,0xf1,0x65,0xe6,0xc6,0xb7,0x21,0xef,0xad,0xa9,0x85,0xfb,0x41,0x66,0x1b,0xc6,0xe7,0xfd,0x6c,0x87,0x34,0x64,0x0c,0x49,0x98,0xff,0x7e,0x37,0x4b,0x06,0xce,0x1a,0x64,0xa2,0xec,0xd8,0x2a,0xb0,0x36,0x38,0x4f,0xb8,0x3d,0x9a,0x79,0xb1,0x27,0xa2,0x7d,0x50,0x32 }, { 0xe2,0x53,0x4a,0x35,0x32,0xd0,0x8f,0xbb,0xa0,0x2d,0xde,0x65,0x9e,0xe6,0x2b,0xd0,0x03,0x1f,0xe2,0xdb,0x78,0x55,0x96,0xef,0x50,0x93,0x02,0x44,0x6b,0x03,0x08,0x52,0xe0,0xf1,0x57,0x5a,0x4c,0x63,0x3c,0xc7,0x19,0xdf,0xee,0x5f,0xda,0x86,0x2d,0x76,0x4e,0xfc,0x96,0xc3,0xf3,0x0e,0xe0,0x05,0x5c,0x42,0xc2,0x3f,0x18,0x4e,0xd8,0xc6 }, { 0x8e,0x53,0x3b,0x6f,0xa0,0xbf,0x7b,0x46,0x25,0xbb,0x30,0x66,0x7c,0x01,0xfb,0x60,0x7e,0xf9,0xf8,0xb8,0xa8,0x0f,0xef,0x5b,0x30,0x06,0x28,0x70,0x31,0x87,0xb2,0xa3,0x73,0xeb,0x1d,0xbd,0xe0,0x33,0x18,0x36,0x6d,0x06,0x9f,0x83,0xa6,0xf5,0x90,0x00,0x53,0xc7,0x36,0x33,0xcb,0x04,0x1b,0x21,0xc5,0x5e,0x1a,0x86,0xc1,0xf4,0x00,0xb4 }, { 0x62,0xd9,0x77,0x9d,0xbe,0xe9,0xb0,0x53,0x40,0x42,0x74,0x2d,0x3a,0xb5,0x4c,0xad,0xc1,0xd2,0x38,0x98,0x0f,0xce,0x97,0xdb,0xb4,0xdd,0x9d,0xc1,0xdb,0x6f,0xb3,0x93,0xad,0x5a,0xcc,0xbd,0x91,0xe9,0xd8,0x24,0x4f,0xf1,0x5d,0x77,0x11,0x67,0xce,0xe0,0xa2,0xed,0x51,0xf6,0xbb,0xe7,0x6a,0x78,0xda,0x54,0x0a,0x6a,0x0f,0x09,0x95,0x7e }, { 0xf0,0x45,0x4d,0xc6,0x97,0x1a,0xba,0xe7,0xad,0xfb,0x37,0x89,0x99,0x88,0x82,0x65,0xae,0x03,0xaf,0x92,0xde,0x3a,0x0e,0xf1,0x63,0x66,0x8c,0x63,0xe5,0x9b,0x9d,0x5f,0xb5,0xb9,0x3e,0xe3,0x59,0x2e,0x2d,0x1f,0x4e,0x65,0x94,0xe5,0x1f,0x96,0x43,0xe6,0x2a,0x3b,0x21,0xce,0x75,0xb5,0xfa,0x3f,0x47,0xe5,0x9c,0xde,0x0d,0x03,0x4f,0x36 }, { 0x76,0xa9,0x4d,0x13,0x8a,0x6b,0x41,0x85,0x8b,0x82,0x1c,0x62,0x98,0x36,0x31,0x5f,0xcd,0x28,0x39,0x2e,0xff,0x6c,0xa0,0x38,0xa5,0xeb,0x47,0x87,0xe1,0x27,0x7c,0x6e,0xa9,0x85,0xfe,0x61,0x34,0x1f,0x26,0x0e,0x6c,0xb0,0xa1,0xb5,0xe1,0x1e,0x87,0x20,0x85,0x99,0xa0,0x04,0x0f,0xc7,0x8b,0xaa,0x0e,0x9d,0xdd,0x72,0x4b,0x8c,0x51,0x10 }, { 0x30,0x1d,0x9e,0x50,0x2d,0xc7,0xe0,0x5d,0xa8,0x5d,0xa0,0x26,0xa7,0xae,0x9a,0xa0,0xfa,0xc9,0xdb,0x7d,0x52,0xa9,0x5b,0x3e,0x3e,0x3f,0x9a,0xa0,0xa1,0xb4,0x5b,0x8b,0x65,0x51,0xb6,0xf6,0xb3,0x06,0x12,0x23,0xe0,0xd2,0x3c,0x02,0x6b,0x01,0x7d,0x72,0x29,0x8d,0x9a,0xe4,0x68,0x87,0xca,0x61,0xd5,0x8d,0xb6,0xae,0xa1,0x7e,0xe2,0x67 }, { 0x23,0x77,0xc7,0xd6,0x90,0xa2,0x42,0xca,0x6c,0x45,0x07,0x4e,0x8e,0xa5,0xbe,0xef,0xaa,0x55,0x7f,0xd5,0xb6,0x83,0x71,0xd9,0xd1,0x47,0x5b,0xd5,0x2a,0x7e,0xd0,0xe1,0x47,0xa1,0x3f,0xb9,0x84,0x13,0xa4,0x39,0x3f,0x8d,0x90,0xe9,0xbf,0x90,0x1b,0x7e,0x66,0x58,0xa6,0xcd,0xec,0xf4,0x67,0x16,0xe7,0xc0,0x67,0xb1,0xdd,0xb8,0xd2,0xb2 }, { 0x6a,0x95,0x01,0xd8,0x5b,0xf5,0xdc,0x80,0x2a,0x1f,0x28,0xa0,0x8a,0xcc,0x7d,0x8f,0xdf,0x53,0xc8,0xaf,0x01,0xa7,0xcd,0x38,0x32,0xa2,0x90,0x82,0x5d,0x8b,0xda,0xc1,0xca,0x64,0x0a,0xd1,0x93,0x47,0x37,0x43,0x81,0xc6,0xc6,0xe4,0x4a,0x3c,0x56,0xa3,0xf8,0x46,0x1b,0x5c,0x69,0x7a,0x6f,0x35,0x30,0xaf,0xf5,0x3d,0x5f,0x1e,0xf1,0xa3 }, { 0x0a,0x06,0x43,0xfb,0x8f,0xcc,0x14,0xde,0xf6,0x7a,0x6a,0x5e,0xb1,0xbf,0x8e,0x91,0x25,0xb3,0x5e,0xdc,0x73,0x38,0xd8,0x16,0xaa,0x41,0x10,0xa6,0xb9,0x0e,0xe7,0x85,0x55,0x34,0x38,0x32,0x4a,0x9e,0x79,0x55,0xc5,0x20,0xda,0xcd,0xa2,0x92,0x0e,0x70,0x0d,0xa1,0x0d,0x00,0xe7,0x01,0x2e,0xd7,0xba,0xc0,0xd1,0x00,0x86,0x1f,0x9c,0xc2 }, { 0x53,0x4d,0x45,0xdb,0x6b,0xac,0xa8,0xe2,0xd2,0xa5,0xd0,0xa7,0x65,0xf1,0x60,0x13,0xa8,0xd4,0xeb,0x58,0xc6,0xaa,0xad,0x35,0x67,0xce,0xbd,0xfa,0xc4,0x2d,0x62,0x3c,0xfa,0xd6,0x69,0xc8,0x9a,0x2a,0x54,0xe4,0x41,0x54,0x35,0x7f,0x99,0x2c,0xce,0xc8,0xee,0xf0,0x93,0xe0,0xf2,0x3a,0x63,0x1d,0x17,0xfd,0xf6,0x64,0x41,0x9e,0x50,0x0c }, { 0xae,0x3f,0x7d,0xba,0x0b,0xde,0x8b,0x6a,0xd7,0xce,0x2f,0x8e,0xed,0xe4,0xb7,0x62,0xc5,0x56,0xde,0xa6,0x78,0xf8,0x59,0x62,0x6a,0x9e,0x62,0x35,0xa6,0x74,0xc4,0xf6,0x1c,0x05,0x49,0xfc,0x0a,0x69,0x99,0x5a,0x24,0xb8,0xc2,0x13,0x24,0x9d,0xb9,0xa9,0x79,0x40,0x50,0x0d,0x08,0x5f,0x8a,0x5c,0x1e,0xe0,0x55,0x3e,0x71,0x1f,0x4b,0x53 }, { 0xf4,0x4b,0x39,0x75,0x9a,0x2e,0x6d,0xb7,0x23,0xa6,0xf9,0x02,0x49,0x97,0x2d,0xfd,0x08,0xe9,0x53,0x80,0xf1,0xfc,0xa4,0x70,0xea,0xcd,0x1d,0x03,0xe5,0xed,0xf2,0x14,0xbe,0xfa,0xfc,0xcf,0x22,0x3c,0xa0,0x65,0xf0,0xa0,0xdb,0x4e,0xea,0x93,0xff,0x06,0xa2,0x11,0x6f,0xca,0x81,0xf7,0xa4,0xa9,0x43,0x6a,0x8d,0x91,0x7a,0x02,0xde,0xde }, { 0x34,0xa2,0xd4,0xa3,0xb0,0x09,0x16,0x59,0x87,0xff,0xd1,0x52,0x86,0x03,0xed,0x61,0x19,0x0d,0x0b,0x71,0x0d,0x6a,0x56,0x4c,0x2d,0xb2,0xe3,0x5f,0x12,0xd0,0x44,0x1b,0xbe,0xaa,0xed,0x6a,0x53,0xa1,0xe3,0xc2,0x2b,0xca,0x71,0x04,0x6e,0x77,0x7f,0xc0,0xe7,0xd7,0x66,0xb9,0xde,0xdd,0xd8,0x1d,0xb4,0x24,0xe7,0x84,0x5e,0x93,0xb1,0x46 }, { 0x55,0xa0,0x2d,0x99,0x88,0xe3,0xdd,0xd9,0x4a,0xea,0x49,0x7e,0x79,0x9d,0xd9,0x42,0x4e,0x89,0xe1,0x9e,0x2f,0xab,0x42,0x3b,0x0a,0x5d,0xc0,0x9b,0x21,0x93,0x29,0xb6,0x4a,0x62,0x9c,0xff,0xe2,0x78,0x69,0x3b,0x94,0x03,0x06,0x21,0x70,0x00,0xfb,0x3d,0x00,0x7d,0xfa,0x0f,0x83,0xaa,0x49,0xd8,0xdf,0xc8,0xff,0x38,0x38,0x6e,0x44,0x04 }, { 0x04,0xc4,0x90,0x52,0x8b,0xe7,0x59,0xe4,0xe8,0x89,0x7b,0xbd,0x81,0x8d,0x45,0x9a,0xa4,0x16,0xb9,0xae,0x0b,0x3c,0x5d,0xfc,0x34,0x69,0xce,0xa3,0x9f,0x3f,0x98,0xde,0x30,0xe5,0x0b,0x46,0x40,0x5c,0xc7,0x4f,0xad,0xe8,0x4c,0x66,0x24,0x2a,0x81,0x07,0x47,0x1d,0x9d,0x7b,0x4a,0x46,0x05,0xee,0xeb,0xd9,0x49,0x43,0x4e,0x8d,0x6e,0x96 }, { 0x93,0xc7,0x7b,0x96,0x9f,0xe0,0x47,0x82,0xbb,0x59,0xe7,0x56,0xf4,0x8a,0x83,0x99,0x82,0x32,0xb7,0x04,0x26,0x29,0xa6,0x47,0xd4,0xc1,0x39,0x2c,0xa2,0x72,0xea,0x2a,0x60,0x19,0x50,0x2b,0x87,0x6a,0x30,0xd6,0x04,0xa6,0x5e,0x31,0x46,0xcf,0x01,0x52,0xf6,0xff,0x63,0x77,0x6a,0x2f,0xee,0x83,0x72,0x51,0xf9,0xd8,0x96,0xbb,0x5f,0xc9 }, { 0x16,0x94,0x9b,0x72,0x87,0xd4,0xf4,0x81,0x89,0x72,0x99,0xb9,0xeb,0x6f,0xe8,0x0c,0xcd,0xc5,0x84,0x9a,0xe1,0xd5,0x27,0xe2,0x80,0xe7,0x6b,0xb9,0x8e,0x61,0xca,0x07,0xe7,0xa4,0x14,0x6d,0x77,0x0e,0xde,0xde,0xbd,0xf9,0x97,0xb7,0x5b,0x60,0x12,0x09,0x4d,0x2d,0x6a,0xc6,0xfe,0xdf,0x98,0x3a,0xa0,0x9c,0x2b,0xe7,0xa0,0x42,0x04,0x27 }, { 0x1e,0x87,0xec,0xce,0x88,0xa0,0xbc,0x36,0xfd,0x3a,0xd8,0x36,0xc5,0xbe,0x29,0xb1,0x2c,0x17,0x9e,0x23,0x4f,0xd1,0x9a,0xc4,0x67,0x7d,0xf7,0xb1,0x2d,0x0a,0x9c,0x6a,0x67,0x28,0x56,0x39,0x9d,0xe3,0x9c,0x32,0x5e,0x7c,0x46,0x44,0x3b,0xed,0xa6,0x46,0xe0,0x28,0x12,0x1f,0x47,0x82,0x5a,0x2a,0x87,0x8b,0x57,0x75,0x99,0x08,0x7a,0x17 }, { 0xb0,0x1a,0x67,0xf7,0x16,0x47,0x5f,0x72,0x88,0x6a,0x8f,0x47,0x49,0xb8,0x61,0x76,0x28,0x1b,0x19,0x5f,0xf4,0x6f,0x92,0x5a,0xe1,0x40,0x4a,0x86,0x1a,0xbe,0x45,0xc0,0x7c,0x52,0x1b,0xbf,0x5a,0x39,0x56,0xe2,0xac,0xd5,0x6b,0x13,0x16,0x4e,0xf9,0x94,0x72,0xfc,0x67,0x63,0x41,0xb6,0x2c,0x7f,0xc7,0x2f,0x0d,0xbe,0x00,0x90,0x10,0x6c }, { 0xfa,0x3a,0xdb,0x43,0xa7,0xbc,0x69,0x5c,0xc8,0xa1,0x23,0x87,0x07,0x74,0x55,0x8e,0x93,0x20,0xdd,0x79,0x5f,0x5f,0xaf,0x11,0x58,0xfa,0x39,0x01,0xf9,0x92,0x58,0xd5,0xe3,0xa8,0xd6,0xe0,0xd0,0x40,0x8b,0xc1,0xce,0x8c,0x24,0x04,0x9a,0x41,0xd2,0xff,0x23,0x77,0x40,0x98,0x49,0x17,0x15,0xc4,0xd5,0xd4,0xb4,0x6d,0x1c,0x88,0x25,0x96 }, { 0xe7,0x16,0xae,0xd2,0xcf,0x06,0x9e,0x4d,0x99,0x77,0x89,0x67,0x2e,0x6d,0x6b,0xd2,0x50,0x86,0x76,0xf2,0xf4,0xfd,0x0a,0x64,0xf0,0x77,0xe8,0xda,0xa2,0x45,0x57,0x3f,0x35,0x36,0x63,0xe6,0x94,0xfc,0x72,0xab,0x59,0x12,0xb0,0x66,0x87,0xb9,0xa8,0x51,0xd1,0x3d,0x0d,0xf2,0xfa,0x07,0xc9,0xb3,0x50,0x5f,0xc2,0x6b,0x46,0x92,0x18,0xd1 }, { 0x9a,0x80,0x26,0xa6,0x3b,0xa7,0xe5,0x3b,0x9a,0x25,0x19,0x5c,0x4f,0x6b,0x5b,0x25,0x8c,0x36,0x57,0xbf,0x2b,0x15,0xdd,0xa2,0x14,0x23,0x18,0x4b,0xa6,0x4d,0xb2,0x8a,0xb8,0x1f,0xf4,0x12,0xf4,0xed,0x1f,0xc2,0x9f,0x72,0x80,0x14,0x7b,0xfa,0x12,0x0a,0xd3,0x5b,0x5c,0x32,0x2b,0xab,0x14,0xac,0x2c,0x1d,0xd3,0xfd,0x0b,0x37,0xe6,0x7f }, { 0x5a,0x57,0xc3,0xe3,0x54,0x82,0x07,0xef,0x2f,0x45,0x41,0xcf,0x25,0xb5,0xe8,0x1b,0x6b,0x2e,0x5d,0x2f,0xce,0xc4,0x51,0xf4,0xb5,0x11,0x3c,0x2b,0x35,0x71,0x74,0xb3,0x07,0x7c,0x7b,0x30,0x3e,0x69,0x22,0x46,0x01,0xb1,0x16,0x57,0x29,0xf3,0x44,0x33,0x28,0x88,0x67,0x00,0x13,0x4b,0xb9,0x28,0x88,0xcf,0x59,0x59,0x38,0x34,0x37,0xe3 }, { 0x5f,0x41,0xdc,0x4c,0xd2,0x21,0x67,0x53,0xdf,0xc9,0x03,0xd3,0xd1,0xc8,0x08,0x81,0xed,0x07,0x6e,0xcd,0xcc,0xe9,0xa0,0xbf,0xc9,0x77,0xdc,0x03,0x93,0x18,0xdb,0x9b,0x6b,0x7c,0x44,0x96,0xa4,0x89,0x17,0xdf,0x92,0x8c,0x70,0x13,0x3d,0x4d,0xfa,0x04,0x9c,0x7e,0xbd,0x0a,0x49,0x46,0x85,0x0f,0x08,0x9d,0xc1,0x45,0xd9,0xc0,0x0a,0x2c }, { 0x5c,0xe9,0x65,0x05,0xee,0xf7,0x20,0x8c,0xd1,0x09,0x20,0xad,0xec,0xfb,0x86,0xad,0x1a,0x87,0xa9,0x74,0x79,0x7e,0x4f,0xc5,0x89,0x37,0xf0,0x0f,0xac,0xb0,0x06,0xff,0xd1,0x6b,0x6e,0xbd,0x38,0x1f,0x5a,0xd5,0xec,0x56,0xd1,0xf2,0x2f,0xde,0x7b,0xc3,0x66,0x9d,0x20,0xbe,0xbd,0x95,0x5c,0x2b,0x81,0x8d,0xcd,0xa1,0x07,0x15,0x26,0x13 }, { 0x7a,0xdf,0xd6,0x22,0xe4,0xac,0xb8,0xff,0x4b,0x95,0xf6,0xad,0x27,0xcb,0x18,0x50,0x75,0x5b,0x8d,0xa5,0xd8,0x23,0x0a,0xea,0xe5,0xe5,0x6f,0x9f,0x80,0xac,0x5a,0x3a,0xfc,0xf8,0x0e,0x03,0xd5,0x54,0xdb,0xf5,0x04,0x83,0xa9,0x30,0x75,0x9c,0xf6,0xf4,0xa4,0xc0,0xb9,0xf4,0xa2,0x2f,0x97,0x8f,0x59,0x2e,0x09,0x5d,0x61,0x99,0x51,0x59 }, { 0x71,0xa5,0xbd,0x27,0xc6,0x25,0xca,0x1b,0x4b,0x2a,0x3a,0x46,0x35,0xb1,0x04,0x33,0x63,0xa5,0xb8,0x31,0x1d,0x31,0xa9,0x19,0x15,0x26,0x1b,0x05,0xd0,0xb7,0x9f,0xbc,0xc5,0xbf,0x52,0x4d,0x06,0x67,0x41,0xff,0xb3,0x94,0x52,0xca,0x1a,0x02,0xf2,0xef,0xc7,0x6b,0x60,0x51,0xeb,0xaa,0x32,0xd0,0xc2,0xe3,0x7c,0xcc,0x8f,0x27,0x7f,0x6b }, { 0x3d,0x13,0xf6,0x58,0xca,0x8d,0xae,0x4f,0x8b,0x44,0x07,0x54,0x6c,0x22,0xd9,0x4d,0xb9,0xf2,0x2d,0x82,0xb3,0x63,0xea,0x0d,0x5b,0xf2,0x3a,0xdf,0xb3,0x42,0x09,0x74,0x01,0x37,0x67,0x0c,0x0d,0xf9,0xf7,0x8d,0x5c,0xd8,0x6d,0xac,0x08,0x18,0x12,0x81,0x03,0xe8,0x0b,0x16,0xa1,0xe5,0x28,0x3d,0xcd,0x8a,0xe3,0x0a,0x23,0xea,0xab,0xf2 }, { 0xf2,0x49,0x10,0x4d,0x0e,0x6f,0x8f,0x29,0xe6,0x01,0x62,0x77,0x78,0x0c,0xda,0x84,0xdc,0x84,0xb8,0x3b,0xc3,0xd8,0x99,0xdf,0xb7,0x36,0xca,0x08,0x31,0xfb,0xe8,0xcf,0xb5,0x7e,0x12,0xfc,0xdb,0x03,0x1f,0x59,0xca,0xb8,0x1b,0x1c,0x6b,0x1e,0x1c,0x07,0xe4,0x51,0x2e,0x52,0xce,0x83,0x2f,0x1a,0x0c,0xed,0xef,0xff,0x8b,0x43,0x40,0xe9 }, { 0xa0,0x18,0x36,0x6f,0x4e,0x91,0xe9,0x0d,0x8e,0x5c,0x64,0x33,0x40,0xe5,0x86,0xb4,0x71,0x4a,0xb7,0x49,0xc9,0x05,0x2a,0x05,0x03,0xe8,0x46,0x5c,0x6e,0xad,0xe3,0xc4,0xe2,0xbb,0xec,0x17,0x14,0x11,0x0b,0x16,0x7c,0x6c,0xe5,0x78,0x34,0x9d,0x83,0x69,0xd5,0xf7,0x28,0x4e,0x44,0x61,0x4f,0x37,0xf4,0x5c,0x42,0x02,0x6b,0x26,0xe8,0xd0 }, { 0x07,0x89,0xc1,0x44,0xc0,0xa6,0xba,0xf8,0xf1,0xcf,0x8c,0xd7,0x92,0x6e,0x91,0x5c,0x90,0x55,0x44,0x63,0xde,0x38,0xf1,0x3f,0x25,0xa0,0x10,0xc2,0x43,0x26,0x5f,0x34,0xc1,0x4b,0x56,0x16,0x69,0xdd,0x64,0x8f,0xb6,0x53,0xa4,0x70,0x8d,0xb1,0xac,0x4a,0xec,0xdf,0xf4,0x78,0x45,0xca,0x3d,0x32,0xa2,0x08,0x35,0x49,0x7c,0xf9,0xea,0x9e }, { 0xcd,0x7c,0xe6,0x5d,0x70,0x7d,0xa2,0xa6,0x9e,0xa2,0x54,0x87,0xea,0x25,0x4c,0x45,0xeb,0x7d,0x5a,0xdf,0xfe,0x1c,0xe3,0xee,0xfe,0xbc,0xce,0xe6,0x47,0xa9,0x11,0x2d,0x85,0xe0,0x4a,0x4b,0x4c,0x96,0x6f,0x97,0x89,0xb9,0x01,0x6a,0xa5,0xee,0x67,0x08,0xa1,0x90,0xaa,0x49,0x8b,0xee,0x60,0xa5,0xff,0xba,0xbe,0x0d,0x3a,0x92,0xb3,0xaf }, { 0xc3,0xac,0x84,0xa8,0xa4,0xfb,0x5a,0x29,0xe4,0xf6,0x26,0xcc,0xd8,0x9f,0x99,0x1f,0x81,0xd1,0x9d,0x96,0x08,0x5c,0x64,0x0d,0x78,0x56,0x1d,0x26,0x08,0x1f,0xc3,0x2f,0x94,0xf3,0x53,0xb4,0xde,0xa9,0x8f,0x3a,0x13,0x8d,0xca,0x09,0x2c,0x1f,0xa8,0xbf,0xde,0x25,0x6d,0x03,0xae,0x01,0x13,0xdf,0x96,0xcf,0x08,0x02,0x4e,0x02,0x94,0x37 }, { 0x0f,0x5f,0x0a,0xea,0x09,0x96,0x34,0x71,0x8e,0x67,0xd4,0xc7,0x37,0x05,0xae,0x59,0xe8,0xaf,0x0b,0xc3,0x6c,0x99,0x8b,0xef,0x6c,0x88,0xad,0x96,0xc3,0x21,0x2f,0x1a,0xf8,0xa8,0xb2,0xb7,0xc8,0x59,0x3c,0x95,0x58,0x86,0xaa,0xdd,0x4b,0xa1,0x6b,0x78,0x4f,0x5e,0xd4,0x0d,0xde,0x29,0xaf,0x7c,0x75,0x5d,0x7b,0x1e,0x77,0x12,0xb0,0x9a }, { 0x5a,0x26,0x99,0xf3,0x00,0x62,0x20,0x27,0x2d,0x05,0x28,0x57,0x80,0x45,0x77,0xd0,0x28,0x73,0xdf,0x88,0x2c,0x6e,0xb1,0x66,0x67,0xf0,0xaf,0xee,0x94,0x78,0x14,0xc7,0xb4,0x1d,0x6a,0x99,0xf4,0xe5,0x4c,0x0f,0xf5,0xd6,0xb0,0xe5,0x53,0xae,0x46,0xe8,0x43,0xb4,0xa5,0x58,0x12,0xd4,0x33,0x76,0xa4,0x98,0x83,0x81,0x14,0x9d,0x39,0xae }, { 0x47,0x1a,0xd0,0xa8,0xd5,0x7f,0x59,0x39,0xf1,0x5f,0x0d,0x87,0x0a,0xe2,0x5c,0x90,0x91,0x42,0x8b,0xf4,0xe1,0xe6,0xe9,0x17,0x24,0x35,0x15,0x8c,0xfc,0x44,0x71,0xbb,0x22,0x34,0xca,0x62,0x77,0x8e,0x8e,0x39,0x2a,0x36,0x7a,0xb4,0x80,0x94,0xd1,0x38,0xb0,0xd7,0xe9,0xff,0x7f,0x23,0x98,0x2c,0x45,0x43,0x18,0xfa,0x49,0x69,0x3a,0x0c }, { 0xa2,0xac,0x43,0x24,0x36,0x92,0x66,0xe0,0x40,0x58,0x8a,0xa2,0xf8,0x48,0x8b,0xf8,0xcf,0x9e,0xda,0xa2,0x21,0xac,0xad,0x39,0xb6,0x65,0xa1,0x4f,0x67,0x9f,0xf6,0x7f,0xa6,0x03,0xa2,0x96,0x23,0xa4,0x6f,0x46,0x3d,0x10,0xd1,0x89,0x09,0xb2,0x69,0xd0,0x3f,0x16,0x46,0x14,0x56,0x52,0x5d,0xbb,0x38,0x3a,0xae,0xb5,0x5c,0x45,0x71,0x37 }, { 0x0e,0xc7,0x38,0x85,0x14,0x1f,0xe5,0x4f,0xfe,0xf6,0xa0,0xb5,0x70,0xcd,0x98,0xd5,0x30,0xe4,0x31,0xc1,0xaa,0xd5,0xfc,0xfe,0x8f,0x7d,0xce,0xcb,0x7d,0x96,0xdf,0xf1,0xd6,0x22,0x4f,0x4e,0x87,0xae,0x87,0x5d,0x91,0xac,0xc4,0xef,0x58,0x06,0x52,0x51,0x1d,0x52,0x64,0xce,0x87,0xed,0x78,0xaa,0x9e,0xc8,0x41,0xac,0x7c,0x7b,0x55,0x2c }, { 0xb7,0x94,0x89,0x09,0x0b,0xf0,0x70,0x02,0xa3,0x5f,0x10,0xe8,0x86,0xf1,0x02,0x10,0xe3,0xc4,0x76,0x02,0xde,0x10,0x36,0x4d,0x76,0xe7,0x6f,0x8c,0x8a,0x08,0x55,0x70,0xfb,0xfd,0xa8,0x23,0xd3,0xb1,0x46,0x6d,0x2a,0x09,0x37,0x31,0x69,0x44,0xab,0x98,0x16,0x41,0x66,0x46,0x2e,0x08,0x29,0x18,0xfc,0x96,0x0b,0x3a,0x2f,0x56,0x99,0xda }, { 0x47,0x77,0x78,0x36,0x4e,0x6e,0x1c,0xde,0x05,0x9a,0x0e,0x25,0x32,0xc8,0xf0,0xc6,0x9b,0xa1,0x2b,0x31,0x12,0xfb,0x6d,0xcf,0xb1,0x83,0xb5,0x39,0x96,0x60,0xb7,0xc9,0x2d,0xd8,0x9d,0x00,0xb8,0x38,0x9e,0x31,0x73,0x73,0xef,0xb6,0xa7,0xc8,0x9e,0x8a,0x5e,0x06,0x04,0xc1,0xf1,0x42,0xeb,0xcf,0x5c,0x20,0x5f,0xa3,0x99,0x18,0xc3,0xdf }, { 0x0e,0x2b,0xdd,0x84,0x84,0xd4,0xb9,0x41,0x18,0x20,0x8d,0xad,0xd4,0x08,0xc1,0xfc,0xcf,0xff,0x83,0x3b,0x23,0x5b,0x3e,0xd5,0x50,0x9d,0x38,0x60,0xca,0x94,0x34,0xea,0x41,0x99,0x5a,0x2d,0x9d,0xed,0xb4,0x02,0x7f,0xdc,0xcc,0x3a,0x62,0x06,0xb7,0xcc,0xe8,0x13,0xe0,0x31,0x84,0xf7,0x2e,0x21,0x95,0xd3,0xdd,0xf8,0xca,0xeb,0xb2,0x7c }, { 0x35,0x3d,0x45,0x8d,0x34,0x91,0xb5,0xa8,0xc7,0x3d,0x98,0x90,0x17,0xe1,0x4d,0xd2,0x2e,0xc3,0x8f,0xaf,0x35,0xf4,0x5d,0x26,0x0f,0xd8,0x01,0x3b,0x26,0xd6,0x9d,0x8e,0x9c,0x7d,0x37,0xbf,0x4f,0x5b,0xde,0x24,0x31,0x30,0xfd,0xe4,0x0c,0x04,0x0a,0x8a,0x82,0x5d,0xfc,0x12,0xfb,0x71,0xa9,0xa8,0x84,0x2b,0x9d,0x00,0x20,0xf3,0x2b,0x82 }, { 0x76,0x1d,0xce,0x00,0x36,0xd8,0xe9,0x6b,0xef,0xae,0x3a,0xee,0x94,0xf0,0xc2,0x93,0x5f,0xaa,0xcc,0x42,0x35,0xeb,0x70,0x8e,0x6e,0x13,0x6e,0x6b,0x55,0x76,0x0f,0x6a,0x10,0x3e,0x8b,0x5a,0x52,0x31,0xc4,0xa1,0x9e,0xe1,0xa8,0x77,0x43,0xf6,0xec,0x48,0x1b,0x21,0xc7,0x55,0xd2,0xe3,0xff,0xda,0x40,0xab,0x1e,0x56,0xc1,0x3d,0x05,0x24 }, { 0xdd,0xad,0x6b,0xf0,0x17,0x2e,0x22,0x40,0xd5,0x71,0x80,0xff,0x0b,0x1b,0xa7,0x6e,0x28,0xe6,0xbf,0x03,0x5d,0xc6,0x17,0xcc,0xaf,0x0d,0x4e,0x79,0xe3,0x30,0xc0,0x98,0x0b,0x13,0x71,0xe6,0x93,0x5a,0x21,0x89,0x75,0x30,0xa4,0x73,0x61,0x25,0xad,0xda,0xfa,0x33,0x3b,0xad,0x2d,0xb9,0xd1,0x40,0x3e,0x5a,0x99,0x4d,0x63,0xb6,0x7b,0x58 }, { 0x5f,0x63,0x9b,0x9c,0x48,0x47,0x28,0xe1,0x9a,0x10,0xac,0x26,0x39,0x7d,0x0f,0x6b,0xf7,0x94,0xd1,0xf0,0xcd,0xe2,0x3b,0x6c,0xd3,0x3d,0xd4,0x7d,0x27,0x0c,0x19,0xa5,0xf6,0x30,0x1b,0xd9,0xb4,0x88,0xbf,0x10,0x0e,0x98,0xbc,0x67,0xeb,0x21,0x19,0xce,0xe2,0xbb,0xc7,0xd4,0x16,0xe7,0x41,0x0b,0x07,0xed,0x90,0xce,0x6b,0xb4,0x43,0x99 }, { 0x35,0xb2,0x4f,0xc7,0x25,0x6e,0x66,0x9a,0x57,0x5c,0x35,0x84,0xa6,0x19,0xce,0xdb,0xee,0xda,0x35,0xcc,0xc0,0x50,0x20,0x69,0x86,0x30,0xc9,0xad,0x41,0x29,0x3c,0x8a,0x78,0xd5,0x53,0x78,0x3e,0x49,0xa8,0xbc,0x5a,0xa0,0x47,0xe7,0x71,0xbe,0xf4,0xcd,0x77,0x36,0x65,0x53,0x09,0x86,0x01,0xe4,0x37,0xcc,0x0e,0xe5,0x7b,0xe8,0x59,0x32 }, { 0xf8,0xf5,0xdc,0xcf,0x4c,0x6a,0x93,0xd7,0xa4,0xa5,0x4d,0xaa,0xfa,0xa3,0x44,0x9a,0xa8,0x7a,0x80,0x69,0x87,0x54,0x05,0xd4,0x37,0x25,0xc5,0xdc,0xe3,0x92,0xd8,0x05,0xe5,0x81,0x76,0xcf,0x66,0xd6,0x30,0x54,0x38,0x9d,0x3e,0x33,0x64,0x61,0x32,0x73,0x51,0xf3,0xda,0x64,0xa5,0x21,0x43,0xba,0x02,0x66,0x19,0x51,0x6c,0xda,0x02,0xfa }, { 0xc7,0x9a,0x67,0xfd,0x14,0x48,0xb5,0x9f,0xf7,0xbf,0x05,0x10,0x56,0x4b,0xe9,0xb2,0xe0,0xaf,0x32,0x53,0x17,0xe4,0x5b,0x9c,0xdb,0xe0,0x8f,0x51,0xc9,0x1f,0x04,0x64,0xc3,0xd5,0xb5,0xe4,0x63,0x1f,0xc7,0xe2,0x27,0x33,0x72,0x09,0xf5,0xfa,0x44,0x96,0x0e,0x7b,0x84,0x61,0x6a,0xf4,0xa3,0xaf,0xab,0xfc,0x26,0x72,0xd6,0x62,0x01,0xa9 }, { 0xa1,0x18,0xb0,0xf2,0x4b,0xc4,0x5d,0x9c,0x9b,0x31,0x7f,0xe2,0x48,0xaf,0x58,0x1f,0xfd,0x42,0xd8,0x84,0x78,0x18,0x2a,0x90,0xac,0xa7,0xf0,0xb2,0xac,0x51,0xd8,0xa6,0x69,0x8b,0x53,0xfd,0x0f,0x7e,0x17,0x98,0xdf,0x7b,0x25,0xae,0x09,0x46,0x4d,0x6a,0x81,0x92,0x24,0x08,0xe3,0x76,0x96,0x7d,0x86,0x21,0xb5,0x5d,0x5c,0x87,0xb0,0x30 }, { 0xaf,0xb1,0xa8,0x80,0xf5,0xdb,0x11,0xb1,0xb0,0xc1,0x94,0xaf,0x14,0xe7,0x86,0xe3,0xe3,0xd3,0x31,0xd4,0xad,0x86,0x96,0x59,0xcb,0xbc,0x16,0xf4,0x0e,0xa2,0x51,0x24,0xa5,0xbb,0x65,0xcc,0x5e,0x72,0x0f,0x79,0x44,0xfb,0x40,0xcd,0x39,0xf8,0x88,0xfe,0x65,0x93,0xe2,0x8e,0xd9,0x4a,0x15,0xfc,0xc4,0xf0,0x0d,0xad,0xda,0x30,0xf5,0x21 }, { 0xfc,0xc8,0xca,0x2e,0x4e,0x50,0x2d,0x2e,0xde,0x9e,0xc2,0x95,0x66,0xd7,0x15,0xea,0x7b,0xd2,0x4b,0xe7,0x88,0x82,0x86,0x75,0xfa,0x42,0xe8,0x72,0x9c,0xf5,0x25,0x0e,0x30,0xb5,0x7b,0xcc,0xee,0xf8,0xbd,0x04,0xf6,0xb9,0x88,0x0a,0x8b,0x34,0xda,0x5c,0x90,0x46,0xbc,0x05,0xc0,0x3b,0x21,0x20,0x60,0x2e,0x0f,0xbf,0x73,0x0f,0xd4,0xa2 }, { 0xdc,0x84,0x7a,0x3e,0x4c,0x8d,0xd4,0xfd,0x5e,0xd9,0x9a,0xb2,0xf6,0x66,0x73,0x99,0xe9,0x65,0x18,0x75,0xbc,0x62,0x29,0xed,0x59,0x8d,0x2f,0x5a,0x28,0x58,0xad,0xf7,0xcf,0x3b,0xb2,0x62,0x12,0x51,0xee,0x08,0x50,0xa4,0x2c,0x58,0xff,0x7c,0x35,0x33,0x62,0xac,0x59,0xa2,0x73,0xe5,0x60,0xcf,0x48,0xc2,0x91,0x55,0x37,0xf0,0x50,0x79 }, { 0x24,0xbb,0xe0,0x5b,0xfa,0x35,0xdd,0xc0,0xee,0x9a,0x4b,0x43,0xcf,0x2e,0x4e,0x3a,0xf3,0x49,0xf6,0x75,0xd2,0xaf,0x3c,0x3d,0x23,0x18,0xaa,0x04,0x89,0xa9,0x5e,0x03,0xd4,0x94,0x05,0xee,0x09,0x0a,0x22,0xcf,0x17,0x18,0x2d,0x4d,0xd2,0x76,0x0f,0xaa,0xd4,0x0a,0xa5,0x2e,0x37,0x5a,0xa1,0x49,0x87,0xdf,0x45,0xed,0x8d,0x79,0x3c,0x4d }, { 0xbf,0xb4,0xad,0x57,0x33,0x8f,0xa3,0xb4,0xb1,0xbb,0xde,0xfb,0xe9,0x2d,0xf2,0xd3,0xd1,0x0b,0x14,0x0a,0x45,0x0b,0xc4,0x26,0xcb,0x16,0x35,0x5d,0x54,0x4b,0x99,0xf6,0xc6,0xee,0x62,0xee,0x72,0xfb,0x46,0x83,0x7f,0xde,0x1e,0x86,0x1a,0x10,0x43,0x1c,0x73,0x5d,0xe5,0xd8,0xa7,0x86,0x68,0xb4,0x6a,0x25,0x2f,0x19,0xe0,0xf6,0x1f,0xbc }, { 0x6d,0x28,0xb6,0xbf,0xfd,0x4d,0xaf,0x31,0x3f,0x85,0xea,0xad,0x8e,0x4d,0x71,0xb9,0x1c,0xa6,0x31,0x16,0x1f,0x99,0x21,0x8f,0x98,0x4a,0x23,0x17,0x6f,0x92,0x2d,0xbd,0xaf,0x39,0xd9,0x05,0x14,0x1d,0xd2,0xfa,0x40,0xfb,0xe1,0xa6,0x1c,0xcb,0x4a,0x1c,0x4c,0x24,0xe9,0xf0,0xb8,0x4d,0xa2,0x99,0x44,0xab,0xff,0x02,0xa0,0xef,0x3c,0xff }, { 0x1f,0x6e,0xe8,0x0f,0x63,0xee,0xe5,0x16,0xad,0xac,0x99,0x5a,0xdf,0x1a,0x39,0xa3,0x4b,0xe4,0x02,0x96,0xda,0x08,0x84,0x65,0x5a,0x5f,0x03,0x04,0xd1,0x32,0x1a,0x1c,0xe2,0x54,0xb5,0x51,0xb8,0x6d,0xe4,0xc2,0x45,0xd7,0x89,0xd2,0x07,0x5d,0x74,0x86,0x5f,0x7d,0x6f,0x01,0xac,0x78,0x6a,0xb8,0x2d,0x28,0x50,0x3a,0x7f,0xf4,0x72,0x25 }, { 0xd1,0x31,0xe6,0x61,0xdd,0x93,0xd8,0x15,0xe6,0x13,0x94,0x7f,0x2d,0x30,0x2f,0x2f,0x50,0xea,0x58,0x5c,0xaf,0xb7,0x52,0x50,0x97,0x89,0x40,0x4f,0xc4,0xfb,0x24,0x0a,0x34,0x34,0x2c,0x84,0x61,0xa9,0x5d,0xa2,0xe7,0x9b,0x4c,0x37,0xf4,0x8f,0x4f,0xd4,0x74,0x23,0xd4,0xeb,0xcd,0xea,0xcd,0xf4,0x22,0xf6,0x0e,0x14,0x02,0x50,0x1a,0x57 }, { 0x32,0x69,0xea,0xd1,0x4c,0x94,0xc6,0x68,0xc8,0xcd,0x2e,0x27,0x2b,0x24,0xbc,0x76,0xe4,0xd8,0x2b,0x88,0x0e,0x7b,0x7d,0xa3,0xc5,0x2d,0x33,0xc0,0x74,0x8f,0x61,0x67,0xfe,0xe7,0x69,0x1b,0x00,0x26,0x4a,0x6e,0x53,0x80,0x2d,0xa3,0x8c,0x1b,0x88,0xc8,0xa3,0xf9,0x40,0x61,0x9f,0x78,0xba,0x7c,0xa5,0x98,0x41,0x81,0x89,0x61,0x87,0x54 }, { 0xaf,0xff,0x5a,0xf9,0x2c,0x80,0x76,0x15,0x71,0x2e,0x02,0x81,0x0b,0xe2,0x46,0xa2,0xd0,0x43,0x45,0x84,0x47,0x7f,0xe2,0xe8,0x67,0xe5,0xfd,0xd7,0xb8,0x08,0x7d,0xde,0x65,0x9f,0x6e,0xa2,0x2c,0xd0,0x60,0xc2,0x09,0x9a,0x74,0x7e,0xe1,0x0a,0x2a,0x22,0xaa,0xcf,0x17,0x52,0x92,0xdd,0xab,0xe7,0x17,0x83,0x46,0xac,0xd4,0x4e,0xb3,0xa2 }, { 0xc7,0xf3,0x13,0x1f,0x91,0x55,0x8b,0xd6,0x08,0xb5,0x87,0xd1,0x89,0x59,0xde,0x04,0xfe,0x75,0xdf,0x51,0xab,0x8d,0x2d,0xf0,0x68,0xc5,0xc0,0x81,0x31,0x4c,0x77,0xf3,0x97,0x34,0xf5,0xd8,0xaa,0x3e,0x2d,0xb7,0xb3,0x5c,0x45,0x93,0x19,0x5a,0x4d,0x32,0x0e,0x72,0xc1,0xb6,0x1f,0xb7,0xc8,0xed,0x48,0x52,0xbd,0x48,0x32,0x93,0x74,0x5a }, { 0x84,0x37,0xa7,0xca,0xb8,0xf3,0xe6,0x7c,0x05,0xb8,0x00,0x0a,0x73,0x85,0x3a,0x82,0xe8,0x9d,0xfd,0xb3,0x68,0xbc,0x66,0x69,0x99,0xfb,0x69,0xa1,0x00,0x37,0x1f,0x53,0x96,0x8f,0xd7,0x58,0x82,0x81,0x2a,0x40,0x73,0x54,0x83,0xf4,0x38,0x19,0xbb,0x8e,0x10,0xe1,0x24,0xfe,0xdb,0xfb,0xe2,0x59,0x24,0x88,0x72,0xd7,0x87,0x9c,0xbb,0xab }, { 0xa2,0xf3,0x27,0xc3,0x02,0x4e,0x58,0xb9,0xb4,0xa6,0xf8,0x03,0x07,0x6a,0x2c,0x1c,0xef,0x2b,0x74,0x00,0xbd,0x9d,0x37,0x42,0x96,0xb0,0x3e,0x0b,0x8c,0xf9,0xf4,0xe5,0x8e,0x72,0xda,0x83,0x61,0xa1,0x97,0xd6,0x32,0x7a,0xa3,0x32,0x75,0x67,0x9a,0x04,0x11,0xfc,0xa6,0xef,0x21,0x42,0x06,0x65,0x04,0x42,0x5a,0xe6,0xe3,0x49,0x05,0xbc }, { 0x61,0x84,0x66,0xbc,0xb7,0x39,0x58,0x5c,0x20,0xc4,0x4b,0x7f,0xc9,0x62,0xd8,0x67,0x1d,0x94,0x86,0x70,0x54,0x85,0x93,0x61,0xa1,0x82,0x93,0xff,0xe4,0xa7,0x20,0xe1,0x34,0x58,0x7f,0x80,0x98,0x8d,0xb9,0xbd,0x79,0x8c,0xb5,0xda,0x17,0x8e,0xc5,0x12,0xdb,0x9a,0xec,0x2f,0xe3,0x5f,0x85,0xe0,0x67,0x8b,0x4e,0x91,0xf7,0xc8,0x73,0xb4 }, { 0x7f,0xe3,0x6b,0x40,0xaf,0x22,0xaf,0x89,0x21,0x65,0x6b,0x32,0x26,0x2c,0x71,0xda,0x1a,0xb9,0x19,0x36,0x5c,0x65,0xdf,0xb6,0x3a,0x5a,0x9e,0x22,0x18,0x5a,0x59,0x43,0xe6,0x97,0xd4,0x58,0x25,0xb6,0x36,0x24,0x9f,0x09,0xf4,0x04,0x07,0xdc,0xa6,0xf1,0x74,0xb3,0xd5,0x86,0x7b,0x8a,0xf2,0x12,0xd5,0x0d,0x15,0x2c,0x69,0x9c,0xa1,0x01 }, { 0x5a,0x92,0x07,0xa6,0xfe,0x12,0x40,0x3e,0xa7,0xf4,0x72,0x22,0x0d,0xe9,0x0c,0xf6,0x31,0x88,0x0e,0xe5,0x38,0x4d,0xa9,0x00,0x1a,0xa9,0x47,0xea,0x5e,0x9f,0x3d,0xa7,0x4a,0x35,0x2d,0x1b,0x24,0xf0,0x6e,0x4b,0x01,0x46,0x78,0x9a,0xaf,0x4f,0xf2,0xcb,0x46,0xfb,0xdb,0x53,0x0e,0x82,0xe9,0xad,0xc9,0x2f,0xe3,0x31,0x26,0x74,0x8f,0x8e }, { 0x61,0x77,0x94,0x71,0x47,0x86,0x43,0x43,0x65,0x54,0xca,0xa3,0x43,0xad,0xfa,0x5a,0xa1,0xdd,0x10,0xb8,0xa6,0x0e,0x47,0xc0,0x33,0x6d,0xd1,0xe7,0xc6,0x82,0x78,0xc2,0x4e,0xce,0xe7,0xd5,0xa5,0x68,0x79,0x1f,0x03,0xbf,0xf0,0x05,0xc8,0x98,0x64,0x73,0x32,0x79,0x69,0x99,0x23,0x17,0xa1,0xa6,0x9d,0x03,0xec,0xb2,0xef,0xab,0xd2,0xcf }, { 0xf8,0xf9,0x97,0x56,0x8a,0x6f,0xd0,0x32,0x5c,0x9e,0x9f,0x9c,0x3f,0xb3,0xaf,0x23,0x0f,0xf9,0x29,0x33,0x4f,0x6d,0x78,0x2b,0x7a,0x70,0x2a,0xce,0xe7,0xd7,0x46,0xd4,0xee,0x06,0x8f,0x3d,0x8a,0x3c,0x81,0xf4,0xf7,0x56,0x84,0xa9,0xa2,0x14,0x37,0x98,0x8d,0x90,0x56,0xe8,0x68,0x90,0xb0,0xf6,0x40,0xee,0x0b,0x9d,0x7d,0x5f,0x3a,0x84 }, { 0x52,0x1c,0xf0,0xcd,0x89,0x72,0x9d,0x1a,0x19,0x3d,0x87,0x58,0xab,0xf9,0x60,0x19,0xf7,0x22,0x1a,0xba,0x01,0x01,0xb5,0x6b,0xae,0xab,0x93,0x96,0x5a,0x7d,0x93,0x44,0xd6,0x02,0x20,0xda,0xcb,0xf9,0xe9,0xba,0xc5,0x83,0xfe,0x0e,0xd3,0x86,0x37,0x1b,0x7a,0x13,0x41,0xca,0x5a,0x95,0xfb,0xa1,0x45,0x29,0xf2,0x81,0x96,0xb7,0x06,0x4a }, { 0x20,0x42,0xa2,0x0c,0x02,0x5b,0x72,0x52,0xf1,0x45,0xfa,0x7e,0x4e,0x54,0x12,0xc6,0xe2,0x59,0x88,0x55,0x3e,0x94,0x26,0xa4,0x11,0x9c,0x53,0xb7,0x31,0xd9,0x80,0x9d,0x98,0xe4,0x96,0xd5,0xdc,0x4e,0xef,0xa1,0x4c,0x6a,0x0f,0x9b,0xca,0xd6,0xfb,0x45,0x94,0xe7,0xa7,0x5e,0xbb,0xc1,0x7a,0x8a,0x26,0xb2,0x3c,0x11,0x8c,0x70,0x07,0x1a }, { 0x17,0x6c,0x11,0xc1,0x32,0x8e,0xd0,0x7b,0x56,0x2f,0xc9,0xef,0xce,0x42,0x70,0x0b,0xbd,0x4b,0xbd,0xec,0x15,0x43,0xd1,0xa7,0x0b,0x31,0x84,0xa3,0x2b,0x3f,0xce,0x8c,0xd1,0x7f,0x8d,0xae,0x93,0x4b,0x8a,0x35,0x89,0x59,0x21,0x80,0xb7,0xde,0x3b,0x7e,0x5c,0x5d,0x84,0x2a,0x5b,0xb5,0x1a,0xb1,0x6e,0xa6,0x84,0x36,0xa3,0xc9,0xf1,0x9f }, { 0xea,0x10,0x5c,0x1c,0x60,0xfb,0x6a,0x92,0x72,0xa1,0xad,0x73,0x3f,0xde,0xc3,0xea,0xbb,0xe2,0x6f,0x6e,0xb3,0xf9,0x8d,0x7f,0x6b,0x1e,0x59,0xf4,0xd9,0xe8,0x07,0xaa,0x47,0x27,0xeb,0x55,0x8c,0x01,0x59,0xf1,0xd2,0xa1,0xa9,0x7d,0x38,0xb3,0x13,0x64,0x5e,0x58,0x8a,0xd9,0xe8,0xbd,0xc0,0x71,0x91,0x61,0x3d,0xc4,0x5f,0xb2,0xf9,0x09 }, { 0x69,0x65,0xb6,0x38,0x4d,0x70,0x61,0xe6,0x85,0x37,0x1f,0xe7,0xff,0x26,0x51,0x9e,0x76,0xbb,0xa9,0xdd,0xa2,0xae,0xa7,0x81,0x7a,0xff,0x4f,0xe1,0xfd,0xde,0x34,0x45,0xd1,0xbc,0xda,0xe3,0x9c,0x48,0x25,0x11,0x32,0x5e,0x49,0x66,0x38,0x73,0x2d,0xbe,0xf4,0x7c,0xe6,0x05,0x1a,0x5f,0x99,0xd9,0x7c,0xc4,0x38,0x9e,0x18,0x85,0x51,0x13 }, { 0x3a,0x7b,0xb8,0xef,0x36,0x46,0x55,0xce,0xd4,0xb5,0xd6,0x96,0xcc,0xfc,0xcd,0x31,0xf4,0x97,0xdb,0x79,0x58,0x44,0x36,0x7c,0x93,0x41,0x9c,0x05,0xf7,0xbe,0x0b,0x0b,0x1e,0x5c,0xbe,0xa9,0x50,0x19,0x92,0xaa,0xde,0x17,0x62,0xeb,0xaf,0x31,0x36,0x68,0xd6,0xcf,0xc7,0x9f,0x05,0xa9,0xa3,0x54,0xd4,0x99,0xc2,0xf4,0x0d,0x32,0xcc,0xa1 }, { 0x9b,0xa1,0xe1,0x2f,0x97,0x4a,0xc9,0xf3,0x9b,0xa8,0x34,0xfc,0xb1,0x84,0x09,0x71,0x48,0x52,0x63,0x36,0x67,0x91,0x89,0xf1,0x03,0x75,0xc0,0xc6,0xed,0xee,0x30,0xee,0x03,0xd2,0xf1,0x32,0x31,0x1b,0xea,0x6c,0x27,0x7c,0x3e,0xea,0x86,0xa8,0x77,0xbe,0x62,0x06,0x7e,0xbb,0x8c,0x7d,0x4f,0x38,0x8a,0x96,0xb8,0x3b,0x67,0xb4,0x3c,0x5e }, { 0x3c,0xec,0x40,0x06,0xa3,0x2e,0xa7,0x97,0x51,0xa5,0x99,0x66,0xe3,0x39,0x11,0x0d,0xd9,0x26,0x74,0x44,0x49,0xe6,0x40,0x81,0x53,0xf3,0x08,0xa5,0x81,0xaa,0xc9,0xc5,0xdb,0xba,0xda,0xae,0x2c,0xcb,0xe8,0x3a,0xd7,0x40,0xa5,0xf2,0xe8,0x09,0x49,0x2e,0xb4,0xa6,0xc3,0x1c,0x0c,0x7c,0x09,0x88,0x34,0xc0,0x64,0x1a,0xc2,0xcb,0x1b,0xf5 }, { 0xc9,0x0e,0xa1,0xfb,0xe9,0x02,0x00,0x55,0x48,0x5b,0x54,0x4d,0x95,0x67,0xe8,0x63,0x5a,0x16,0x58,0xf6,0xd1,0x7c,0x5b,0x10,0x8a,0xfb,0xc6,0x7f,0x51,0xc5,0x71,0x25,0x05,0xac,0xa6,0x6c,0x71,0x0e,0xde,0x6b,0x19,0x66,0x7a,0xf6,0x36,0xe6,0x60,0xb1,0xb6,0xa3,0xd0,0x7d,0x6d,0xe1,0x9a,0x69,0xc6,0x69,0xa5,0x04,0xde,0xfb,0x8d,0x94 }, { 0x78,0xa3,0xe8,0x37,0xad,0x24,0xb3,0x1c,0x8b,0xa7,0x86,0x8e,0x32,0xe2,0x7f,0x97,0x97,0x0e,0xe2,0x5b,0x00,0xa2,0xbc,0x08,0x01,0x18,0x36,0x7b,0x33,0xa1,0x76,0xa8,0xbf,0x9e,0x14,0x8c,0xef,0x02,0xef,0x56,0xf2,0x5d,0xe8,0x85,0x5b,0x16,0xeb,0x70,0x46,0x6d,0xf0,0x2a,0x68,0x4b,0xd9,0x53,0x94,0x65,0xe4,0x7f,0xfa,0x64,0xe3,0xf6 }, { 0x0a,0x88,0xb8,0xf7,0x7c,0x89,0x62,0x30,0x3d,0x3a,0x1b,0xb4,0xa4,0x8c,0x10,0x5b,0x9c,0xf2,0x50,0x89,0xf8,0x22,0xdf,0x8f,0xc1,0xbf,0x1f,0x2d,0xab,0x3c,0xd7,0xfe,0x15,0xb6,0x3b,0x69,0x05,0x52,0x5a,0xc2,0x1d,0x4d,0x29,0xd2,0x46,0xca,0xa9,0x90,0x0c,0x49,0x1c,0x09,0x94,0xd7,0x15,0x4c,0x6a,0x3b,0xd2,0x34,0xf1,0x66,0x1f,0xd1 }, { 0x27,0xf1,0x0c,0xe0,0x28,0xec,0xf6,0x0a,0xe0,0xde,0xa9,0xda,0xb6,0x42,0xbc,0xe8,0x8b,0x30,0xc1,0x75,0x4d,0xb7,0xb7,0xa5,0xa6,0x8b,0x73,0xea,0x8f,0x54,0xbd,0x2b,0xd8,0x7f,0x1c,0x61,0x3f,0x36,0x76,0x5c,0xa1,0x2a,0x9a,0x09,0x75,0x2d,0x80,0x29,0x85,0x74,0x3d,0x3d,0x62,0x89,0xbb,0xeb,0xa3,0xf0,0xe5,0x5e,0xa1,0x1c,0xc8,0xb6 }, { 0xf6,0xd0,0x35,0xa0,0x77,0xe7,0x82,0x60,0xa5,0xab,0xd3,0x5f,0x09,0x4f,0xe5,0x1e,0x9d,0xe8,0x5a,0x09,0xc2,0xaa,0x5b,0xe7,0x00,0x03,0x72,0x30,0x5c,0x7f,0x3e,0xc0,0x7e,0x27,0x86,0xb8,0x89,0xf1,0x7f,0x8d,0xda,0x3c,0x35,0x3b,0xf7,0xc8,0x8d,0x77,0x15,0x60,0x6b,0x2c,0xe1,0xfa,0x58,0xc4,0xb2,0x45,0x74,0xc8,0x4e,0x14,0xa4,0xd6 }, { 0x0f,0xbc,0x34,0x1c,0x8c,0x66,0x9d,0x76,0x32,0xca,0x9f,0x0d,0x41,0xbc,0x43,0xdc,0x1e,0xfe,0x47,0xb2,0x73,0xb9,0x57,0x75,0x25,0x8f,0xca,0x6c,0x4d,0x9a,0xef,0xbd,0xbd,0x80,0x22,0x63,0x2f,0x36,0x0e,0x3f,0xe4,0x01,0x4b,0x1d,0x49,0x57,0xd3,0xd3,0x95,0x0b,0x06,0x9e,0x20,0x0a,0x9f,0xf1,0xed,0x3b,0x6e,0xa9,0xd3,0xe7,0x1c,0xa0 }, { 0x92,0x6f,0xb2,0x74,0x4f,0x10,0x72,0xfa,0x99,0xc6,0x54,0xf8,0xde,0x51,0xf5,0xce,0x1d,0x9f,0x1d,0xda,0x80,0x89,0xb3,0x6f,0xf3,0xb0,0x65,0x02,0xdc,0x62,0xb0,0x4c,0x57,0xe8,0x91,0xf3,0xa9,0xff,0x07,0x36,0xcd,0xfd,0xfb,0xb2,0xc2,0x9d,0xa1,0xfe,0xe6,0xb2,0x5d,0x68,0x78,0x94,0x63,0x71,0x53,0xd8,0x85,0x9b,0xa5,0x0a,0x17,0x1e }, { 0x82,0x90,0x19,0x31,0x9d,0x8f,0x77,0x6a,0x2d,0xcb,0x6c,0x35,0x26,0x20,0x54,0x6c,0x54,0xdb,0xee,0xfa,0x7c,0x1e,0x27,0xf7,0xf3,0xa6,0xdb,0x8a,0x73,0xe4,0x4b,0x54,0xe6,0xa2,0x6e,0x71,0x3e,0xa8,0xfa,0x1d,0x65,0x88,0x8d,0x6e,0xac,0x1d,0xd9,0xa0,0x9f,0x47,0xa0,0xa1,0x01,0x13,0x54,0x84,0x68,0x03,0xf5,0xe4,0xfe,0x5f,0xe6,0xac }, { 0x99,0xec,0xf1,0x2f,0xca,0x4e,0x79,0x1a,0x7b,0xf5,0x1a,0xb8,0xb6,0x86,0x97,0x35,0x8b,0x69,0xbc,0xbe,0x82,0xba,0xfc,0x1a,0xcc,0x30,0x7f,0x3e,0xea,0x25,0x49,0x7b,0x8b,0x67,0xdc,0xee,0x7f,0xb6,0x4f,0x2f,0x93,0xa9,0x1c,0xfd,0x68,0xe0,0xba,0xf4,0xe7,0x18,0x89,0xf4,0xbd,0x17,0xde,0x39,0x23,0x34,0x97,0xc7,0xaf,0x65,0x80,0x66 }, { 0xc4,0x8d,0xbf,0xa1,0x22,0x99,0xcf,0x2a,0x44,0x4c,0xd5,0x7d,0xb5,0x17,0xac,0x92,0xb4,0x1c,0xa5,0x18,0xe1,0x98,0xa2,0x81,0xa5,0xe7,0x43,0xce,0xea,0x39,0x4a,0x20,0xbc,0x83,0xcb,0xa0,0x0e,0x13,0x80,0xba,0x64,0xff,0x2e,0x41,0x1b,0xdb,0xd6,0xcd,0x94,0x40,0xb1,0x25,0x99,0x1b,0xb5,0xe2,0x4a,0x05,0x80,0xdb,0xea,0x77,0xa7,0x5b }, { 0x79,0xab,0xc3,0x16,0x14,0x95,0xf0,0x5a,0x53,0x03,0xb0,0xa3,0x93,0x90,0x7a,0x04,0x23,0xe8,0x04,0x76,0x42,0x53,0xb1,0x82,0x3b,0x27,0xc7,0xcd,0xf2,0xd6,0xca,0x5c,0x80,0x0e,0x80,0x06,0xf6,0x26,0xf3,0x4b,0x2e,0x33,0x3a,0x9a,0x99,0xe0,0x69,0xfb,0xd5,0x8c,0xf4,0x1c,0x2d,0xc6,0x2b,0x1e,0x59,0x38,0xbd,0x8d,0x18,0xdd,0x5c,0x5a }, { 0x98,0x7f,0x25,0x6d,0x58,0xcf,0xf9,0x37,0x3b,0xe7,0x19,0x69,0xfc,0x3a,0x93,0x01,0xe8,0xf9,0x25,0x7a,0xe5,0x7f,0xdc,0x00,0xcd,0x01,0x3f,0x88,0xb0,0x49,0xe7,0xcd,0x8e,0x92,0x69,0x56,0x94,0xec,0x50,0x5c,0xe8,0x60,0xeb,0xd6,0x00,0x07,0xe3,0x9e,0x47,0xb4,0x60,0x52,0x07,0xaa,0xff,0xdb,0xb7,0x25,0x4b,0xbc,0x6e,0xfa,0x35,0xd6 }, { 0x8d,0xee,0xaf,0x8b,0x04,0x28,0xbe,0x10,0x4a,0xf6,0xe1,0x3a,0x44,0xb0,0x47,0xa6,0xb9,0x61,0x05,0xae,0x6f,0x07,0x75,0x4b,0x16,0xa1,0xd8,0x59,0x01,0x1c,0x86,0xad,0x4a,0xbf,0x01,0xe5,0x4a,0x47,0x22,0xaa,0x38,0x83,0x1e,0x5f,0xe1,0x27,0x5a,0x5d,0xb0,0xb8,0x86,0xa2,0x2c,0x0e,0x10,0xe4,0x28,0xb5,0x23,0x89,0x38,0x37,0xe4,0x7d }, { 0x66,0x08,0xc2,0x43,0x77,0x3c,0x85,0xdc,0xbc,0x66,0x6b,0x9b,0xa9,0x73,0x23,0xb2,0x34,0xa8,0xbf,0xe7,0x0a,0x2e,0x33,0x38,0xc6,0xe3,0x19,0x7a,0xa3,0xfe,0x67,0xb2,0xa1,0xa9,0x16,0xbe,0xc5,0x21,0xc1,0x68,0x84,0x6f,0x64,0x0d,0xa7,0x46,0xe0,0x3f,0xc2,0x2b,0x15,0x9f,0x40,0xc5,0x43,0x08,0x19,0x23,0xfe,0x5c,0xe5,0xb4,0x7a,0x28 }, { 0xb2,0xff,0xe0,0x9f,0x03,0x68,0xe4,0x29,0x7a,0xc7,0xa4,0xf8,0x1b,0x59,0xeb,0xd0,0x85,0x0a,0x1d,0x22,0x5b,0xbd,0x0f,0xae,0x38,0x36,0x7c,0xe6,0x28,0xec,0xd3,0x32,0xa7,0xa4,0x5c,0x29,0x51,0x43,0x8a,0xe5,0x3f,0x7a,0xd1,0x2b,0x51,0x26,0xc2,0x55,0xc4,0xa5,0x5f,0x46,0x4a,0x8b,0xa7,0xd6,0x17,0x00,0xc3,0x45,0x94,0x9c,0x31,0x52 }, { 0x70,0xc1,0xfd,0x69,0x18,0x00,0x0a,0xa9,0x99,0x79,0xbc,0x85,0x6e,0x97,0x6e,0x53,0x58,0xbc,0x6e,0x01,0x8b,0xe0,0x62,0x86,0x5f,0xc1,0x20,0x9b,0x03,0x78,0xbc,0x7f,0xf7,0xda,0xab,0xc2,0x0d,0x5b,0xc5,0x22,0xaa,0xed,0xf6,0xf1,0x22,0x42,0x85,0x43,0xf5,0xa9,0xf3,0x2f,0x61,0xe1,0xcb,0x0d,0x6d,0x68,0x17,0x1c,0xa6,0xae,0xb8,0x56 }, { 0x94,0x4a,0x51,0x21,0x9e,0x65,0xd6,0x2a,0x9b,0x5d,0xe3,0x2e,0x36,0xf8,0x1c,0xf7,0x7e,0xd9,0x63,0x30,0xb0,0x0c,0xbe,0x04,0x6e,0xf9,0x61,0x66,0xaa,0x28,0x96,0x7e,0x36,0x87,0xf6,0xb2,0x31,0xe0,0x49,0x6a,0x9e,0xc7,0xe1,0xb1,0x56,0x8e,0xd8,0x51,0x6f,0x8a,0xe3,0x88,0x78,0xc1,0xfa,0x91,0x76,0x4e,0x54,0x03,0x2c,0xe6,0x1f,0xd3 }, { 0x30,0xac,0x8e,0x52,0x25,0x0d,0x76,0xb2,0xc0,0x73,0x3f,0xde,0xac,0xec,0x50,0xaa,0xfe,0x32,0xc9,0x00,0xbf,0xb0,0x19,0x2c,0xbc,0x63,0xb9,0xf4,0xe7,0x7e,0x03,0xc2,0xd6,0x94,0xb5,0x30,0xc0,0x99,0x78,0x5e,0x69,0xaa,0x65,0x84,0x00,0x2e,0x77,0xa0,0x67,0x04,0xba,0x32,0xcd,0x87,0x86,0xdc,0xa1,0x19,0x14,0xfe,0xd1,0xdc,0x3f,0x83 }, { 0x87,0x62,0x9a,0x24,0x38,0xa6,0xde,0xfe,0x6a,0xf0,0xf2,0x5b,0x83,0x60,0xa5,0x64,0xf2,0x0f,0x5c,0x62,0xb8,0x46,0xe2,0xe2,0x48,0x2d,0x00,0x1a,0x95,0x1c,0x3e,0x13,0x36,0x44,0x36,0xa0,0xff,0x4a,0xb3,0xce,0x2b,0xfa,0xdf,0xd3,0x97,0x84,0xdf,0xaf,0x44,0x5d,0x31,0x09,0xac,0x5c,0x3b,0xd5,0xbe,0xe6,0x9d,0xf7,0x7f,0x71,0xfd,0x5c }, { 0x5b,0xb9,0x95,0x89,0x23,0x0a,0x0d,0xf5,0xef,0x5a,0x97,0xae,0x73,0x39,0x62,0x12,0x36,0xbb,0xa6,0xc0,0x5e,0xcd,0xb6,0xaf,0x2d,0x86,0xa6,0x3c,0x3e,0x68,0x91,0x86,0x18,0x9e,0x83,0xe9,0x77,0xed,0x31,0x59,0x57,0x24,0xd4,0x61,0xa3,0x3c,0x41,0x3e,0x92,0x64,0x3e,0xd0,0x5b,0xc1,0xdc,0xc4,0xed,0xfb,0x31,0x0d,0x1b,0xe3,0xa0,0x18 }, { 0x08,0x56,0xdf,0x35,0xfe,0x81,0xa0,0x22,0xbb,0xb7,0xa0,0x2f,0xe7,0x0e,0xae,0x5b,0x0e,0x13,0x1e,0xed,0x2e,0x18,0xab,0xbb,0x64,0xa4,0xd2,0xdb,0xc5,0xba,0x28,0x32,0xca,0x24,0x8a,0x86,0x08,0x0f,0x41,0x9e,0xbf,0xc1,0x19,0xd7,0x97,0x2a,0xa4,0x10,0x66,0x35,0xc7,0xb8,0xd8,0x01,0x60,0xf0,0x6a,0x35,0xeb,0xd2,0xff,0xa6,0x48,0x5b }, { 0x1f,0x51,0x2c,0xe5,0x8e,0xa4,0x53,0x0a,0x98,0xca,0x64,0xad,0x0b,0x10,0x7d,0x50,0x95,0xb1,0xce,0x3e,0x93,0x4f,0x74,0x81,0xeb,0xa8,0xb0,0xea,0x56,0xa6,0x5b,0x42,0x72,0x70,0xaa,0xba,0x62,0x5b,0x1c,0xec,0xd7,0x07,0x53,0x78,0xd2,0x37,0xc0,0xa5,0x0a,0x2a,0x0a,0xaa,0xb1,0xcd,0xa9,0x33,0x59,0x7a,0x80,0x63,0x9b,0x3e,0x67,0x4f }, { 0xd8,0xde,0x76,0x52,0x27,0xb7,0x87,0x37,0x63,0xde,0x93,0xc3,0x4d,0x8b,0x56,0x1c,0xf7,0x3a,0x83,0x5f,0xbb,0x8e,0x9c,0x71,0xc2,0xeb,0xaf,0x80,0x17,0xe5,0x51,0x04,0x2f,0xd2,0x94,0x65,0xbe,0x13,0xf2,0xd1,0x5c,0x4c,0x62,0x8a,0xd1,0xdc,0xf9,0x24,0xc2,0xf7,0x3f,0xce,0x19,0x40,0xdb,0x1b,0x2a,0x02,0xef,0x80,0xe5,0x2e,0x08,0xcd }, { 0x3a,0x24,0x0d,0xfc,0x25,0x8e,0x68,0xa6,0xf6,0x28,0x37,0x5b,0x5c,0x09,0xd4,0x70,0xb8,0x83,0x34,0xa3,0x33,0x23,0x1c,0xfc,0x9e,0xe9,0xb5,0x70,0x65,0x9f,0x4c,0x4d,0xbc,0x8c,0xb0,0x17,0x7b,0xb5,0x8e,0x92,0xe6,0x75,0x31,0x9c,0x41,0x6e,0x46,0xf2,0xbb,0x04,0xf1,0x23,0xed,0x94,0xb1,0x69,0x39,0x4a,0x78,0xc7,0xec,0xd4,0x29,0xa7 }, { 0xd0,0x3e,0xb2,0x6a,0x9a,0x38,0xb7,0x9b,0x60,0x20,0xf7,0x17,0x56,0xa0,0xa3,0x20,0xe9,0x22,0x7b,0xab,0x94,0x67,0xb6,0x8f,0x06,0xeb,0x94,0x09,0xf7,0x22,0xa8,0x1b,0x50,0xc5,0xfc,0xb0,0x2c,0x21,0xa3,0xe7,0x6c,0xe0,0x57,0x04,0x52,0x62,0xd4,0x12,0x9d,0xff,0x1a,0x28,0x6d,0xf2,0x08,0xf5,0x95,0xe2,0x5f,0x86,0xd8,0xa8,0x57,0x67 }, { 0x84,0xd8,0xe3,0x03,0x1c,0x33,0xd4,0xf7,0x61,0x5a,0x2f,0x5c,0x21,0xfc,0xf4,0xa0,0x2b,0xb2,0x2a,0x0f,0x9f,0xb6,0xff,0xa9,0x6e,0x7a,0x86,0x4e,0xd9,0x3e,0x29,0xa3,0x0b,0xb6,0x4d,0xd6,0x8f,0xf3,0xfc,0x18,0x5f,0x08,0xa7,0xa8,0xd3,0xd7,0xae,0x89,0x23,0x01,0x8d,0x60,0x56,0x83,0xec,0xc8,0x0a,0x9b,0x7f,0xb6,0x30,0x7a,0xb5,0x48 }, { 0xfe,0x40,0x91,0x01,0x0e,0xb8,0xcd,0xa7,0x2d,0x3a,0xd9,0x4e,0x07,0xc7,0x97,0x6f,0xff,0x69,0x86,0xd6,0xf1,0x79,0x0d,0xd7,0xe8,0x34,0x11,0x0d,0x03,0xf6,0x1c,0x13,0x08,0x17,0x59,0xc1,0xda,0x40,0x40,0x32,0x39,0x48,0x6f,0xaf,0x09,0x3b,0x0b,0x79,0xf9,0x86,0xfb,0xdb,0x99,0xe1,0xd9,0x73,0xc3,0xd3,0xce,0xcd,0xbd,0xa0,0xb3,0xae }, { 0xe6,0x88,0x0b,0xb1,0x97,0xf3,0x43,0x0d,0xa4,0x7b,0xc4,0x45,0xfb,0xf8,0x8d,0x97,0xac,0x39,0x1f,0x11,0x85,0xce,0xc1,0x41,0x66,0x9a,0x43,0x8d,0x97,0x41,0x31,0xfb,0x9d,0x0e,0xf0,0x72,0x9e,0xc3,0x37,0x7c,0x85,0x4a,0xc1,0x96,0xe4,0x03,0x19,0xb8,0x4b,0xff,0x19,0x7d,0x9b,0x1e,0xa8,0xd8,0x1f,0x03,0x24,0xec,0xbb,0x56,0x98,0xb9 }, { 0xc9,0x0e,0x30,0x08,0x39,0xdd,0x58,0x95,0x1e,0x80,0x95,0x70,0x63,0x15,0x44,0x03,0xcb,0x4e,0x66,0x44,0xc7,0x74,0x36,0x48,0x13,0xd0,0x0c,0x24,0x8f,0xa8,0xee,0x41,0x62,0xf5,0x04,0x17,0x6d,0x19,0xe7,0x3c,0x9c,0x07,0x10,0xc6,0x53,0x84,0x03,0x62,0x50,0x45,0x53,0x47,0x17,0xac,0xcd,0x6e,0x47,0xa6,0x36,0x67,0xc3,0xd7,0xc1,0xae }, { 0x4f,0x02,0xfb,0x24,0x6f,0xa7,0xe0,0x6d,0xcd,0xbb,0x54,0x39,0xaf,0xe3,0x80,0xce,0x8c,0xf5,0x1d,0xf9,0x68,0x78,0xe4,0xc3,0x6d,0x08,0xe8,0x2f,0x8e,0xf1,0xa0,0x84,0xa6,0x58,0x7a,0x60,0x06,0x85,0x8b,0x86,0xa9,0x39,0xed,0x73,0x8a,0x1b,0x10,0xb9,0xfe,0xe0,0x4f,0xdd,0xa6,0x84,0xc6,0x50,0xe9,0x32,0x5a,0x40,0xea,0x57,0x47,0xdc }, { 0x54,0xcc,0xc9,0x41,0x50,0x26,0xd7,0x3f,0x20,0xa8,0x45,0xb7,0x2a,0x58,0xe5,0xb1,0x8b,0xd2,0x7f,0x19,0x85,0x42,0xa0,0xbe,0xee,0xa6,0xbc,0x92,0x07,0x1e,0x5c,0x83,0x1c,0x43,0x3f,0x45,0xb4,0x51,0x45,0x32,0x3a,0x8f,0x87,0x15,0xda,0xd2,0xbf,0x22,0x92,0x9e,0x0b,0xcc,0x5d,0x8e,0xe4,0x96,0xcf,0xd0,0x8e,0xf7,0x14,0x09,0x16,0xa1 }, { 0x40,0x62,0xb3,0xd9,0x2b,0x12,0x3e,0xe0,0x55,0x59,0x42,0x7a,0x03,0xb4,0x4f,0x6e,0x91,0xa0,0x82,0xd9,0x4b,0xef,0x90,0x8c,0x6a,0x75,0x75,0x45,0xe3,0x82,0xc4,0x8e,0xeb,0xae,0x71,0xd8,0x6c,0x46,0xdf,0x52,0x04,0x9e,0x37,0xc7,0x00,0x17,0xb3,0xac,0x03,0xcc,0x1d,0x6c,0x93,0x56,0xb9,0xd8,0x4e,0x65,0xcb,0x4a,0x49,0xaf,0xc5,0xf4 }, { 0x29,0xe3,0x4b,0x1b,0xed,0x8a,0xa8,0x14,0x9d,0x84,0x10,0x14,0xdc,0xfb,0xe8,0x33,0x83,0xfd,0x5b,0x1e,0x94,0x6f,0x64,0xb2,0x83,0x1b,0xb8,0x0c,0x01,0x28,0x7c,0x25,0xea,0x43,0x97,0xdf,0x95,0xee,0xb3,0xa3,0xc1,0x41,0x7c,0xdf,0xcc,0xd9,0x6b,0x25,0xcf,0x3a,0x19,0x8b,0x6e,0x15,0xa4,0x39,0x1d,0x23,0xad,0x1d,0x75,0xa7,0xe4,0x6e }, { 0x6b,0x0b,0x4d,0x81,0x74,0xea,0x23,0x39,0x5e,0x1b,0xbc,0xd0,0x64,0x7a,0xc7,0x81,0x27,0x66,0x58,0x75,0x9d,0x3c,0x74,0xad,0x73,0xfd,0x42,0x25,0xbc,0x0e,0xd1,0xb7,0xe7,0x1b,0x57,0x29,0xcb,0x21,0x17,0x78,0xc5,0x31,0xc9,0x27,0xb7,0x52,0xc4,0xf3,0x37,0x58,0x93,0x81,0x22,0xc2,0x22,0x4a,0x25,0x66,0x2b,0x8a,0xf7,0xbe,0xaa,0xf2 }, { 0xd2,0xa0,0x76,0x36,0x7c,0x5b,0xa1,0x9e,0xea,0x5b,0x5f,0x1d,0x3c,0x00,0x19,0x19,0x87,0x6f,0x31,0x53,0x3a,0xb6,0x24,0x09,0xf3,0xd5,0xbe,0x3a,0x53,0xa3,0xa3,0x83,0x79,0xaa,0x09,0xb8,0x93,0xb7,0xfc,0xc0,0x66,0x43,0xa0,0xf5,0xbb,0x9d,0xce,0x30,0x59,0x81,0xae,0xff,0x3f,0x59,0x8b,0xce,0x65,0xf2,0xab,0xb2,0x2e,0x7e,0x06,0x40 }, { 0x6e,0xcd,0xcc,0x78,0x3d,0xe6,0xa0,0x78,0x24,0xed,0xe6,0xc2,0xc0,0x52,0xaa,0x18,0x39,0x23,0x2e,0xad,0x5e,0x5d,0xd2,0xbc,0xce,0x23,0x60,0x73,0x63,0xa0,0x4b,0x5d,0x02,0xab,0x23,0xd7,0xdc,0x5a,0x1a,0xd6,0x52,0x2c,0x3f,0x19,0x00,0xd1,0x3d,0x1a,0x0c,0x1a,0xda,0xed,0x82,0x45,0x19,0xcb,0x92,0x22,0x8c,0xd9,0x19,0x3a,0x69,0x80 }, { 0xc5,0x6d,0xd6,0x86,0xb0,0xfd,0x84,0x6a,0x66,0xdc,0xeb,0x63,0x19,0x77,0xd5,0xba,0xd5,0x05,0x67,0x1a,0xe1,0xab,0xb3,0x4a,0x77,0x48,0x53,0x2d,0x4f,0xa4,0x35,0x29,0xf2,0xac,0xaa,0x85,0xf3,0xf1,0xb2,0x63,0x55,0x5d,0x2c,0x60,0xa7,0x6b,0x8c,0x11,0x61,0x9e,0x46,0x78,0x16,0xfb,0x7e,0xee,0x59,0xed,0xed,0xac,0xf9,0xa5,0x21,0xf6 }, { 0xd2,0x24,0x97,0xf9,0x7a,0x67,0x65,0x76,0xd5,0x95,0xc9,0xc0,0x53,0xfa,0x34,0x3f,0xf6,0xd3,0xd9,0xc9,0x0d,0xf3,0x5e,0x89,0xfc,0xed,0x35,0xd2,0xf7,0x54,0x64,0xe9,0x4e,0x78,0x1c,0x87,0x37,0x33,0x79,0xe9,0xa6,0x83,0x44,0xc9,0xbe,0xc1,0x7a,0xf4,0xd9,0x57,0x71,0xd5,0x3d,0x83,0x6e,0x5a,0x69,0xd8,0x34,0x51,0x0a,0xc8,0xe2,0x8d }, { 0xdf,0xe2,0x69,0x3e,0xe4,0x34,0x03,0x48,0x30,0xea,0x6e,0xaf,0xce,0xdb,0x0e,0xb4,0x80,0x60,0xb1,0xf2,0xbc,0xbc,0xb0,0xab,0xe9,0xae,0xfc,0xa5,0x24,0xd9,0xbe,0xad,0xbe,0xbf,0x7a,0x5c,0x83,0x1c,0xa5,0x2b,0xeb,0x02,0xfa,0xc5,0x0f,0x97,0xd9,0xf3,0xcc,0x9c,0xbd,0xc2,0x3a,0x01,0xeb,0x61,0x7a,0x77,0x65,0x8e,0x77,0x72,0x26,0x9c }, { 0xc5,0x44,0x0c,0x59,0x78,0x14,0xa4,0x7d,0x9f,0x6c,0xc7,0xd1,0x51,0x3d,0x7f,0x38,0xe4,0x0c,0xd0,0x2e,0x32,0x84,0x7f,0x01,0xc3,0x0f,0xb7,0x71,0x22,0xd3,0x29,0x36,0xd2,0x7e,0xe9,0xba,0x38,0x3e,0x1f,0xa7,0x2e,0xdc,0x1e,0x1d,0x23,0xec,0xf4,0xac,0xd8,0xa6,0xd2,0x86,0x31,0xe4,0x1e,0x5d,0x9a,0x42,0xfa,0x37,0x47,0xca,0xbf,0xd4 }, { 0xa0,0x86,0x91,0x0c,0xe9,0xbc,0x47,0xea,0x21,0x59,0x31,0x9f,0xcb,0x4a,0x72,0x76,0xdf,0xde,0x08,0x17,0x9d,0x9d,0x43,0x45,0xca,0x8c,0xd6,0x6d,0x9c,0x90,0xf0,0x6a,0x58,0x89,0x5f,0x52,0x96,0x17,0xc5,0x02,0x60,0x33,0x68,0xdd,0xbb,0x1c,0xcb,0x8b,0x8e,0x80,0xf2,0xaa,0x19,0x97,0xaa,0x8e,0x2f,0x01,0xbc,0x6e,0x49,0x81,0xfa,0x66 }, { 0xd0,0x7e,0x95,0x89,0x2d,0xaa,0x15,0xaf,0xff,0x3e,0x42,0xd5,0x2f,0x5b,0xab,0x12,0xf1,0x65,0x80,0x3d,0xfb,0xd4,0x92,0xc0,0xcb,0xe1,0xa1,0x8d,0x2c,0x2e,0x32,0xb9,0x77,0x4e,0x4d,0x65,0x06,0x72,0x45,0x28,0x73,0x1f,0x07,0x69,0xf8,0x93,0xef,0x4e,0x23,0xed,0x98,0xf1,0x52,0x28,0xe8,0x1e,0x5e,0x78,0xad,0x6a,0x2c,0x1a,0x4f,0x5c }, { 0x25,0xd9,0x85,0x93,0x01,0x9b,0xc0,0xc1,0x77,0xba,0x6c,0xcd,0xd2,0x97,0x66,0x3d,0xac,0xc4,0x31,0x4f,0xff,0x39,0x05,0xdf,0xad,0xff,0x55,0x57,0xef,0x7d,0xa8,0x9d,0x0c,0x1c,0x18,0xf8,0x01,0x5b,0xfc,0x1c,0xa6,0x38,0xd6,0xf5,0xd9,0xe1,0x6f,0x15,0x1a,0xc1,0x18,0xb3,0xb9,0xbc,0xcd,0x5d,0x57,0x22,0x4e,0xff,0x64,0x90,0x43,0x52 }, { 0x43,0x7f,0x6e,0x07,0xb8,0x6f,0xd8,0xfc,0x3a,0x06,0xae,0x02,0x95,0x82,0x9d,0x32,0x42,0x75,0xa1,0x49,0xe1,0x9d,0x95,0x7c,0x76,0x01,0xae,0xee,0xf7,0x9f,0x7b,0x91,0x5f,0xe8,0xd3,0x7c,0xa8,0x89,0xf1,0x3a,0xbf,0x38,0xb8,0x28,0x9b,0x15,0xd6,0x3c,0x58,0x9a,0x77,0x11,0x91,0x39,0x68,0x33,0x64,0xb6,0xac,0xe3,0x75,0x27,0x00,0x33 }, { 0x2e,0x59,0xa9,0x73,0xe1,0x1e,0xac,0x4e,0x49,0x36,0x2f,0x8a,0xe5,0x29,0xdc,0xcf,0x24,0xa0,0xcd,0x16,0x2f,0xc2,0x9c,0xb8,0x08,0x54,0x4a,0x48,0x6b,0x10,0x7a,0xb9,0xf7,0xc4,0x28,0xd3,0xcc,0x3a,0x58,0x37,0x99,0xf2,0x6f,0x88,0xff,0xc3,0xee,0xe3,0xb0,0xff,0x42,0xe7,0x73,0x60,0xd6,0x70,0x5b,0x3d,0x2d,0x1c,0xd8,0x8b,0x86,0x74 }, { 0xce,0xcd,0xff,0x7a,0x5c,0xab,0x84,0x4f,0x79,0xca,0x1e,0x2a,0x64,0x83,0xee,0x28,0xb8,0x0a,0x7c,0x8a,0x34,0x47,0xdb,0x8f,0xa9,0x69,0xec,0xfe,0xc5,0x1c,0xd9,0xc7,0x93,0x23,0xe5,0x4d,0x22,0x86,0x80,0x08,0x92,0xaf,0x68,0x81,0x9c,0x7d,0x0f,0x6b,0x0d,0x09,0xd0,0x6b,0x64,0x5e,0x5a,0x3f,0xeb,0x76,0xea,0xc7,0x29,0x38,0x96,0x32 }, { 0x05,0x77,0x9b,0x95,0xba,0x72,0x3e,0x55,0x9a,0x32,0x9f,0x7c,0x5e,0x0d,0xca,0x42,0xca,0x15,0xd2,0xf9,0x9b,0xa7,0xca,0xb5,0x9a,0x00,0x4c,0xe4,0xb9,0x33,0x68,0x94,0x19,0xc1,0xcc,0xac,0xc8,0xdd,0xb5,0x5d,0xf0,0x5d,0x5a,0x53,0x6e,0xc4,0x91,0x7e,0xe6,0x67,0x37,0x1a,0x8d,0x40,0x9b,0x14,0x1c,0xa5,0x55,0xb9,0xe5,0x8b,0x33,0x3d }, { 0x24,0x1c,0x56,0x7a,0x42,0x27,0xf1,0xc5,0x06,0xc7,0x9b,0x97,0xa6,0xba,0xdc,0xa6,0x1c,0x37,0x10,0x1c,0xb8,0x97,0x15,0x83,0xbf,0x9f,0x41,0x72,0xb0,0x66,0xfd,0x48,0x40,0xa6,0x2d,0x93,0xd4,0x30,0x2d,0x4b,0x93,0x63,0x81,0x7c,0x04,0x32,0x03,0xa4,0x8e,0xa8,0x71,0x38,0xae,0xa3,0x66,0x05,0x7f,0x7d,0x2c,0x67,0x92,0x85,0x7b,0x08 }, { 0xd4,0x36,0x54,0xca,0x19,0xf1,0x99,0xf6,0x88,0x06,0x4e,0xaf,0x5f,0x94,0x2e,0x88,0x63,0x6f,0x59,0xa0,0xfe,0x91,0x61,0xd8,0x5b,0x92,0x6f,0xf8,0x95,0x46,0xa6,0xde,0xa1,0xd7,0x86,0x71,0x9c,0x78,0x21,0x2e,0x1e,0xd2,0xd1,0x4e,0x2c,0x3f,0x95,0x30,0x25,0x64,0xb9,0x2c,0xd0,0x39,0x03,0x6b,0x52,0xe2,0xcd,0x04,0x5f,0x8a,0xc9,0xbb }, { 0x4e,0xa2,0x20,0xc7,0x8b,0xed,0x1c,0x8d,0x60,0x90,0x77,0xa9,0x24,0x3b,0x17,0x3c,0xa5,0x18,0xb5,0x2e,0xa2,0x00,0x44,0x66,0x42,0xae,0x5b,0x50,0x78,0x3d,0xfb,0x7c,0xc6,0x44,0xdd,0x2f,0x1e,0xc8,0x8d,0x3a,0x27,0x41,0x7d,0x9d,0x95,0x4c,0x82,0x98,0x28,0xc2,0xa2,0xb4,0x52,0x32,0x44,0x80,0xe5,0xd9,0xe6,0xe8,0x84,0x15,0xe1,0x3e }, { 0xe4,0xd2,0x45,0xf0,0x91,0x82,0x69,0xb3,0x5c,0x18,0x0c,0x7a,0xd6,0x52,0xab,0xf2,0xd6,0x73,0x06,0x33,0x5b,0x3c,0x9a,0x0b,0x34,0x05,0x58,0xf1,0x19,0x97,0xf6,0x17,0x32,0x2f,0xb3,0x6c,0xe9,0x87,0xcd,0xdb,0xaf,0x9c,0xa1,0x91,0xe5,0x07,0xe9,0xbf,0xb9,0x9f,0x8f,0x2b,0x49,0x67,0x2e,0xab,0x53,0x7f,0xf8,0x3f,0x98,0x2b,0x0c,0x74 }, { 0x9c,0x86,0x51,0xce,0xd7,0x5a,0xe9,0x4e,0xeb,0x27,0xe1,0x45,0xf2,0x1c,0x19,0x35,0x55,0x8d,0xd9,0x39,0x75,0x51,0xce,0x0d,0x0f,0x02,0xe8,0x94,0x87,0xd7,0x0d,0x2e,0x95,0x32,0xe3,0x63,0xad,0x04,0xe5,0x3e,0x3b,0xb3,0x6e,0x29,0x3a,0x24,0x54,0xc8,0xf3,0xed,0x01,0xa8,0x2d,0x75,0xcf,0x12,0x9c,0xd3,0xda,0x93,0x20,0xf3,0x5d,0x28 }, { 0xa8,0xf0,0xe3,0x9d,0x34,0x58,0x78,0x5d,0xce,0x9b,0x51,0xb1,0xd9,0xb3,0xe9,0xbd,0x1a,0x6d,0x23,0x9e,0x81,0xf4,0xb6,0x92,0xc9,0xaf,0xdd,0x01,0xb5,0x8e,0x82,0x69,0x0d,0x1c,0x67,0xd0,0x1e,0x5a,0xdc,0x5d,0x23,0x78,0x5c,0x32,0xc5,0x57,0xd0,0x51,0x21,0xff,0x8a,0xc1,0xb5,0xba,0x03,0xff,0xe1,0xf0,0x2a,0x23,0xa6,0xb9,0xf4,0x0a }, { 0x29,0x8a,0x40,0x1a,0x6e,0xe9,0x24,0x14,0xa7,0x08,0xfb,0xc0,0xa5,0x2e,0x5a,0x71,0xe9,0x3e,0x7c,0xa2,0x6b,0xc0,0xec,0x36,0x17,0xa4,0xf6,0x78,0xc5,0xd6,0x2a,0xf3,0x18,0xf9,0xa3,0xaa,0x04,0xfe,0x04,0x66,0xe4,0x09,0x85,0xff,0xc8,0x0c,0x90,0xdf,0x48,0x66,0xe6,0xb9,0x60,0x4e,0xd6,0xef,0x94,0x76,0x3e,0xf0,0xaf,0x0a,0x3d,0x96 }, { 0x06,0xc3,0x27,0x3b,0xf0,0x4c,0x15,0xcb,0xe0,0x70,0x9b,0x83,0xdb,0x38,0x5c,0x30,0xba,0x9a,0x42,0x15,0x2e,0x16,0x69,0x5b,0xd7,0x1c,0x11,0x46,0x0c,0x2c,0x63,0x37,0x6d,0x50,0x70,0x13,0xae,0xcf,0x62,0x55,0x82,0x1f,0xd2,0xe5,0x39,0xd9,0xd8,0x05,0x9a,0xca,0x94,0x31,0xd3,0x1d,0x3b,0x41,0xe2,0x5b,0x63,0xf7,0x71,0x00,0xa7,0xac }, { 0xfc,0xb7,0x11,0x61,0x20,0xd0,0x17,0x4b,0xc4,0x19,0x1a,0xcf,0x84,0x23,0xc0,0xba,0xff,0x33,0xd7,0x07,0x1d,0x39,0x80,0x92,0x6f,0x31,0x36,0x89,0x8a,0xbf,0x6b,0xd1,0xde,0xea,0xe3,0x7c,0x83,0x66,0x66,0x44,0x24,0xaa,0x32,0x13,0x6e,0x27,0x7d,0x6a,0x41,0xf3,0xc2,0x38,0x87,0x52,0x10,0x23,0x33,0x19,0x2f,0x74,0xf8,0x6c,0x5b,0xd9 }, { 0x0f,0xa8,0x22,0xbc,0x28,0x11,0xaa,0xa5,0x84,0x92,0x59,0x2e,0x32,0x6e,0x25,0xde,0x29,0x49,0x3b,0xaa,0xad,0x65,0x1f,0x7e,0x90,0xe7,0x5c,0xb4,0x8e,0x14,0xdb,0x63,0xbf,0xf4,0x4a,0xe8,0xf5,0xdb,0xa8,0x0d,0x6f,0x4a,0xd4,0xbc,0xb3,0xdf,0x18,0x8b,0x34,0xb1,0xa6,0x50,0x50,0xfe,0x82,0xf5,0xe4,0x11,0x24,0x54,0x5f,0x46,0x2e,0xe7 }, { 0x84,0xe9,0xdc,0x61,0x97,0xf6,0x90,0x0e,0x29,0xe5,0x2f,0x4a,0x54,0x61,0x5f,0x32,0x4e,0x22,0x7a,0x17,0xaf,0x70,0xeb,0x90,0xda,0xa7,0x66,0x06,0x0e,0xbb,0xe3,0x27,0xc8,0x81,0xf9,0x52,0x97,0xa9,0x96,0xb6,0x07,0x52,0x90,0xc4,0xee,0x9c,0x9c,0xdd,0x25,0x41,0x8d,0x3d,0x2a,0xf4,0x48,0x78,0x7b,0xd5,0xb6,0xf4,0x26,0xb9,0x95,0x8c }, { 0x03,0x1a,0x87,0x47,0xdf,0x8d,0xc7,0x46,0xe4,0xc1,0x3d,0x03,0x06,0x96,0x08,0x01,0x53,0xfe,0x44,0x8a,0x57,0x32,0x45,0x91,0x79,0x4a,0x16,0xba,0xa0,0x5f,0x57,0xb5,0x88,0x3a,0x2c,0x64,0xfd,0xa8,0xd5,0x86,0x60,0xe8,0xaa,0x6c,0x1e,0x38,0x7a,0x32,0x14,0x31,0xc1,0x8c,0x42,0xb8,0xde,0xf2,0x18,0x27,0xee,0x57,0x9c,0x03,0x43,0xfd }, { 0x54,0xfa,0x4c,0x8c,0x89,0x3b,0xef,0xfe,0xf6,0x8f,0x58,0xc3,0xbd,0x1b,0xdf,0xa4,0x0f,0x3c,0x27,0xf7,0x42,0x2a,0x64,0x57,0x45,0xf5,0x0c,0x57,0xba,0x49,0x94,0x48,0x6a,0x2e,0x9e,0x75,0x23,0x95,0xce,0x94,0x10,0x8e,0x16,0x80,0x56,0x8c,0x11,0x7f,0x97,0xbe,0xf0,0xfd,0xc3,0x9a,0xcd,0x91,0x91,0xcb,0xdf,0xed,0x24,0xb3,0xf5,0xcd }, { 0xa7,0x16,0x3c,0x2b,0x9b,0x97,0x3c,0x17,0xf9,0x57,0x19,0x75,0xc0,0xd5,0x93,0x4a,0x4e,0xcc,0xac,0x60,0x96,0x51,0x3c,0xca,0x01,0x5e,0x2e,0x65,0x58,0x0b,0x23,0x22,0x30,0x8a,0x9a,0x79,0x7a,0xf3,0x1f,0xa5,0x63,0x38,0x99,0x91,0x54,0x5a,0x6b,0x7a,0xb8,0x41,0xa4,0xf4,0xe0,0x99,0x52,0xd7,0x39,0x33,0xb2,0x23,0x21,0x97,0xff,0xe9 }, { 0x93,0x08,0xc0,0x49,0x33,0x99,0xf0,0xe3,0xcb,0x19,0xe4,0x79,0x59,0x7a,0x47,0xfd,0x66,0x24,0x85,0xf7,0xf7,0x71,0x41,0x0e,0xa7,0x64,0x0b,0xd9,0x87,0xe9,0xb9,0x88,0xfa,0x4c,0xcf,0x36,0xda,0x25,0xb5,0x47,0xea,0x1d,0xeb,0x1f,0x57,0xb9,0xf6,0x09,0x56,0xeb,0xde,0x60,0x85,0x99,0x2e,0xbe,0x2a,0x67,0xb3,0x14,0xad,0x84,0xa7,0x6b }, { 0x1b,0xff,0xab,0x8c,0x03,0xab,0x82,0x79,0x81,0x1b,0x39,0x23,0xef,0x4b,0x99,0x1f,0x02,0xa5,0x0c,0x38,0x2d,0xb2,0x67,0x0c,0x6c,0xb0,0x4a,0x6a,0x5c,0x42,0xa2,0x80,0x29,0x82,0xb6,0x20,0xce,0xb1,0xd0,0x98,0x33,0x2a,0xc7,0x58,0x52,0x9f,0x1a,0xaa,0x98,0x2a,0x36,0x9a,0xa9,0xd2,0x4f,0xb6,0xc9,0xc7,0x42,0x36,0x4d,0xdb,0x92,0x61 }, { 0x31,0xeb,0xee,0xe3,0x37,0x88,0xa2,0x79,0xd2,0x05,0x2a,0x2a,0x6d,0xee,0xad,0x69,0xa5,0x74,0x7a,0x36,0x16,0x4f,0x8d,0x32,0xfa,0x7e,0x23,0xca,0xc2,0xfa,0x06,0xc5,0xf3,0x74,0xf7,0xf8,0x60,0xae,0x72,0xaa,0x55,0xe5,0xf6,0x90,0xea,0x3d,0xa4,0x4c,0x2f,0x08,0x28,0xf8,0x5b,0x56,0xc4,0x63,0xa4,0xcf,0xac,0x99,0xd3,0x10,0x42,0x93 }, { 0x54,0xbc,0x18,0xd7,0xa9,0x98,0x99,0x54,0x7d,0xdc,0x69,0x88,0xd7,0xee,0x1b,0x3f,0x2b,0x48,0x1a,0xb4,0x43,0xda,0x43,0xff,0x68,0xf4,0x13,0x05,0xb7,0x6a,0x69,0x87,0x4b,0x2c,0x8c,0x12,0x11,0xe6,0xea,0xf3,0x73,0x91,0xb8,0x51,0xba,0x73,0xe2,0xfd,0x52,0xeb,0x8e,0xd4,0xbb,0x73,0xb1,0x19,0xfe,0x45,0x7c,0xd0,0x5b,0x9a,0xae,0x49 }, { 0x53,0x4a,0x48,0x26,0x07,0x64,0xde,0x55,0xb2,0xae,0x1a,0xb4,0xb1,0x9c,0x81,0x58,0x19,0xad,0xe5,0xe1,0x9c,0x14,0x00,0x01,0x52,0x03,0x8b,0x0b,0x56,0x13,0xcb,0xcb,0x53,0xfe,0xb8,0x98,0xaf,0x82,0x52,0xae,0x06,0xf5,0x7d,0xe5,0x7f,0xf8,0xaf,0x6e,0x4d,0xce,0x9e,0x6d,0x2f,0xa7,0xc4,0xf8,0x8e,0x77,0xa6,0x50,0xbe,0x9a,0x4d,0x95 }, { 0x1f,0x38,0x00,0x71,0x78,0x1d,0xff,0x16,0xf3,0x3d,0x81,0x73,0xa6,0xfb,0x4d,0x96,0xba,0x77,0x0f,0x18,0x35,0x5c,0xca,0x4c,0xb2,0xa6,0x4c,0x61,0x96,0x26,0x02,0x50,0xb1,0x52,0x1e,0xc4,0xba,0x6c,0x68,0x1d,0xa3,0x37,0x05,0x17,0x6c,0xa2,0xcf,0x62,0x1b,0x85,0x67,0x66,0x05,0x90,0xd6,0x93,0xb1,0x51,0x9b,0x2e,0x6b,0x01,0x19,0x55 }, { 0xda,0x96,0x4b,0xb1,0x68,0xf5,0x83,0x6a,0x9a,0x00,0x54,0x71,0xf9,0xf4,0x8f,0x2c,0x90,0xf0,0xa6,0x60,0x6b,0x84,0x16,0xcd,0xed,0x52,0x33,0x9e,0x46,0x4a,0x8f,0xf1,0xc9,0x94,0x92,0x0a,0x1d,0x68,0xc7,0x0b,0x44,0x5c,0x67,0x0d,0x6b,0xda,0x9b,0xcb,0xbe,0x9a,0x65,0x56,0x27,0x0b,0x17,0x82,0xca,0xd5,0x17,0x99,0x58,0xc4,0xba,0x40 }, { 0x99,0xeb,0xa1,0x92,0xaa,0xdb,0x01,0x9f,0x41,0xe0,0xbe,0x2b,0x78,0x92,0x73,0xa0,0x58,0xe6,0xea,0x55,0x22,0x20,0x34,0xf3,0xea,0x6d,0x95,0xd1,0x77,0xae,0x84,0xda,0xfc,0x4d,0xc4,0xcd,0xe1,0xef,0xbf,0xd9,0xf4,0xf8,0x06,0x64,0x45,0x30,0x18,0x4d,0xb6,0x30,0xd8,0x66,0xd7,0x10,0x8d,0x10,0x8d,0xa3,0x9d,0xbe,0x02,0x15,0x5c,0xac }, { 0xaa,0xb0,0x22,0x7b,0xa8,0x43,0xf6,0x2e,0xa0,0x70,0xfe,0xa3,0x44,0xea,0x15,0xca,0x79,0x11,0xb6,0xf6,0xe0,0x43,0xcd,0x97,0xe7,0xb3,0xea,0x88,0x1a,0x30,0x26,0x32,0x71,0x2a,0x7e,0x22,0xa8,0x10,0xcc,0x61,0xee,0xe5,0xe2,0x76,0xbc,0xf5,0xf8,0xea,0xae,0xbe,0x42,0x33,0x8c,0x96,0x43,0x4c,0xe9,0x91,0x0b,0xa0,0x99,0x44,0x33,0x8b }, { 0x6d,0x50,0x85,0x64,0x33,0x96,0x84,0x35,0xfc,0x59,0x45,0xce,0x21,0x62,0x1e,0x08,0x9d,0x4e,0x99,0x3b,0x76,0x04,0xa5,0xfa,0x89,0x6b,0xf7,0xc7,0xf7,0xf9,0x60,0x03,0xcc,0xf5,0x73,0x57,0xe9,0x68,0xc6,0xe7,0xc6,0xbc,0x5d,0x8a,0xa2,0xc7,0xee,0xf9,0xd6,0xc0,0xd6,0xdc,0x82,0x63,0xa0,0xd9,0x02,0x71,0xcc,0xaa,0xac,0x7e,0x96,0x9c }, { 0xbf,0xf2,0xbf,0xd3,0x46,0x2a,0xc9,0x89,0xeb,0x42,0x63,0x2d,0x06,0xf1,0x83,0x83,0x17,0x62,0xd5,0x40,0x87,0xfc,0xe1,0x8b,0x70,0xa2,0xbd,0xe7,0x2a,0xd1,0xa9,0x42,0x76,0x01,0x26,0x7b,0xf3,0x19,0x1c,0x30,0xd2,0x41,0x29,0x0a,0xbc,0x4d,0x90,0x82,0xc7,0xbd,0x21,0xac,0xbd,0xfc,0x3c,0xd4,0xc2,0x73,0x9e,0x6d,0xfc,0xc1,0x6b,0xb2 }, { 0xd4,0x0f,0x0f,0xba,0x01,0x1d,0x4a,0x46,0x08,0x07,0x14,0x47,0x23,0xd3,0xcd,0xcf,0xb8,0x92,0x11,0x6e,0x7a,0xab,0x1b,0x4b,0xe2,0xac,0x83,0xb1,0xeb,0xe7,0x02,0xd4,0x19,0xe1,0xb7,0x83,0x4e,0x7b,0xe7,0xf6,0x5a,0x7f,0x99,0x1f,0x69,0x35,0x5e,0x40,0xb3,0xd5,0xb0,0xa4,0x15,0x70,0xd0,0xbe,0xa0,0x6d,0x12,0x09,0x1d,0x36,0x17,0xa1 }, { 0x1d,0x35,0xc9,0x69,0x97,0x61,0xe3,0xf2,0x85,0xf2,0x48,0x23,0x92,0x67,0x75,0x6f,0x51,0x94,0xb8,0x52,0x79,0xf9,0x6b,0x7c,0x60,0xaa,0xfa,0xd1,0x70,0xaa,0xe2,0x31,0xc7,0x22,0x6c,0xb6,0x2d,0xf6,0x08,0x23,0x1d,0x66,0x0a,0xb6,0x22,0xeb,0xf8,0x10,0xed,0xf5,0x8a,0xa4,0x72,0x9a,0x66,0xf1,0x58,0x67,0x06,0x3a,0xcc,0xd6,0xac,0x71 }, { 0x8b,0xe7,0xf8,0x99,0x6d,0x72,0x5c,0xe4,0xeb,0x6a,0x35,0x13,0x55,0xf7,0xe8,0x5a,0x2d,0x2e,0xab,0x45,0x64,0x8c,0x6e,0x30,0xb8,0x72,0x42,0x2f,0xee,0x38,0x96,0xb2,0x92,0x16,0x0e,0x60,0x13,0x22,0xed,0xae,0x79,0xc9,0x97,0xe7,0x27,0x55,0xd6,0xba,0xd7,0xe0,0x49,0x09,0x3a,0xcf,0x17,0xa9,0xf5,0xd8,0xd9,0xe0,0xcf,0x4b,0x6b,0xe2 }, { 0x6f,0x2b,0x06,0x5a,0x78,0x00,0xcd,0xd8,0x99,0x10,0xe1,0xc2,0xa6,0x39,0x7a,0xb4,0xd9,0xc9,0x82,0x3c,0x2b,0x47,0x39,0x03,0x50,0x1a,0x32,0x74,0x26,0x43,0x2d,0x92,0x0a,0xcf,0xeb,0x77,0xe5,0xe7,0xa2,0xe4,0xeb,0x14,0x72,0xcf,0x70,0x08,0x26,0xc5,0x09,0x3b,0xf0,0x2d,0xe3,0x3d,0xbe,0xcb,0x6d,0x2d,0x1c,0x49,0x63,0xe1,0x7c,0x9f }, { 0x54,0x75,0x66,0xd3,0xc0,0xfe,0xf4,0x1c,0xed,0x64,0x64,0x10,0xc3,0x62,0x22,0x50,0xd2,0xfb,0xd2,0xa3,0xe0,0xdf,0xe7,0x18,0x69,0x0e,0x61,0xc8,0x38,0xbd,0x30,0xa8,0xea,0x7e,0x5b,0xa9,0x66,0x2b,0x1e,0x2a,0x63,0x69,0xd4,0x31,0x02,0xa1,0x96,0x71,0xec,0x9b,0xa5,0xd3,0x67,0x85,0x1d,0xfa,0xa0,0xee,0x16,0xbd,0xf0,0x98,0xa6,0x73 }, { 0x87,0x0a,0xc1,0x2b,0xa3,0xdd,0x77,0x74,0x68,0x99,0x1d,0xa7,0xfd,0xad,0xd0,0xaf,0x2f,0x33,0x52,0x56,0x96,0x62,0x87,0x6b,0xe3,0x06,0x5e,0x08,0x8a,0x6e,0xdb,0xf5,0x75,0x43,0x72,0x8b,0x99,0x9a,0x76,0x99,0x8d,0xe7,0xef,0xd7,0x69,0xd0,0x5a,0x67,0xd0,0x3c,0x64,0x02,0x2e,0x5f,0x29,0x7e,0x19,0x06,0xd2,0xdc,0xf0,0x2f,0x8c,0xe3 }, { 0x6e,0x80,0xa8,0x74,0x58,0x0c,0x8e,0x5e,0x56,0xa0,0x66,0xc5,0x3b,0x4d,0x05,0x44,0xda,0x0d,0x4d,0x93,0x53,0x63,0x26,0xdf,0x63,0x7d,0xfd,0xa0,0xe8,0x06,0x54,0x0c,0x19,0x4d,0x68,0x57,0xd6,0x07,0xbb,0x8c,0x64,0x49,0x80,0x1c,0xa4,0xda,0xa8,0x7a,0xd8,0x02,0x36,0x53,0xb4,0x35,0x67,0x73,0xbc,0x4a,0xfa,0x8f,0x42,0x60,0x3c,0x73 }, { 0xdb,0xec,0x13,0xe6,0xda,0x0d,0x55,0x92,0xa0,0xbf,0x5f,0xef,0x80,0x34,0xdb,0x34,0x6a,0x9e,0x8c,0x74,0x9f,0xdb,0xf0,0xf0,0x7a,0xa6,0xe4,0x63,0x50,0xc0,0x6a,0xf3,0xf8,0x59,0x97,0x8f,0xd6,0x19,0xe5,0xf8,0xc0,0xe5,0x73,0x48,0xb7,0x45,0xe4,0xd4,0x42,0x24,0x3a,0x32,0x64,0xed,0xb6,0x64,0x7c,0xaf,0x0f,0x7c,0xb6,0xd2,0x43,0xed }, { 0xb3,0x49,0xfd,0xa2,0xa6,0x0f,0x85,0xda,0x5c,0x4a,0x1a,0x13,0x84,0x33,0x06,0x1f,0x70,0x5d,0xac,0x68,0x44,0xae,0x61,0xf2,0xf9,0xb9,0x4b,0x87,0xf9,0x4f,0xa2,0x9d,0x89,0x09,0x96,0xd4,0xda,0x58,0xa1,0xd7,0x7d,0x30,0x32,0xc6,0x34,0xa1,0xfa,0xeb,0xd3,0x8b,0x43,0xc0,0x1e,0xee,0xd4,0x2e,0xde,0x9b,0x55,0xe3,0xa1,0xba,0x97,0x25 }, { 0x55,0xd9,0xa9,0x59,0x84,0x4b,0x5a,0xef,0x38,0x8f,0xf0,0xf7,0xaa,0x02,0xf2,0x9a,0xcb,0xf5,0xca,0x9a,0xa5,0x67,0xe0,0xe6,0x55,0x72,0xae,0xa8,0x75,0x0e,0x4f,0x5f,0x69,0xcb,0x7f,0x9a,0xa5,0xda,0xd2,0x03,0x76,0x6d,0x57,0x4f,0xbc,0xc8,0xec,0x52,0x4c,0x98,0x10,0xc6,0x33,0xad,0x1b,0x15,0xc8,0x58,0xeb,0x76,0xbc,0xa9,0x7d,0xb0 }, { 0xe9,0xf3,0x2c,0x1a,0xd6,0xb0,0x99,0x80,0xd2,0xb4,0x33,0xea,0xad,0x0b,0x42,0xe2,0x6c,0xd0,0xf5,0x8d,0xad,0x06,0x3b,0xe4,0xd1,0x43,0x37,0xbc,0x33,0xc3,0x80,0xa9,0x43,0x26,0xed,0x98,0xaf,0x83,0xb5,0xa4,0x1f,0x5d,0x0b,0x89,0x27,0xb2,0x12,0xee,0xcb,0xcb,0x2d,0xc0,0x1d,0x8e,0xd7,0x1d,0x00,0x02,0x03,0x90,0x92,0xb2,0x59,0xef }, { 0x8c,0x76,0x68,0x9b,0xa7,0x8a,0x16,0x61,0x38,0xf9,0x43,0x4c,0x2f,0x72,0xe6,0x62,0xf5,0x17,0x32,0x3e,0x3f,0x09,0xb5,0xd3,0x07,0x58,0xcb,0x4d,0x57,0xc6,0xf8,0xfb,0xcd,0x31,0x72,0x99,0x0a,0x40,0x9d,0x3a,0x28,0x84,0x89,0xb0,0xc6,0x3d,0x6d,0xcd,0xf0,0xb1,0x1f,0xc3,0x13,0x6b,0xc0,0x5f,0x7d,0xc5,0xb3,0x9a,0x9b,0xcf,0x23,0x06 }, { 0x71,0x02,0x62,0xac,0x2a,0xdf,0xbf,0x4c,0xae,0x3a,0x73,0x73,0x95,0x93,0x49,0xce,0x40,0xb6,0xd6,0xf3,0xd2,0xb0,0x0c,0x3d,0x6b,0x6e,0xe9,0x01,0x9b,0xd2,0x1f,0x7b,0x76,0xc8,0xd3,0xf2,0xc1,0x41,0x33,0x3e,0xd5,0x71,0x6c,0x6c,0x68,0x03,0x9a,0x7a,0xe9,0x2b,0x6a,0xe2,0x31,0x3f,0x3a,0x12,0x17,0x7c,0xac,0xb5,0x61,0x11,0x1f,0x80 }, { 0x3f,0xb5,0x90,0x9a,0x93,0xdf,0xe4,0x6a,0xf0,0xc6,0xa4,0x16,0x92,0x81,0xbf,0x87,0x46,0x54,0x37,0x68,0xce,0x5e,0x12,0x44,0x1e,0xe4,0x5f,0x92,0xed,0x69,0xf1,0xd5,0x54,0x99,0x91,0xac,0x0b,0xe8,0x80,0x9f,0x70,0x4a,0x4e,0x3a,0x3b,0xdf,0x77,0x54,0x25,0xd3,0x56,0x88,0xfd,0x05,0x62,0xb0,0x13,0xd4,0xfe,0xfe,0x99,0xa5,0x6c,0xc5 }, { 0x67,0x2e,0x2a,0x9a,0x5e,0xf9,0xfc,0x86,0xaf,0x62,0xb0,0xea,0xe0,0x2f,0x89,0xb6,0xf3,0x1a,0xb7,0xf4,0x32,0x3e,0x3d,0x87,0xdd,0xda,0xe0,0x84,0xa3,0xda,0x15,0xde,0x0d,0x3e,0xde,0xf5,0x01,0x20,0x38,0xcb,0xa6,0x25,0xab,0x9a,0xcc,0x94,0x31,0x9d,0xb2,0xe1,0xc5,0x00,0x70,0xba,0x17,0x56,0xf1,0xf0,0xf5,0xc8,0x05,0x0e,0x05,0x1b }, { 0xc3,0x4a,0xce,0x1c,0xe5,0xdd,0x90,0x40,0x8a,0xe2,0x27,0xe1,0x6f,0xea,0xf2,0x53,0x7f,0xea,0xbb,0x0c,0xbe,0xed,0x3e,0x03,0x50,0x6f,0x12,0x70,0xbd,0xe7,0xbc,0x7f,0xe1,0xef,0x3b,0x3a,0x00,0x98,0x57,0xe2,0xe6,0x23,0xb8,0xbe,0x80,0x16,0x6f,0x12,0xd6,0x55,0x42,0x99,0xbd,0x55,0xa4,0x42,0xae,0xb6,0x39,0x80,0x69,0x78,0x06,0xc4 }, { 0x98,0x01,0x2a,0x98,0xae,0x6c,0x08,0x20,0x26,0x11,0x40,0x8c,0x84,0x08,0x6c,0x64,0x39,0x7f,0x29,0xae,0x08,0x6a,0x99,0xa1,0x67,0x14,0xe3,0x72,0x4c,0x01,0xa8,0x58,0x58,0xc2,0x9a,0xd5,0x9d,0x12,0x0a,0x4e,0x78,0xd1,0x06,0xd2,0xfb,0x37,0x3e,0xea,0xa3,0x0c,0x9d,0xe1,0xff,0xe8,0x94,0x4a,0xd3,0xdf,0x16,0x40,0xde,0x6b,0x9b,0xb7 }, { 0x2b,0x0b,0xdf,0x62,0xef,0x9c,0x19,0x0d,0x31,0xb8,0x23,0x5f,0x32,0xa6,0x3f,0xf3,0x91,0xca,0xd6,0x05,0x8a,0x63,0x9f,0x40,0x8b,0x33,0x36,0x19,0x05,0xcb,0xee,0xd3,0x55,0xfd,0x07,0xb2,0xf1,0xb2,0xad,0xcd,0xfc,0xe3,0xf0,0xed,0xd6,0x36,0x2c,0x5b,0xc0,0x78,0xd8,0x00,0x41,0xe8,0xb1,0x4a,0x22,0xa4,0xac,0x86,0xcb,0x9c,0x9c,0x1e }, { 0x6e,0x29,0xf9,0x59,0xbe,0x28,0xc4,0x7f,0xae,0x5a,0xbc,0xa1,0x85,0x75,0x5c,0x08,0x34,0x69,0x24,0x37,0x6f,0x54,0x12,0xc1,0xd4,0xd3,0xd2,0xde,0x43,0x51,0x96,0x4c,0x34,0x56,0x5d,0x9f,0x50,0x0f,0x32,0xf6,0x50,0x52,0xec,0x6c,0xc1,0x84,0x24,0x6d,0xef,0x64,0x0c,0x52,0x7a,0x0b,0xfb,0x63,0x11,0x88,0x24,0xbd,0x56,0x3f,0xd8,0x8f }, { 0x23,0x98,0xf4,0x0a,0xba,0x81,0x7d,0xf6,0x28,0x10,0x26,0x6d,0x88,0x60,0xa0,0x55,0x1b,0x6a,0xcf,0x6d,0x79,0x4b,0x33,0x09,0xe0,0x39,0xac,0xd6,0xdf,0x55,0xbe,0xf5,0x06,0xa7,0x73,0xd0,0xb9,0x64,0xf3,0x56,0x4e,0xaf,0xa9,0x55,0x60,0xfc,0x1f,0x66,0x1a,0x93,0xf4,0xe5,0x19,0x06,0x05,0x39,0x59,0xfb,0x47,0x91,0x9e,0xc0,0x4c,0x5b }, { 0x8e,0xfa,0x0f,0x79,0xb5,0x90,0x9a,0x0b,0x10,0xcf,0xa3,0x81,0x49,0x6e,0x68,0x94,0x3b,0x09,0xf0,0x77,0x6e,0xd9,0x0c,0xad,0x61,0xe0,0xf0,0xef,0xe5,0xe8,0x4d,0xa4,0x24,0x24,0x18,0xe7,0x93,0x4c,0xd6,0x13,0x9f,0xa4,0x6f,0x1c,0x5d,0xaa,0xfd,0x14,0x79,0x95,0x7c,0x48,0x97,0x81,0x60,0x35,0xfd,0xe1,0x9f,0x42,0x59,0x69,0x69,0xd3 }, { 0x61,0xcb,0xee,0x27,0xd6,0x6e,0x40,0xe1,0x58,0xc4,0x1a,0x57,0x9f,0x0d,0x6e,0xa9,0xee,0x41,0x4b,0x2c,0x5e,0x19,0x3c,0x8b,0x06,0x86,0x63,0x2d,0x0e,0x20,0xee,0x17,0x4c,0x36,0x2a,0xf7,0x54,0xa6,0x76,0x3a,0xf7,0x6a,0x52,0x54,0xb0,0x62,0x05,0xed,0x18,0x7e,0x6e,0x77,0xfc,0x73,0xaf,0xa9,0xb3,0xc9,0xde,0x6a,0xd6,0xca,0x63,0x79 }, { 0xd0,0xd4,0xaf,0x73,0xcb,0x8f,0xdb,0x30,0xb9,0xd6,0xd6,0xd0,0xf3,0x60,0xdb,0x2f,0x1f,0x89,0x73,0xe3,0x1e,0xb3,0xf3,0x97,0x4a,0xca,0xf2,0xc0,0x02,0x3a,0xc4,0xce,0xed,0x90,0xf8,0xc8,0xf1,0x5d,0x7d,0xdc,0xbb,0xe9,0xcc,0xee,0x3e,0x52,0x95,0x30,0x61,0x85,0x0b,0x1c,0x86,0x3a,0xae,0x77,0xe3,0xdf,0x03,0x60,0xa4,0x7d,0xd6,0xb9 }, { 0x40,0xa9,0x0e,0x7f,0x4e,0x7e,0x43,0x40,0x03,0xd2,0x75,0x2d,0x30,0x72,0x28,0x1b,0xe4,0x1b,0x98,0xac,0xa2,0xff,0x39,0x53,0x4f,0xf7,0xc2,0x00,0xba,0x2d,0xba,0xef,0xd3,0xc3,0x38,0x7e,0x06,0xc3,0xe6,0xb9,0x5a,0xcb,0x07,0x38,0x1d,0x0d,0x06,0x44,0xd7,0x89,0x31,0x7d,0xdd,0x7c,0xb4,0x26,0x7e,0xc1,0xe8,0x44,0x20,0xd6,0xb7,0x21 }, { 0x82,0x9b,0x8d,0xd0,0xed,0x54,0x52,0xe8,0xa6,0xd6,0xf7,0x1b,0x65,0xb8,0x5f,0x90,0x38,0xd1,0xd6,0x02,0x51,0x25,0x6e,0xac,0xe3,0x99,0xda,0x61,0x92,0x39,0x7d,0x42,0xd3,0x00,0xec,0x54,0x3f,0xcc,0xf4,0x6d,0x99,0xe7,0x3c,0x8a,0x89,0x62,0x41,0xaf,0x5c,0x5a,0xdc,0x42,0x63,0xad,0x1a,0x5d,0x91,0xb7,0x16,0x31,0xe3,0xdf,0x56,0x12 }, { 0x51,0x52,0x32,0xd4,0x77,0xa8,0x48,0xf3,0x47,0xcb,0x0b,0xf5,0x6a,0x41,0xcc,0x02,0x31,0x32,0x43,0xf4,0x02,0xfe,0xd7,0xa9,0x60,0x1d,0xe6,0x30,0xab,0x3c,0x58,0x33,0x2f,0x87,0x8d,0x4a,0xca,0xb0,0xda,0xef,0xae,0xbf,0x15,0x7d,0xfd,0xf2,0xa2,0x0f,0x4d,0x0d,0xa8,0x9e,0x8e,0x7b,0x29,0x7c,0x1f,0xb6,0x13,0x5b,0x6f,0xa5,0x3d,0xef }, { 0xff,0x04,0x6a,0x9e,0xb2,0xbf,0xee,0xd9,0xc0,0x0f,0x2e,0xf0,0x79,0x6f,0x45,0x8e,0xc1,0x41,0xc2,0x59,0xa8,0x45,0x63,0x11,0x28,0xa7,0xd4,0x11,0x0c,0xb7,0x12,0x80,0x43,0x2f,0x55,0xac,0xc0,0x95,0x3a,0x17,0x0a,0x01,0xed,0xdb,0xdd,0x4c,0xfc,0xc9,0x01,0x2b,0x6e,0x6e,0xbd,0x28,0x48,0x7a,0x7e,0xc3,0x27,0x1f,0x5e,0xc3,0x39,0x19 }, { 0x37,0x44,0x64,0x98,0x6f,0x8e,0x59,0x0b,0x0a,0xa5,0x86,0x0e,0x0e,0x98,0xfc,0xa4,0xfa,0x27,0x8f,0x23,0xe9,0xd3,0x94,0x65,0xd7,0xb6,0x5d,0xf7,0xb0,0x9f,0xa6,0xfb,0x7d,0x81,0x54,0x3d,0x27,0x24,0xe5,0xbc,0xd3,0x1a,0x3d,0x7e,0xf9,0xb6,0xfc,0x55,0x80,0x68,0xcf,0xce,0x4a,0xc6,0x07,0x34,0x70,0x56,0xce,0x9f,0x59,0x1c,0xbc,0xd1 }, { 0x58,0x90,0xc0,0xf3,0x34,0xdd,0xc2,0xb0,0x8f,0xab,0xbc,0xcc,0x41,0x28,0x7d,0xf4,0x01,0x17,0x45,0xf8,0x56,0xde,0x35,0xac,0xb2,0xbd,0x41,0xc7,0xb0,0xb3,0xda,0x07,0xcc,0x9e,0xac,0x78,0x8b,0x1d,0x9c,0x04,0x5e,0x46,0x04,0xfa,0x4f,0x79,0x27,0x26,0x55,0xa2,0x79,0xce,0x3e,0x2a,0x81,0x66,0x62,0x3d,0x0a,0xe8,0x8d,0x38,0x13,0xe0 }, { 0xea,0xbf,0x3e,0x3a,0xb8,0x99,0x64,0x2b,0x6f,0xec,0x7f,0x0e,0xa0,0x6c,0x64,0xc1,0xc3,0xb4,0xec,0xc7,0x0a,0x17,0x93,0xea,0xb3,0xd0,0xb4,0x13,0x98,0x0a,0x95,0xb6,0x27,0xfb,0xb1,0xbf,0x74,0xee,0x4f,0xd8,0x0d,0xb8,0x30,0x73,0x4a,0x1f,0xfb,0x4d,0xbe,0x21,0xb6,0x2e,0x79,0xb5,0x80,0x52,0x11,0x8f,0x57,0x20,0xf3,0xf8,0xa3,0x41 }, { 0x6e,0xec,0x95,0x67,0x0d,0x54,0x65,0x0c,0xc1,0x4b,0x66,0xdd,0x02,0x43,0x68,0x93,0xff,0xdc,0x67,0x94,0x2d,0x66,0x68,0x17,0xfd,0xc7,0x3e,0x83,0xbf,0x78,0x0c,0x2c,0x14,0xbb,0x53,0x50,0x99,0x77,0x32,0xc2,0xfc,0x28,0x1d,0xe0,0x65,0xea,0x01,0x05,0x79,0xab,0x66,0x15,0x3a,0x07,0xff,0x89,0x08,0x9e,0xc1,0xa1,0xed,0xbf,0xcd,0x32 }, { 0x4a,0xd9,0x17,0x86,0x07,0x91,0xf2,0xfd,0x24,0xca,0x65,0x1c,0x09,0xe6,0x7f,0x15,0xe9,0x30,0xf0,0xfa,0x27,0x49,0xe6,0x22,0x32,0x9b,0xa8,0xc1,0xad,0x5b,0x27,0xbb,0xa5,0x89,0xcb,0x5a,0x0d,0x7e,0xdb,0x08,0x50,0xfb,0xea,0x2d,0xb2,0x3f,0xb8,0x0b,0x6b,0x95,0xc7,0x22,0x05,0xc9,0x49,0x36,0x41,0xd5,0xf7,0xda,0xea,0x0c,0x76,0x20 }, { 0xa0,0xe2,0x41,0x0c,0xd0,0x9c,0x01,0xa1,0xb7,0x94,0x70,0xf6,0xad,0x3d,0xa8,0x29,0x08,0xf6,0x95,0x91,0xee,0xb5,0x1b,0xd8,0x53,0xd6,0xd6,0xe9,0x01,0x9f,0xc5,0x55,0x1e,0x29,0x64,0x8c,0x71,0xbf,0xde,0xd4,0x2a,0xc3,0xb5,0x7b,0xa5,0xb2,0xfe,0x89,0x8b,0xba,0xf1,0x9f,0x6b,0x66,0x79,0x30,0xcf,0x34,0x08,0x18,0xc1,0xac,0x6d,0x8d }, { 0x00,0xe5,0x6d,0xeb,0xa6,0xb4,0x2e,0x01,0x0a,0x2e,0x33,0x3d,0xd0,0xb9,0x79,0x62,0xf3,0x41,0xf8,0x7c,0x02,0xb1,0xdc,0x06,0x67,0xda,0x40,0x53,0x51,0xd4,0x57,0xbf,0xc1,0x28,0xce,0x89,0xc5,0xd6,0x28,0x17,0x5a,0x86,0xd7,0xea,0x70,0x0e,0xeb,0x12,0x24,0x58,0x70,0x53,0xa3,0x00,0x9a,0x7c,0x53,0xf7,0xc9,0x9c,0x55,0xef,0x66,0xe5 }, { 0x64,0x41,0xdb,0x54,0xc1,0x72,0x39,0x0d,0x40,0xf5,0xaa,0x46,0xd3,0xc6,0x53,0xdd,0x41,0x13,0xed,0x9b,0xd1,0x8b,0x8b,0xab,0x71,0x4a,0x74,0x4b,0xbd,0xbb,0x63,0x91,0xb7,0x47,0x22,0x2f,0x03,0x61,0x7b,0xd0,0xa1,0x8a,0xae,0x58,0xc6,0x13,0xca,0x69,0x89,0x0b,0x28,0xd6,0x7a,0x5c,0x6d,0x2f,0xf6,0xa8,0x03,0x57,0xe4,0xb0,0x52,0x4e }, { 0xe4,0x86,0xc7,0xdf,0xfe,0xab,0xb0,0x58,0xc1,0xf9,0xaa,0x23,0x49,0xee,0x7e,0xff,0x8b,0x2c,0x7e,0x63,0xcf,0x57,0x0c,0xc5,0xc7,0xd0,0xb2,0x4c,0xc5,0x85,0x2e,0x50,0x51,0xfd,0x75,0xed,0x56,0x06,0xa1,0x2e,0x9e,0xe8,0x8a,0x5c,0x9f,0x51,0xe0,0x5a,0x69,0x44,0x63,0xd6,0x33,0x92,0xeb,0xd8,0x66,0xba,0x3c,0xad,0xae,0xcf,0x10,0x7d }, { 0xc0,0xc3,0xe0,0x7e,0x45,0xc4,0x61,0xfa,0xf4,0x5d,0xb7,0x22,0x03,0xc1,0x69,0x3f,0x07,0x8e,0x30,0x9c,0xb4,0x31,0xfc,0xb8,0x30,0x17,0x42,0xfb,0xd9,0x65,0x74,0x8f,0xeb,0xb7,0x6e,0x29,0x11,0x0c,0xe2,0x9d,0xd1,0x17,0x95,0x54,0x20,0x4f,0x9f,0xfb,0xe8,0x1c,0x87,0x18,0x85,0x81,0x86,0x4d,0xf8,0xca,0xea,0xd2,0xa7,0x39,0x32,0x60 }, { 0x69,0xa1,0x6e,0x24,0x5a,0x5f,0xcb,0x88,0x21,0xff,0x14,0x41,0x90,0x62,0x76,0xe9,0x63,0xad,0x9e,0x86,0xc3,0x39,0xd0,0xea,0x74,0x50,0x2c,0xa3,0x78,0x69,0x2e,0x20,0xa7,0xc9,0x68,0xcd,0x89,0x1a,0xfc,0x01,0x06,0xf0,0x1e,0x9a,0x4c,0xdd,0xba,0x10,0x11,0x3d,0x28,0x62,0x0f,0x7d,0xa8,0x94,0x99,0x6e,0x69,0xa9,0xb3,0x11,0x6c,0x8f }, { 0x9c,0xd8,0x34,0xc7,0x89,0x9c,0x7b,0x1f,0x73,0xb6,0x63,0x60,0xd5,0xef,0x84,0x11,0x41,0x1b,0x18,0xcb,0x03,0x10,0xc8,0xbf,0xa5,0x3f,0x36,0x3f,0x91,0x9c,0x57,0x4f,0xba,0x76,0x00,0x0d,0x34,0xbd,0xe8,0xfe,0x43,0xbb,0x43,0x09,0xc8,0x5f,0xed,0x3a,0x50,0x18,0x65,0x20,0xd7,0x1a,0xb8,0xd7,0xd1,0xd1,0x39,0xe2,0x36,0x63,0xbb,0x6d }, { 0xdc,0xad,0x8b,0x2a,0x7e,0xef,0xb2,0xc7,0x21,0x19,0x0e,0x12,0xfa,0x0e,0x74,0x5a,0x7a,0x39,0xf9,0x5b,0xc7,0x9b,0x0d,0x17,0x47,0xbd,0xe7,0x97,0x06,0xbc,0x8d,0x71,0x8b,0xf1,0x28,0x7a,0xb9,0x1f,0xaf,0x9b,0x22,0x11,0x99,0x3c,0xe0,0x7c,0x0f,0xa3,0x27,0x26,0xc4,0x07,0x7b,0x71,0x7b,0x56,0x47,0x0c,0xfe,0x2e,0xa2,0x97,0xfc,0xf2 }, { 0x00,0xb5,0x42,0xb8,0xd1,0xd8,0xec,0x9a,0x6a,0xe9,0x82,0x79,0xe3,0x86,0x3a,0xeb,0x1e,0xbe,0x23,0x46,0x1a,0xe4,0x08,0xf9,0x41,0xc0,0x3c,0x6d,0x77,0x74,0x6b,0x6c,0x33,0x98,0x3a,0xce,0x84,0x9e,0xaa,0xbe,0x71,0xee,0x9c,0xa8,0x05,0x0b,0x79,0x71,0xe2,0xb4,0x5a,0x3a,0xaa,0x1a,0xd5,0xd3,0x81,0x8d,0xb0,0xff,0xcc,0xed,0xcd,0x85 }, { 0xd9,0xf8,0xb3,0x77,0x1d,0x31,0x8b,0xc5,0x4d,0xca,0x98,0x48,0x22,0x8c,0x57,0xc4,0x13,0xfe,0xa5,0x5a,0xad,0x0e,0x2f,0x87,0xd7,0x27,0x36,0x29,0xaa,0x99,0xad,0x56,0x07,0xaa,0xd6,0x41,0xf0,0xd2,0x23,0x77,0xc6,0x55,0x15,0x57,0xfb,0x70,0xa4,0xa3,0x99,0x5d,0xe5,0x9a,0x31,0xf6,0x3c,0xb4,0xd4,0xe9,0x19,0x38,0x5f,0x5c,0x61,0xb9 }, { 0x18,0xfc,0x69,0x4f,0x6e,0x6f,0x71,0x2e,0xea,0x15,0x4f,0x24,0x50,0x8f,0xea,0x34,0xe8,0x2c,0xb4,0x97,0x16,0x4d,0x07,0xd7,0x0f,0x1f,0xed,0xc0,0x1d,0xe3,0x14,0xfe,0x17,0x22,0xfe,0x25,0xc6,0x47,0x75,0x33,0x74,0x83,0xdc,0xb1,0x08,0x03,0xf7,0x92,0x07,0x91,0xfd,0x27,0x49,0x4b,0x40,0x05,0x15,0x56,0xcc,0x14,0x63,0xf9,0x20,0xd4 }, { 0xf4,0x1d,0x7f,0x4b,0xb5,0xe5,0x04,0x30,0xcf,0xe0,0x8c,0xf8,0xb5,0xe2,0xee,0x0a,0xb6,0x3b,0x99,0x98,0xa4,0x3d,0x1f,0xc5,0x84,0xb6,0xb8,0xec,0x2b,0x51,0x91,0x78,0xe6,0xa6,0x69,0xbe,0xbd,0x9a,0xf8,0xd6,0xf1,0x04,0x6d,0xe3,0xfa,0xa8,0x23,0x47,0xab,0x49,0xac,0xc3,0x69,0x19,0xe1,0xf9,0xa7,0xa1,0x66,0x5d,0xca,0x6a,0x35,0x51 }, { 0x51,0xa3,0x90,0x38,0xf7,0x86,0xca,0x3f,0x7a,0x26,0xbd,0x1d,0xb8,0xdc,0x5f,0xc0,0xf2,0xe9,0x37,0x73,0xb7,0x3c,0xb5,0x2f,0x01,0x51,0xf4,0x9e,0x21,0x8a,0xed,0xab,0xd9,0xb5,0x5a,0x87,0x80,0x0c,0x47,0x5b,0xec,0x91,0x86,0x19,0xb5,0xf7,0x4b,0x77,0xec,0xe3,0x47,0xbd,0xcf,0xe7,0x76,0xfb,0x6a,0xd6,0xcd,0x6d,0xca,0x37,0xbd,0x69 }, { 0x3b,0x23,0x69,0xff,0x19,0xdd,0xd5,0x91,0xf8,0x5b,0xc3,0xda,0x38,0x81,0xec,0x45,0x0d,0x80,0xe9,0x1b,0xd6,0x61,0x6f,0x3d,0x2a,0x93,0x7e,0x10,0x8f,0x08,0x9b,0x4b,0x5d,0xf1,0x02,0xec,0xb2,0x9a,0x76,0x2c,0x2d,0x22,0x21,0x3d,0xd2,0x7d,0x78,0x76,0x39,0x70,0xe7,0xb0,0x27,0x23,0xe7,0xc1,0xf0,0x65,0x55,0x6f,0x67,0xf0,0x0f,0x4f }, { 0xad,0x9c,0xf5,0x81,0xd0,0xda,0x05,0x2f,0x28,0xe3,0xbb,0x2b,0x68,0xa6,0x47,0xe8,0x30,0xdb,0x48,0x13,0x81,0x52,0x30,0xec,0x56,0xde,0xf1,0x69,0xb8,0x13,0x45,0xd1,0x07,0x30,0x40,0xaa,0x2c,0xd0,0xea,0x2b,0xb0,0x97,0xe2,0xaf,0x4c,0x33,0x9d,0xc4,0x48,0xa6,0x5f,0xae,0x37,0x8d,0x98,0x90,0xf8,0x2e,0xdc,0x29,0x15,0xbb,0x61,0x3f }, { 0xec,0xa3,0xee,0xf0,0x04,0x55,0xb4,0x06,0xc7,0x66,0x10,0x93,0x24,0x9b,0xff,0x8f,0x99,0x7c,0xd0,0x6e,0x99,0x9c,0x10,0x20,0xbb,0x18,0x0b,0xc7,0xb8,0x35,0x2a,0xa1,0x9e,0x6b,0xc2,0x81,0xe7,0x8c,0x25,0xb8,0xf6,0xb8,0x63,0xf3,0x7c,0xa7,0x90,0x07,0xa8,0x35,0x9b,0x39,0x9b,0x78,0xed,0x23,0x85,0xf3,0xad,0x39,0xec,0xc1,0x2e,0xa3 }, { 0xd6,0x03,0x3b,0x0b,0xc2,0x7e,0x2d,0x66,0x2f,0xc2,0x9c,0xc3,0xee,0xc7,0x85,0x36,0xd0,0x99,0x9e,0x18,0xbd,0x75,0xc9,0xfe,0x39,0xdf,0x7c,0x60,0x04,0x1b,0x18,0x88,0x90,0xc5,0x90,0x4a,0x78,0xa0,0x0d,0xc9,0xb0,0xdd,0xa2,0x1c,0xcf,0x9b,0xcb,0xfe,0x91,0x2f,0x71,0x4e,0xcd,0xd8,0xc0,0x48,0xff,0xab,0xfd,0xaf,0xb2,0x1f,0x8a,0xb8 }, { 0x5c,0x97,0x69,0x9d,0x44,0xb7,0xda,0xff,0xcb,0xa2,0x14,0xb7,0xfb,0x45,0xea,0x98,0x46,0x8f,0x41,0xce,0x1b,0x0d,0xad,0x7b,0xfd,0x94,0xa8,0xb6,0x1a,0x93,0xd0,0x3f,0x47,0x37,0xa3,0x53,0xa4,0xcb,0x0f,0xb1,0x23,0x8f,0xf9,0xa6,0xca,0x28,0xf2,0xec,0x20,0x68,0x0f,0x32,0x74,0x53,0x61,0x59,0x67,0x49,0x9c,0xa9,0x0e,0x6f,0x2b,0xa7 }, { 0xc5,0x2c,0xdb,0xd2,0x40,0xa5,0x74,0x54,0xfa,0x40,0x8d,0x48,0x2a,0x36,0xb8,0x8f,0x53,0x46,0xef,0x29,0xd7,0xda,0x75,0x7d,0xe7,0x43,0xdd,0x98,0x47,0x8b,0x4b,0x85,0x76,0x31,0x70,0x59,0x7b,0xbb,0x4e,0x8f,0xb3,0xc5,0x14,0x75,0x1d,0xbe,0x49,0x22,0xa9,0xad,0xab,0x85,0x7d,0x70,0x5c,0xb0,0xcf,0xb5,0x39,0xe6,0xb1,0x65,0x48,0x88 }, { 0xc5,0xa0,0xda,0xf9,0x51,0xcc,0x4b,0xa3,0x3c,0x90,0x7e,0x0b,0x4f,0xff,0x24,0xc2,0x8a,0xbf,0x89,0x68,0x1b,0x3d,0x39,0x16,0x93,0xf6,0xff,0x74,0x54,0x82,0xfc,0x47,0x05,0xeb,0x39,0xe8,0x76,0x7e,0x41,0x48,0x93,0x26,0x82,0x2f,0xfd,0x71,0x43,0x36,0x6c,0x22,0x62,0x67,0x7b,0x18,0xd6,0xab,0x10,0x51,0xd5,0x13,0xb1,0xfa,0x6d,0xaa }, { 0x4a,0x5b,0x50,0x66,0x12,0xa6,0x77,0xa6,0x57,0x88,0x0b,0x3a,0x18,0xa2,0xe9,0x02,0xe9,0xa5,0x21,0xb0,0x74,0xca,0x01,0x41,0xa8,0x4a,0xa9,0x39,0x75,0x12,0x21,0x8e,0xeb,0x13,0x46,0x1c,0xea,0xc0,0x89,0xf1,0xc4,0x26,0x04,0xfb,0xe1,0x62,0x7d,0x40,0x62,0x6d,0xb1,0x54,0x19,0xe2,0x6d,0x9d,0x0b,0xea,0xda,0x7a,0x4c,0x4f,0x38,0x40 }, { 0x21,0xb5,0x6b,0x13,0x5b,0x35,0x60,0xcf,0xed,0x6c,0x87,0xb8,0x64,0x80,0xf6,0x54,0xe2,0xcd,0xa8,0x3d,0x08,0xcb,0x3a,0xf4,0xf9,0x60,0xa2,0x84,0xad,0x48,0xf2,0x31,0xe7,0xcf,0x6f,0xbf,0x8a,0x45,0xec,0xc1,0x2b,0x94,0xdb,0x9e,0x3a,0x90,0xaf,0xb0,0xbb,0xf3,0x05,0xf1,0xc9,0xe1,0x17,0xd0,0x04,0x40,0x77,0xee,0xc7,0xf1,0xbc,0x99 }, { 0xcc,0x8f,0xe9,0xec,0xcc,0xda,0xf5,0x43,0x52,0x14,0x73,0x14,0x3e,0xb3,0x37,0xc5,0xda,0x74,0xbe,0x4d,0x84,0x55,0xb6,0x7c,0x1b,0x68,0xed,0xcc,0xbf,0x8d,0x58,0x42,0xc2,0xa5,0xd0,0x1c,0xd9,0xf2,0xfc,0x3f,0x75,0xce,0xc6,0x14,0x0b,0x91,0xfb,0x77,0x5d,0xf1,0x59,0x2d,0x45,0x86,0x77,0xc8,0x56,0x7e,0x1a,0xc9,0x48,0x71,0x00,0xc7 }, { 0x80,0x1d,0x62,0x83,0x24,0xd4,0x3e,0x4b,0xf0,0x5b,0xe0,0x83,0xd4,0xcd,0x7b,0x8e,0xfa,0x9f,0x36,0xa8,0xb4,0x83,0x0e,0x67,0x87,0x43,0x17,0xd5,0x5d,0xfa,0x0f,0xf1,0x00,0xc6,0x9b,0xc8,0x95,0x14,0x17,0xdb,0x0f,0x54,0x07,0x9d,0x1a,0xf3,0x2f,0xc8,0x21,0x12,0x3a,0x63,0x3c,0x12,0xc1,0x48,0x78,0x64,0x9b,0xdc,0x88,0xb8,0x28,0xf8 }, { 0x11,0xc8,0x81,0x39,0x08,0x23,0xd8,0xce,0x80,0x06,0xb5,0x0f,0x37,0xe8,0x62,0x61,0x71,0xb0,0xb9,0x6c,0xbc,0x11,0x84,0xde,0x23,0xf3,0x89,0xbe,0x0c,0x37,0xda,0x54,0x82,0xf5,0xca,0x51,0x67,0x26,0xbd,0xa3,0xa4,0x2a,0xaf,0x13,0xca,0xf6,0x1a,0xe4,0xb3,0xe3,0x2b,0x21,0x38,0x4d,0x2a,0xdf,0x56,0x7c,0x65,0x14,0x08,0xee,0x3d,0xf5 }, { 0x3e,0x4c,0x52,0x66,0x93,0xe1,0x13,0x1c,0xce,0xdb,0xbf,0xd2,0x93,0x02,0xdf,0xd8,0x00,0xc7,0xde,0x96,0x6d,0x8b,0xe7,0x9c,0x58,0xf5,0x8f,0xcf,0x86,0x9d,0x11,0xe0,0x7d,0x67,0xa0,0x95,0x6e,0xbb,0x32,0x1f,0xc9,0x95,0x4c,0x30,0xd4,0xe5,0x5f,0xa9,0xa3,0x04,0xcf,0x85,0x47,0x82,0x8a,0x95,0x6b,0x03,0xcd,0xfd,0x81,0xa2,0x77,0x85 }, { 0x9c,0x7a,0x4e,0xfa,0x52,0xa3,0x26,0x80,0x67,0x6e,0x37,0xe7,0xfc,0x8b,0x8d,0x71,0xcb,0x4c,0xb3,0xa7,0x2a,0x5c,0x98,0xea,0x35,0x5c,0x95,0xa1,0xfd,0x69,0x8f,0x73,0xa2,0xc4,0xa7,0x1a,0xb2,0x15,0x0c,0x7b,0x16,0xc4,0x24,0xc1,0xd0,0xad,0xe6,0x9b,0x94,0xb0,0x7c,0xd5,0xea,0x87,0x9e,0x7c,0x12,0x24,0x43,0xbd,0x12,0x0c,0xf1,0x42 }, { 0x96,0x3f,0x28,0x09,0x69,0x99,0x23,0x4c,0x0e,0x78,0xb4,0xd6,0xf2,0x4d,0x21,0x6e,0xbf,0x69,0x08,0x64,0xbd,0x1d,0x73,0x26,0x68,0x70,0xe3,0x2d,0x2a,0x6d,0xa8,0xd8,0x49,0xe5,0x3c,0xec,0xdc,0x6c,0xb8,0x6c,0x0a,0xee,0xbd,0x23,0x0b,0x29,0x0a,0x42,0x9c,0x5a,0x82,0x26,0xe4,0x60,0x1e,0x9a,0x4d,0xee,0x63,0x94,0x9e,0xd8,0xb0,0x14 }, { 0x2e,0xb3,0x91,0x0b,0xde,0x2a,0xb9,0x95,0x01,0x2c,0x29,0xdf,0x8b,0xbe,0x0f,0x50,0x32,0xc3,0xb2,0x57,0x43,0x28,0xe5,0xf7,0x66,0x28,0xd8,0x37,0x00,0x8e,0x2d,0xf0,0x3f,0x29,0xc0,0x23,0x37,0x47,0x4b,0x3a,0x77,0xd3,0x7d,0x34,0x8d,0xa4,0x99,0x9f,0x95,0x40,0xd1,0x20,0xec,0xf6,0x5f,0x49,0x09,0x10,0xcc,0x4e,0xd2,0x74,0xea,0xae }, { 0xb6,0xd9,0x84,0x98,0xd3,0x9b,0xd0,0x33,0x80,0x75,0x38,0xe8,0xf0,0xc3,0xf1,0x6c,0xb7,0xfd,0x10,0x70,0x31,0xee,0x6f,0x11,0x7b,0xc9,0x86,0xf7,0x0d,0xfe,0xa7,0xf8,0x28,0xc7,0x1c,0x23,0xf7,0x6b,0xbe,0xe7,0xd1,0x61,0x75,0x28,0xdc,0xa8,0xd6,0x2e,0xf1,0xe9,0xdd,0x50,0xd4,0x75,0x82,0x6f,0xc9,0x1f,0xcb,0x05,0x36,0x52,0xbd,0x06 }, { 0xd3,0x2e,0x85,0x1a,0x25,0xc9,0x65,0xc2,0xfb,0xa2,0xf5,0xbd,0xf8,0xf0,0x48,0x26,0x10,0xec,0x71,0x96,0x90,0x52,0x5d,0xb1,0xfe,0x39,0xd9,0xac,0xa1,0xdc,0x42,0x8e,0x6b,0xec,0x05,0xa1,0xfc,0xc5,0xd6,0x4e,0x45,0xcc,0x6d,0x22,0xa9,0x8a,0x83,0x40,0x31,0xf5,0x8d,0x90,0x46,0x94,0xf7,0x68,0xb5,0x51,0xd5,0xb5,0x01,0xcf,0xe1,0x58 }, { 0x7e,0xfa,0x75,0x6e,0x13,0x04,0x1a,0x9f,0xa6,0x11,0x39,0x63,0xe2,0x5c,0x5b,0x88,0xcb,0xa4,0x1a,0x23,0xf3,0xa1,0xa3,0x10,0xfa,0x7c,0x38,0x17,0x0a,0xab,0xed,0x91,0x95,0x11,0xca,0xe2,0x47,0x79,0x7e,0x83,0x30,0xaf,0x25,0xfb,0xde,0xaa,0x15,0x1e,0xdc,0xef,0x54,0x5e,0x70,0xc6,0x28,0xe5,0x80,0xa3,0xa5,0xe9,0xf8,0x0f,0xcf,0xe4 }, { 0xe6,0x44,0x04,0x1c,0x2e,0xd2,0xcf,0xf4,0xf5,0x4d,0x07,0x46,0x44,0x9c,0x03,0x31,0xc6,0x81,0x31,0x27,0x79,0x80,0x0d,0xbf,0x71,0xfc,0x28,0xe6,0xe4,0x2f,0x66,0x2d,0xbc,0x79,0xff,0xb9,0xde,0x66,0x5a,0xcf,0x4b,0xa0,0x05,0x0d,0x00,0xc7,0xb4,0xd0,0x52,0xe1,0x67,0x8f,0x91,0x7f,0xd7,0xc0,0x67,0x11,0xc1,0x1d,0x66,0xe6,0xd5,0x91 }, { 0xad,0x2f,0x10,0x77,0x29,0xd2,0x67,0xb0,0x71,0x95,0x98,0x6e,0xa2,0xa3,0xe6,0x47,0x3a,0x5a,0xe2,0xbf,0x5d,0x99,0xb7,0x30,0xe2,0xf4,0xc0,0xdc,0x88,0xd7,0x30,0x7f,0xc2,0xae,0x72,0xe2,0xf8,0xed,0x6b,0x2b,0x81,0x65,0x3e,0xf8,0xcb,0x87,0xa8,0x5f,0x76,0xdf,0xeb,0x71,0x7f,0x04,0x0e,0x16,0x37,0x5e,0x15,0x54,0xdb,0x82,0xd9,0xe6 }, { 0xa6,0x26,0xc3,0xf3,0x11,0xcb,0x53,0x15,0xb5,0x9f,0x52,0x27,0x2c,0xa6,0x06,0x4b,0x4c,0x28,0x7d,0xfb,0x6f,0x6e,0x6a,0xad,0xdd,0x03,0x08,0x72,0xb7,0x31,0x4c,0x65,0xbb,0x88,0x2a,0x6b,0x99,0x0e,0xc0,0x4c,0xd9,0x49,0xb7,0x81,0xe9,0xef,0xc6,0x24,0xee,0x36,0x5b,0xd6,0x80,0x35,0x52,0x3a,0xb6,0x60,0x7d,0xb5,0xa6,0x3f,0x19,0x19 }, { 0xba,0x09,0x99,0x0f,0x12,0x05,0xf0,0xfb,0x8d,0xb6,0xb6,0x73,0x05,0x9e,0x51,0x03,0x5f,0x10,0xd3,0xd4,0xfb,0xbb,0x19,0x30,0x51,0x1f,0x03,0x82,0x65,0xe4,0x52,0x1d,0xaf,0x9a,0xcc,0xf6,0x5e,0x62,0x95,0x7a,0x18,0x91,0x4e,0x3a,0x87,0x1d,0xbf,0x5a,0xa0,0xc9,0x2f,0x5a,0x81,0x35,0xfe,0x9f,0x63,0x07,0xbe,0x34,0xd9,0x83,0x69,0xd5 }, { 0x3a,0x6e,0xcd,0x0d,0x40,0x8a,0x61,0xa7,0x08,0x12,0x5b,0xe5,0x7f,0x85,0x58,0x55,0x7a,0x28,0xc8,0xc2,0x0c,0x25,0xd8,0x16,0xab,0x0c,0x92,0xff,0x7b,0x13,0xef,0x39,0xcd,0xa1,0xd0,0x46,0xa3,0xf7,0xd3,0xbc,0x86,0xed,0x82,0xf9,0x7d,0x4e,0xc1,0x77,0x8c,0x1d,0x69,0x92,0xab,0xce,0xc1,0xaa,0xd4,0xe0,0x54,0xb8,0x3c,0x80,0x0e,0x18 }, { 0x7e,0xf2,0xee,0x3c,0x5c,0x79,0x2a,0x0c,0x0f,0xef,0x63,0x35,0x22,0x4d,0x94,0x28,0xa7,0xd2,0xc9,0x8f,0x67,0x43,0x33,0x3e,0xc7,0x39,0xa5,0xea,0x3e,0xcc,0xa7,0xe0,0xaf,0xb6,0x86,0x27,0x30,0xac,0xc0,0x11,0xa4,0xf6,0x7f,0x51,0xd5,0xe6,0x09,0xdb,0x81,0xb2,0x14,0x50,0xdf,0xbd,0x3d,0x20,0x30,0x2b,0x22,0xdd,0x55,0x2a,0xc0,0x94 }, { 0x20,0x66,0xba,0x0f,0x9e,0x41,0x0a,0x4d,0xf7,0xf5,0xa3,0x65,0xc6,0x17,0x38,0xe8,0x60,0x5c,0x57,0xdd,0xa7,0x7f,0x33,0xfc,0x14,0x8d,0x0b,0x15,0x8e,0xbb,0x5f,0x58,0x69,0xcb,0x2a,0x15,0x5a,0x82,0x86,0x1e,0x21,0x1d,0xa3,0x1f,0xd0,0x87,0xc4,0xcc,0x0e,0xe7,0xc0,0x86,0x75,0xbf,0x5d,0x98,0xcb,0x89,0x23,0x02,0xbc,0x41,0x28,0xb7 }, { 0x06,0x46,0x47,0x24,0x86,0xe6,0x8d,0xb1,0x93,0x53,0x9d,0xef,0x69,0x86,0xc7,0x6b,0x5e,0x88,0x0b,0xe5,0x0c,0x09,0x22,0x3c,0x6d,0xb0,0x2c,0x92,0xab,0x89,0x6d,0x0f,0xf1,0xf4,0xee,0x22,0xfe,0x70,0x63,0xbb,0xf2,0xb3,0xf5,0xce,0xf9,0x04,0x7c,0xfe,0xdb,0x1b,0x89,0x5d,0xc6,0x3b,0x4f,0x90,0x90,0xd7,0x45,0x08,0xa4,0xf5,0x28,0xea }, { 0x0c,0x70,0xa2,0xdb,0x2f,0xcb,0x76,0xd5,0x26,0xdf,0xae,0x6d,0x4f,0x13,0xc4,0x79,0xce,0xbd,0x1c,0xf4,0xe9,0x9e,0xa5,0x28,0xfd,0x72,0xbd,0x9e,0x55,0xb4,0xde,0x73,0x96,0x80,0x45,0x5c,0x56,0x24,0x66,0x30,0xf9,0x85,0xc3,0xaf,0x5b,0x08,0x58,0x8b,0xc1,0x44,0xb6,0x84,0x04,0x36,0x42,0xa0,0xc3,0xeb,0x0a,0x46,0xff,0x84,0x7f,0x42 }, { 0x0d,0x42,0xe1,0xf1,0x52,0x92,0xfc,0x71,0x2e,0xa7,0x13,0x54,0x4f,0xf0,0x3f,0xd1,0x7b,0xeb,0x46,0x7e,0x38,0x4d,0x57,0x0b,0x69,0x9c,0x58,0x4d,0xa8,0xd5,0x82,0x5e,0xad,0xda,0x2b,0x0a,0x21,0xf6,0x9a,0xcb,0x2c,0x1f,0x17,0xa5,0x5a,0x85,0xca,0x7e,0x0c,0x4c,0xb2,0xec,0x4b,0x43,0x40,0xcb,0xed,0x18,0x08,0x97,0x7a,0x89,0x46,0xb3 }, { 0x61,0x02,0x26,0xd3,0x67,0x41,0x98,0x26,0xce,0x31,0x90,0xb6,0xb8,0xd3,0x5a,0x4d,0xb3,0x97,0x9e,0x45,0xf0,0xca,0x0f,0x82,0x24,0x36,0x83,0x62,0xf9,0xcb,0xbc,0xcc,0x08,0x33,0x0f,0xf4,0x42,0x99,0xdd,0xc6,0x3b,0x7e,0x2c,0x73,0xd6,0x58,0xff,0x73,0xfb,0x21,0x50,0x0b,0xa2,0x1f,0x81,0x24,0xe1,0x7f,0xaf,0x78,0x9e,0xcd,0xfb,0x69 }, { 0x44,0xdc,0x4d,0x9e,0x94,0x5c,0x7d,0xb2,0x0e,0x19,0xd0,0xc2,0x8f,0x9a,0xe7,0x51,0x8c,0x3b,0x0d,0xa6,0xf6,0x84,0x40,0xe7,0xf9,0xc1,0x8a,0x46,0x9a,0xd7,0x80,0xb2,0xdb,0xeb,0x91,0x87,0x45,0xc2,0xf9,0xc9,0xf8,0xfd,0x19,0xdc,0x68,0x3f,0x5f,0x95,0xb4,0x77,0x75,0xe1,0xc2,0xce,0xc3,0x9d,0x91,0x43,0x74,0x13,0xab,0x93,0xb1,0x1e }, { 0x69,0xe6,0x26,0xe9,0xf1,0x8c,0x4d,0x6d,0x4b,0x5c,0x83,0xdf,0xe1,0x7e,0x9b,0xf9,0xf2,0xa6,0xe4,0x3a,0x63,0x00,0xb3,0x66,0x50,0x35,0x7e,0x1a,0x24,0x02,0x86,0x6b,0x80,0xbc,0xf8,0x7c,0xda,0x7e,0x1c,0xc6,0xbb,0xaa,0x56,0xdf,0xc2,0xfb,0x99,0xa9,0xdd,0x88,0xdf,0xc3,0xeb,0x54,0x18,0xda,0x6b,0x4c,0x87,0x19,0x1f,0xb6,0x3f,0x28 }, { 0x0e,0x51,0x41,0x64,0x21,0x64,0x0a,0xeb,0x57,0x80,0x25,0x54,0xeb,0x5f,0xa7,0x7a,0xa9,0xcb,0x53,0x52,0x99,0x75,0xe0,0x4a,0x67,0x01,0xf0,0x90,0xec,0x49,0xe8,0x53,0xcf,0x33,0x1c,0xea,0x65,0x90,0x54,0x69,0x27,0x8e,0xb4,0xa5,0x3a,0x91,0x03,0x0d,0xf5,0x68,0x39,0x41,0x90,0xc9,0xee,0x36,0x33,0x6e,0x3d,0x13,0x76,0x40,0x5c,0xb2 }, { 0x71,0xee,0x26,0x50,0xc3,0x69,0x8c,0x50,0xc9,0x5c,0x65,0xa9,0xb2,0x94,0x68,0xfe,0xe5,0x21,0x70,0x75,0x73,0x0e,0x05,0x5a,0xb7,0x0d,0xac,0xe7,0x06,0xd5,0xd9,0x00,0x15,0x77,0x87,0x2d,0x1b,0x7b,0x6a,0x0f,0x27,0xc9,0xc5,0xa4,0x72,0x33,0x50,0x1f,0xdc,0x92,0x7c,0xd9,0x49,0x2c,0xd7,0xc8,0x99,0x86,0x72,0x88,0x78,0x70,0x23,0x21 }, { 0x85,0x25,0xd0,0xb3,0xef,0x76,0x31,0x42,0x83,0xd8,0x64,0x0f,0x8d,0xb5,0x63,0xd5,0x43,0xe1,0x7e,0x0a,0x27,0x10,0xf1,0xa2,0xbf,0x7f,0xba,0xdb,0x5a,0xb7,0xaa,0x65,0x0e,0x63,0xa7,0xe1,0x11,0xf9,0x1f,0xd6,0x06,0xcc,0x43,0x1c,0x1e,0x67,0x69,0x76,0xd0,0xdf,0xcc,0xc1,0x92,0x3f,0x09,0x2a,0xf9,0xbe,0x83,0x0f,0xdd,0xe8,0x64,0x8c }, { 0xfd,0xfa,0x85,0xc7,0x83,0x54,0xa1,0xc8,0x9f,0x9a,0xdb,0x71,0x59,0x80,0x0c,0xc7,0xed,0x1d,0x11,0x45,0x5f,0x59,0xb0,0x9f,0x23,0xdf,0xa8,0x40,0xc6,0xce,0x9c,0xea,0x7c,0xf5,0x8a,0x53,0x8f,0xf8,0x72,0x60,0x8d,0x18,0x85,0x08,0xdf,0xa3,0xf6,0x93,0xcf,0xd0,0x80,0x72,0xab,0xe3,0x4f,0xcd,0x25,0x7f,0x21,0xe2,0x0b,0x43,0x86,0x19 }, { 0x1b,0x3e,0x00,0xb3,0x20,0x97,0x11,0x12,0xb3,0x9e,0x7d,0x76,0x65,0xbc,0x22,0xd4,0xd8,0x43,0x28,0x93,0xc3,0xd8,0x18,0x0f,0x29,0xdd,0x16,0xed,0x04,0x4c,0x1b,0x21,0x9b,0x44,0x25,0x43,0xfa,0xf3,0xe2,0xd2,0xf1,0x13,0x25,0xd9,0xc0,0xdf,0x76,0x84,0x4f,0xff,0x41,0xa9,0xf0,0xb6,0xa9,0xe9,0x8d,0xe2,0x40,0x14,0xb7,0xf5,0x94,0xc7 }, { 0x49,0x4a,0x50,0xb3,0xbd,0x47,0x40,0xde,0xd6,0xb8,0x08,0xc5,0xbe,0x6e,0x57,0x68,0xea,0xac,0x8c,0xa9,0xb2,0xe2,0x87,0xad,0xd7,0x2e,0x5c,0x89,0x0f,0x1b,0xd8,0x07,0xdd,0x42,0xbf,0x86,0x3f,0x04,0xdd,0x0f,0x2e,0x67,0x6c,0x4f,0x24,0x5e,0x7e,0xce,0xf2,0x72,0x33,0x9e,0xfe,0x3e,0x3b,0x06,0xb9,0x89,0x39,0x4d,0xae,0xf6,0x42,0x35 }, { 0x77,0x84,0x68,0xf5,0x25,0x2b,0x48,0xe4,0x89,0x9d,0xb9,0x39,0x59,0xf2,0xe8,0x76,0x26,0xdd,0xc4,0x75,0xbb,0xfa,0x75,0xb7,0xc8,0x28,0xbb,0xee,0x5a,0xb9,0x00,0x65,0x43,0x34,0x1a,0xb1,0x0e,0xb3,0x9c,0xa0,0x6f,0x65,0x13,0x6a,0x7f,0x01,0xe2,0xe9,0x27,0xbb,0xca,0xef,0x00,0xac,0xda,0xaf,0xc8,0xf7,0x6a,0xa2,0xf2,0xd7,0x9f,0xf1 }, { 0x80,0xf8,0x7b,0xf7,0xd7,0xdb,0xd4,0xde,0x8e,0x68,0x6a,0x2d,0x9a,0x79,0x04,0x88,0x7e,0x90,0x45,0x9a,0x30,0x07,0x53,0x4b,0x5e,0x3f,0x2d,0x8e,0x8f,0xf0,0x95,0x10,0xff,0xdb,0x7e,0x53,0xda,0xa6,0x41,0x13,0xce,0xb1,0x36,0xd7,0x8f,0xe2,0x44,0xad,0x9b,0x86,0x26,0xbe,0x51,0xba,0xa5,0x7f,0x0b,0x15,0xbe,0x19,0xa2,0x58,0x94,0xd1 }, { 0x69,0xe7,0x7a,0x9d,0x3c,0xee,0x42,0x19,0xd9,0x94,0x30,0x3e,0x95,0xd1,0xfd,0x5f,0x6a,0x04,0x36,0x72,0x9a,0xab,0x9a,0x1f,0x7b,0xb4,0xed,0xa6,0xfe,0x06,0xaf,0x8c,0xec,0x2d,0x23,0x4b,0xbb,0x9a,0xf4,0x79,0x17,0xff,0x14,0x03,0x00,0xd6,0x13,0x9c,0xda,0x40,0xaf,0xe6,0x90,0xa6,0x65,0x26,0x77,0x5d,0x04,0x8a,0x1f,0x94,0xba,0x69 }, { 0x22,0x4a,0x02,0x29,0x9e,0xec,0xc9,0x9a,0x06,0x34,0xa7,0x86,0xf1,0x16,0x44,0x57,0x79,0xc3,0xbb,0x5b,0x55,0x01,0xd2,0x67,0xf0,0x69,0x9b,0xf9,0xe2,0xf2,0xb7,0x34,0xfa,0x41,0xa8,0xd2,0x9b,0x6d,0x22,0xb4,0x14,0x9a,0x08,0xad,0x87,0x1d,0x7f,0xff,0x07,0xb7,0x04,0xb6,0x73,0xc7,0xaf,0xd0,0x84,0x0f,0x58,0x54,0x91,0xec,0x7f,0xdf }, { 0x3b,0xfe,0xcd,0x33,0x2c,0x18,0x46,0x5d,0x23,0x84,0x49,0xdd,0x23,0x8c,0xa7,0x89,0x09,0x35,0xa0,0x57,0x1f,0x87,0x20,0x1b,0x9d,0x75,0x3f,0x5a,0x85,0x2f,0x2d,0xd4,0xf3,0x66,0x05,0xf0,0x3f,0xb6,0xa9,0x76,0x43,0xa7,0x15,0xbb,0xdd,0xd0,0x5d,0xba,0x32,0x3e,0x83,0x2d,0xbe,0x60,0xb4,0x18,0x61,0xc7,0xd6,0x76,0x8a,0xe0,0xe1,0x5d }, { 0xaf,0xd3,0x5b,0x35,0xbe,0xa5,0xbd,0xa1,0x76,0x0f,0x78,0xb8,0xaf,0x6b,0x22,0x61,0xe3,0x10,0xd1,0x0e,0x19,0x6e,0x11,0xde,0xa8,0xdf,0x3d,0xae,0x19,0x91,0xe6,0x07,0x03,0x55,0x5f,0x48,0xe2,0x04,0xe9,0x94,0x96,0xd8,0xee,0x26,0x6b,0x81,0xec,0x93,0xba,0xb7,0xd9,0x87,0x21,0x55,0xaf,0x41,0x5e,0x0b,0x73,0xbc,0x43,0x08,0x12,0x6f }, { 0xfe,0xcf,0x95,0xe1,0xd7,0x36,0x09,0xbf,0xd4,0xb1,0xb3,0x22,0x92,0xb4,0x47,0xbb,0x1d,0xf8,0xf1,0x23,0x4a,0x9e,0x0a,0xfb,0x78,0x96,0x88,0x57,0xa5,0xae,0x39,0x38,0x43,0x5a,0xed,0xf6,0xe2,0xd3,0x53,0x96,0x4c,0x78,0x7d,0x42,0x84,0x1d,0x1b,0x87,0x18,0xc9,0xc2,0xa4,0x4e,0xc6,0x19,0x49,0xfd,0x1d,0x4d,0x5b,0x2c,0xe9,0x16,0xe3 }, { 0xe5,0xce,0xac,0x40,0x35,0xeb,0x49,0x55,0xa0,0xc7,0xcc,0x97,0xb5,0x61,0x75,0xd5,0x05,0x17,0x4d,0xa4,0x2f,0x93,0xe6,0x8f,0x7e,0x16,0xcc,0x51,0xf0,0xb9,0xa0,0x0a,0x66,0x0c,0xb9,0x30,0x1f,0xcd,0x56,0xb9,0x85,0x4a,0x45,0x9c,0x33,0x96,0xd1,0xe4,0x8c,0xed,0xdb,0x75,0x86,0xfe,0x79,0x4f,0x15,0x7f,0xf8,0x0e,0x67,0x98,0x4a,0x57 }, { 0x43,0x0e,0xbc,0xf6,0x3d,0x89,0xbe,0xf4,0x4d,0x86,0xa6,0x89,0x73,0x14,0xf6,0x93,0x88,0x61,0xab,0x37,0xed,0xc8,0xbe,0xef,0x0f,0x28,0xa5,0x95,0x14,0xc2,0xef,0xb1,0x58,0xde,0x2c,0x43,0x39,0xe4,0xbf,0x9d,0x72,0x5c,0xf7,0x90,0xa3,0x94,0xb5,0xde,0x83,0x31,0xbc,0xb3,0x9a,0x3b,0xb2,0x1a,0x45,0xdd,0x5a,0xe0,0x3d,0x83,0x93,0x91 }, { 0x0e,0x41,0x5c,0x46,0x2b,0xe6,0x79,0x02,0x8e,0xc6,0x4f,0xd2,0xa2,0xb7,0x5f,0x9c,0x94,0x49,0x95,0xa2,0x7d,0x32,0x9c,0x76,0x4f,0x55,0x6d,0xb2,0x23,0x43,0x75,0x0b,0xc3,0x05,0x6e,0x71,0x77,0xf9,0x84,0xe2,0x27,0xbc,0xa2,0x10,0x77,0xf8,0xcd,0xdc,0x6e,0xf6,0x91,0xa4,0x5f,0xf7,0xec,0x06,0xa6,0x09,0x7c,0x15,0xbe,0xcd,0x56,0xcc }, { 0xb0,0xb8,0xf5,0x97,0x43,0x6c,0xd8,0x53,0xe3,0x1f,0x35,0xc0,0x59,0x60,0x84,0x80,0x16,0x8c,0xa4,0xc4,0x86,0x3a,0x3e,0x26,0xa4,0x5a,0xd4,0x95,0x5b,0x68,0x9b,0x4c,0x4a,0x04,0xbb,0x42,0x13,0xa5,0x61,0x60,0xfb,0x70,0xed,0xf8,0x6e,0x60,0xbf,0x47,0x1c,0x84,0x5f,0x76,0x47,0xf9,0x01,0x34,0xff,0x67,0x7b,0x27,0x43,0x52,0x02,0x4b }, { 0x4a,0x89,0xa6,0x14,0x57,0x37,0x4b,0x4c,0xcd,0xb5,0xd1,0x11,0xb5,0x64,0x93,0xfe,0x16,0x7d,0x5e,0xe4,0xd1,0x04,0x1c,0xe2,0xea,0x60,0x65,0xad,0x77,0x89,0xb8,0x4d,0x45,0xb0,0x4e,0x87,0xed,0x48,0x0d,0x5c,0x08,0xc2,0xea,0x97,0x9f,0xe6,0x77,0xe6,0xa7,0x2e,0x28,0x06,0x34,0x71,0x19,0x99,0xef,0x9b,0x7d,0x7f,0x01,0x8e,0x3e,0xa8 }, { 0x73,0x51,0xf3,0x86,0x6b,0x10,0xa0,0xc0,0x6c,0x35,0xb1,0x21,0x09,0xa3,0xeb,0x22,0x73,0x74,0x26,0x64,0x59,0xcd,0x8d,0xa9,0xa5,0xc1,0xdc,0x83,0xd0,0x20,0x56,0x6c,0x8c,0x0d,0x26,0x40,0xd5,0xdd,0x83,0xf3,0xa4,0x6a,0xb4,0x98,0x93,0xda,0xc9,0x1a,0x7a,0xbb,0x7a,0x82,0xaa,0xeb,0x4d,0x56,0x6d,0x77,0xbd,0x2b,0x85,0x50,0x17,0x1f }, { 0x55,0xb6,0x6e,0x6d,0xc5,0x86,0x29,0x6f,0x8a,0xa4,0xbb,0xa0,0xae,0x54,0xdd,0xc7,0x3b,0xdb,0xbc,0x48,0x8e,0x7c,0xdb,0x08,0x20,0x04,0x9d,0x03,0x64,0xe1,0x1f,0x7e,0x90,0x43,0xa9,0x1f,0x1d,0xd1,0x41,0x9b,0xc3,0x86,0xcc,0x04,0xcc,0xa2,0x23,0xeb,0xcc,0xfe,0x61,0x06,0x21,0xb5,0x94,0xf9,0x04,0xbd,0xdc,0x67,0x1c,0x77,0xd0,0x76 }, { 0x27,0xd5,0x01,0x13,0x5f,0x84,0x61,0x77,0x70,0x95,0x24,0x88,0xb2,0x00,0x3a,0x1f,0xcc,0x05,0x24,0x4e,0xc2,0x22,0x55,0x5c,0x7b,0x74,0xa5,0xa8,0x82,0xdc,0x30,0x72,0xdc,0x8d,0x3a,0x7b,0x78,0xa8,0x28,0xcf,0x1d,0x33,0x7a,0xdd,0x2d,0x6a,0x69,0xa7,0xdb,0x8d,0x09,0xac,0x28,0xf2,0x8d,0x24,0x25,0x05,0x93,0x4a,0x34,0x96,0xd6,0x8b }, { 0xdb,0x3e,0xbc,0x91,0xcd,0xcb,0x79,0xa8,0xab,0x1d,0x00,0x13,0xa1,0x82,0x1a,0x0b,0x06,0x61,0x4d,0x6a,0x97,0x44,0x8f,0x01,0x20,0x46,0x40,0x0e,0xcc,0x4b,0xb5,0x06,0xa9,0x5a,0x64,0x53,0x8a,0x67,0x66,0x83,0xaf,0x1a,0x68,0x5e,0x85,0x53,0x92,0x58,0xb2,0x18,0x26,0xf5,0xe8,0xf7,0xd2,0x02,0xcb,0xdd,0x18,0x1f,0x49,0xb3,0xe6,0x0a }, { 0x78,0x1c,0xa2,0xf9,0x7a,0x42,0x9e,0xd0,0x0a,0x2b,0xd7,0x6a,0x0a,0x26,0x41,0x01,0x05,0x46,0x00,0xe1,0x5f,0x61,0xf9,0x95,0xa8,0x02,0x8d,0xff,0x36,0x00,0x07,0x5c,0xc3,0xa5,0x03,0x8c,0x48,0xee,0xc3,0x96,0x8b,0x4b,0xfd,0x26,0x4a,0x3c,0x74,0xdc,0xfa,0x71,0xf5,0xcc,0xaf,0x98,0xc5,0xe8,0x4c,0x64,0xdf,0x94,0xf7,0x0a,0xc9,0x36 }, { 0xde,0xd3,0x7d,0xd1,0x52,0x73,0x85,0x17,0xb9,0x21,0x74,0xe3,0xaa,0x64,0xa3,0xbf,0xdd,0xfa,0x9e,0x91,0xc6,0x6a,0xb7,0x02,0x4f,0x5c,0x22,0x79,0xad,0xe5,0xd1,0xb1,0xb1,0x4e,0x3c,0x5a,0x84,0xe7,0x8c,0x40,0x2b,0x3c,0xaa,0xb3,0x82,0x45,0x44,0xb8,0xf4,0x3b,0x07,0x6d,0x59,0x12,0x84,0x48,0x81,0xcc,0x77,0x77,0x12,0xc7,0x78,0xbb }, { 0x60,0xcd,0xd0,0xe2,0x45,0x8c,0xd9,0xfd,0xe6,0xc0,0x47,0x5d,0xf9,0xa4,0xce,0x6c,0x63,0xa4,0x73,0x34,0x4d,0xc7,0x17,0x83,0xc5,0x17,0x74,0x75,0xf2,0x48,0xd1,0x6e,0x0c,0x19,0x0d,0xd3,0x81,0x36,0xd8,0x14,0x12,0x27,0x76,0x54,0xb0,0x15,0x06,0x16,0x1b,0xce,0xc4,0x82,0x57,0x63,0x38,0xf8,0xc5,0xca,0x2b,0x67,0x7b,0xb8,0x56,0x58 }, { 0x24,0xa9,0xda,0x19,0xae,0x77,0x96,0x0c,0x91,0x21,0xd4,0x75,0xa3,0x75,0x21,0xfc,0xe8,0xcb,0x04,0xf3,0x70,0x5c,0xed,0xe6,0xc2,0x96,0xc3,0xb7,0x7f,0xae,0xd0,0xf7,0xd2,0xa3,0xd8,0x87,0xf5,0x9c,0x7d,0xaf,0xf7,0x03,0x7c,0xb8,0xb9,0x28,0x23,0xf7,0x67,0x0c,0xf5,0xc5,0x30,0x5a,0xcc,0xcd,0xaa,0xa8,0x39,0x83,0x6f,0xba,0xab,0x28 }, { 0xe5,0xe8,0x92,0x36,0x3a,0x31,0x88,0x5c,0xed,0xc2,0xf9,0x95,0xf3,0x6d,0x1f,0x90,0xba,0x82,0x33,0x7d,0x0b,0x1f,0xc8,0x0d,0x34,0x38,0xc8,0x4a,0x72,0xbd,0x05,0xa0,0x77,0x43,0x9d,0xe4,0xda,0x1b,0x87,0xd2,0x13,0x01,0xeb,0x01,0xe7,0x9b,0x5c,0x3e,0xca,0x73,0x99,0x5b,0x9c,0xd0,0x99,0xae,0xc9,0x36,0xde,0x2b,0xe1,0xa6,0x9f,0x5d }, { 0x08,0xcc,0x2a,0x43,0x8c,0xb7,0x98,0x93,0x1f,0x14,0x2a,0x23,0xa1,0xec,0x5c,0x5b,0x2d,0x0c,0xeb,0xa7,0xba,0x63,0x59,0x47,0x02,0xa7,0xa4,0x08,0xb7,0xcc,0xd4,0xbb,0x77,0x9b,0xf6,0x53,0xf6,0xcd,0xdd,0x51,0x3b,0xa0,0xcd,0x31,0x67,0xda,0x9b,0x0c,0xc8,0xd6,0x13,0xa1,0x4b,0xe5,0x20,0xc3,0x23,0x2a,0xf9,0xf2,0x18,0x34,0x5f,0x79 }, { 0xc8,0x27,0xed,0x76,0x3f,0xfe,0xc8,0xd1,0x44,0xd9,0x5f,0xec,0xd3,0x17,0x7c,0x78,0xfe,0x67,0x84,0xfa,0x0f,0x69,0x6a,0x51,0x0c,0x66,0x5c,0xf9,0x73,0xb4,0xdf,0x41,0x1e,0x4c,0x44,0x75,0xf2,0xda,0x5e,0xd5,0x60,0xe1,0x7d,0x7b,0x66,0xef,0x3c,0xd3,0xbf,0xe9,0xa6,0x10,0x6c,0x00,0x47,0xb3,0x2e,0x5b,0x6a,0x23,0x80,0xf9,0x1f,0x4a }, { 0x18,0x30,0xc0,0x86,0x97,0x5b,0x3c,0x29,0x97,0x2e,0x47,0xed,0x4c,0xde,0xfd,0x5d,0xf9,0x4f,0x4f,0x2d,0x38,0xac,0x71,0x0a,0x6d,0xaf,0xb2,0xf9,0x8a,0x1f,0x1c,0xd3,0x9c,0x2c,0x6f,0xfd,0x88,0xd7,0x48,0x28,0x34,0xa2,0xd6,0xfa,0x35,0x91,0x27,0x44,0xfb,0xde,0x72,0x4a,0x1e,0x8d,0xa9,0xea,0xd0,0x99,0x79,0x29,0x27,0xf6,0x4d,0x28 }, { 0xb5,0x11,0x00,0x14,0x91,0xb7,0x46,0x57,0x25,0xed,0x93,0xee,0xb3,0xc1,0x58,0x7d,0x89,0x98,0x96,0x1b,0x95,0x6e,0x7d,0xc2,0x40,0x59,0x04,0xb3,0x46,0x34,0x0d,0x60,0x9c,0x39,0x81,0xf4,0x31,0xfe,0x4c,0x46,0x72,0xab,0x89,0x9e,0xf7,0x69,0xf9,0x78,0x8f,0xb5,0x82,0xb1,0x18,0x59,0x47,0x91,0x68,0xcd,0x61,0x78,0x65,0x3e,0xca,0xa6 }, { 0x9e,0x63,0x15,0xcb,0x5a,0xb6,0x49,0x5a,0x9d,0x74,0x93,0x01,0x4b,0x85,0xc1,0x90,0x72,0xb0,0xc3,0x8d,0x51,0x2a,0xa6,0x3b,0x52,0xf6,0x0d,0x51,0x31,0x73,0x72,0x89,0xad,0xf1,0x5f,0x66,0x56,0xd6,0x24,0xed,0x97,0x6b,0xb2,0x39,0xf2,0xe5,0x1c,0xc5,0xa0,0xc6,0x76,0xce,0x90,0xdb,0xd6,0xc2,0x66,0xfd,0x79,0x09,0x43,0x0d,0x4a,0x47 }, { 0x60,0xaa,0xca,0xee,0xc4,0x0e,0x84,0x09,0x1c,0xb2,0xf0,0x31,0x48,0xe4,0x77,0x4e,0xc1,0x28,0x83,0xed,0x0e,0x4c,0x68,0x8f,0xc1,0x93,0xd4,0x79,0x67,0x8e,0x27,0xd3,0x96,0x77,0xdf,0xfc,0xc5,0xde,0xf6,0x6d,0xda,0x54,0xf7,0xc8,0x03,0xde,0x04,0xee,0x46,0xd4,0x00,0x78,0x3a,0x68,0x0f,0x4b,0xff,0x7c,0x61,0x02,0x28,0xc4,0xd2,0xde }, { 0xd6,0x23,0xf1,0xa3,0xfe,0xb4,0x5d,0x78,0x14,0x35,0x57,0x0d,0x6b,0xb2,0xf9,0x7f,0xaf,0xde,0x37,0x8d,0xce,0x29,0xe5,0x1a,0xd6,0xe4,0x18,0x9a,0xa6,0x66,0x98,0x6d,0x3a,0x26,0x61,0x62,0xd2,0xf4,0x25,0xb5,0x3a,0xae,0x1e,0x09,0x3c,0x27,0x81,0x3e,0x71,0x8c,0x85,0x23,0xbc,0xb5,0x16,0xf2,0x9c,0xee,0xb4,0xbf,0xe2,0x27,0xfd,0xa5 }, { 0xe4,0x10,0x7e,0x43,0x1e,0x22,0x1f,0x50,0x71,0xe7,0x47,0x41,0x04,0xfa,0x90,0xa4,0x53,0x12,0xf0,0xc2,0x1f,0xb0,0x84,0xde,0x21,0x57,0x99,0x92,0xfa,0xb5,0xc2,0xcf,0x1e,0x5f,0x11,0xe6,0xcf,0x70,0x1c,0x9a,0x39,0x48,0xc6,0x68,0x74,0x1c,0x2b,0x32,0x3c,0x78,0x92,0xdc,0xff,0x7b,0x24,0x10,0xd0,0x28,0x40,0x3f,0x2b,0x95,0x5c,0x2b }, { 0x77,0x4c,0x95,0xf1,0xd8,0x72,0xee,0xfc,0xf5,0x3d,0x52,0x51,0xe8,0xc9,0xc1,0xf9,0xb0,0xd4,0xb5,0x1c,0x25,0x99,0x6e,0x41,0x79,0xa0,0xc8,0x31,0xf0,0xa2,0x0b,0xb2,0xe8,0x70,0xae,0xc1,0x5f,0x87,0x12,0x2e,0xda,0x24,0x51,0x79,0x14,0x2e,0xcb,0x38,0x87,0x76,0x59,0xd2,0xd4,0x73,0x7b,0x33,0x08,0x8a,0xf9,0xfa,0xe2,0x57,0xc0,0xa4 }, { 0x2d,0x52,0x95,0xdb,0x41,0xe6,0xf8,0x39,0xa7,0x57,0xf1,0x11,0x64,0xd6,0x33,0x19,0xa0,0x65,0x4d,0x26,0x66,0x87,0x24,0x35,0x51,0x0f,0x99,0xb4,0x54,0x9e,0x7a,0x36,0xf9,0x8a,0xcf,0x28,0x06,0x80,0x72,0x32,0x3a,0xf1,0x6c,0xac,0x76,0x3b,0x38,0xc6,0xea,0x7b,0x44,0xf9,0x97,0x30,0xba,0x3b,0xdd,0xb6,0x81,0x95,0xce,0x32,0xeb,0x67 }, { 0xeb,0xcc,0xf2,0x5d,0xaf,0x54,0x99,0x13,0x47,0x22,0x98,0x23,0xdf,0xcd,0x75,0x39,0x55,0x86,0x84,0x97,0xce,0xca,0x66,0xce,0x8c,0x51,0xd6,0xff,0x46,0x37,0x4b,0x11,0xdf,0x90,0xab,0x04,0x86,0xf6,0xd4,0xac,0x08,0xa4,0x58,0x27,0xa2,0xad,0x84,0x53,0x88,0x83,0x51,0xb5,0x10,0x05,0x9b,0x6f,0x3d,0x47,0xc6,0x5d,0xba,0x39,0xd6,0x1d }, { 0x38,0x77,0x15,0x2e,0x0b,0xbf,0xf3,0x7e,0xff,0x26,0xec,0x46,0x01,0xbf,0xfc,0xda,0x32,0x24,0x2b,0xc0,0x7e,0xb9,0x86,0x97,0xcf,0xed,0x81,0x77,0x43,0xa2,0x97,0x47,0xcc,0x70,0xa7,0xf9,0x01,0x4b,0xc6,0x1a,0xbe,0x16,0x11,0x6c,0xb9,0x9d,0x37,0x30,0x9f,0xbd,0x1f,0x6e,0xcf,0xfe,0xe6,0x41,0xba,0x57,0x3e,0x25,0xf2,0x4d,0x46,0x37 }, { 0x99,0xf0,0xe4,0xfe,0x82,0xb4,0x98,0x3e,0xde,0xd1,0x0b,0xd8,0x78,0xcc,0x25,0xbc,0xe2,0xe5,0x5b,0x96,0xb3,0xa2,0xb4,0xf4,0x6e,0xd5,0x74,0x47,0x97,0xcf,0x14,0x3f,0x32,0x33,0x61,0xf5,0xa6,0x71,0xcd,0x6e,0x99,0xb7,0x54,0xc5,0x7c,0xb4,0x65,0xad,0xc1,0x2b,0xf2,0xa0,0xc4,0xc7,0xd6,0x20,0x79,0x5c,0xd8,0xed,0x8a,0x14,0xff,0xef }, { 0x43,0x7a,0x6a,0x6e,0x40,0xd0,0x45,0x69,0xa6,0x78,0x34,0x27,0x0a,0x8e,0x16,0x49,0x5e,0x3b,0xff,0xbd,0x13,0x5e,0xa7,0x9f,0x59,0x46,0x9a,0x06,0x06,0xbb,0xa6,0x54,0xc2,0x91,0x1e,0x15,0x58,0x7f,0x24,0x92,0xab,0x24,0x82,0x5f,0xf3,0x4d,0xc5,0xa0,0x14,0xa7,0xc3,0x76,0x19,0x38,0xd4,0x10,0x37,0x55,0x40,0x60,0x37,0xa7,0xc0,0xf3 }, { 0x9e,0xb2,0xba,0x6d,0x86,0x22,0x35,0x8d,0x17,0x87,0x37,0xa5,0x9b,0xf5,0xaa,0xfc,0x0d,0x42,0x45,0x23,0x14,0x07,0xaa,0xab,0xbb,0x0c,0x6c,0x3c,0x0e,0xac,0xf5,0xb5,0xc5,0xaf,0x80,0x07,0x82,0xc9,0xc9,0xc8,0x68,0x1a,0xf0,0xe7,0xe9,0x72,0x49,0x92,0x9c,0x2e,0x6a,0x3b,0x9a,0x50,0x5b,0x6a,0xf3,0x4a,0xc8,0xda,0x88,0xef,0x98,0x15 }, { 0xfa,0xa3,0x1e,0x82,0x4f,0x81,0x43,0xca,0xeb,0x2b,0x0e,0x68,0xde,0xee,0x70,0xbd,0x45,0xdc,0x5b,0x9a,0x78,0xfa,0x07,0x41,0xee,0x22,0xa6,0xa7,0xb9,0xd0,0xb2,0x2f,0xe6,0x07,0x8b,0x5a,0x59,0x8d,0xf8,0xb6,0x5b,0xa3,0xd2,0x88,0xe7,0x0d,0xb6,0x04,0xa2,0x5d,0x90,0x27,0x9d,0x58,0x6d,0x11,0x28,0x2d,0x70,0x4f,0x8b,0xd1,0x8f,0x2d }, { 0x44,0x7d,0x73,0x9b,0xee,0xdb,0x5e,0x67,0xfb,0x98,0x2f,0xd5,0x88,0xc6,0x76,0x6e,0xfc,0x35,0xff,0x7d,0xc2,0x97,0xea,0xc3,0x57,0xc8,0x4f,0xc9,0xd7,0x89,0xbd,0x85,0x2d,0x48,0x25,0xab,0x83,0x41,0x31,0xee,0xe1,0x2e,0x9d,0x95,0x3a,0x4a,0xaf,0xf7,0x3d,0x34,0x9b,0x95,0xa7,0xfa,0xe5,0x00,0x0c,0x7e,0x33,0xc9,0x72,0xe2,0x5b,0x32 }, { 0x10,0x0e,0x6e,0xed,0xf9,0xc0,0x96,0xbf,0x87,0x72,0xe4,0xc7,0x6d,0x5d,0x30,0x8f,0x35,0x8c,0xea,0x71,0xe4,0xdd,0xc7,0xfb,0x37,0xb0,0x1e,0x32,0xe3,0x2b,0xb6,0x66,0xcd,0x3a,0x7e,0x2e,0x8b,0x14,0x0a,0xbe,0x86,0x94,0x42,0x08,0x94,0xfa,0xe8,0xe8,0xba,0x5e,0x31,0xa1,0x89,0x01,0x1b,0x7c,0x77,0xf9,0xd0,0x74,0x3c,0x08,0x27,0x69 }, { 0xa2,0x63,0x91,0x9b,0x49,0x45,0xa1,0xd4,0x47,0x50,0x1f,0x2a,0x3c,0x08,0x04,0xc3,0x80,0x2f,0x77,0x9e,0xa7,0xf6,0x80,0x3a,0xeb,0x04,0x21,0x21,0x1a,0x6b,0x66,0x5e,0x87,0x32,0x00,0xbd,0x2a,0xed,0x20,0xfc,0x2e,0x9d,0x3c,0x9d,0xe6,0x0d,0x60,0xc5,0xac,0x3f,0x83,0xdf,0x4c,0x00,0xef,0xe2,0x9e,0xe4,0x04,0x00,0x30,0xbc,0xdc,0xfb }, { 0x3b,0x89,0x80,0x77,0x4c,0x5b,0x7e,0xb3,0x38,0x48,0xe7,0x53,0x83,0x35,0xac,0x06,0x3f,0x98,0x6a,0x21,0x0f,0xb2,0x49,0xe1,0x2d,0xc6,0x51,0x00,0x13,0x39,0x0f,0xff,0xf0,0x75,0x65,0x33,0xa9,0x80,0x15,0x86,0x5d,0x0a,0x49,0x5a,0x2e,0x3f,0x27,0xa7,0x4e,0x98,0x67,0xc8,0x8e,0xac,0xae,0xcc,0x3e,0x21,0xac,0x0e,0xf6,0xcd,0x45,0x3d }, { 0x28,0x90,0xd7,0x21,0xe5,0x7e,0x19,0x61,0x18,0xe6,0x3a,0xdd,0x57,0x95,0x47,0xf0,0xac,0xad,0x16,0xe6,0x3b,0xe0,0xae,0xa8,0xf6,0xf1,0xd3,0xac,0x4d,0x77,0x1f,0x0c,0x69,0xb5,0xb8,0x15,0x9d,0xdc,0x03,0x2a,0xaf,0x77,0xe1,0xd1,0x41,0x67,0x52,0xec,0x7d,0xc0,0xe7,0xf7,0x7e,0xf5,0x40,0x69,0x0a,0x57,0x28,0xec,0xb5,0x89,0x0d,0x78 }, { 0xfc,0xcc,0x9b,0x09,0xeb,0x64,0x26,0x37,0x96,0xd3,0x24,0x6f,0x5b,0xf9,0x06,0x8e,0x62,0x34,0xa6,0x6b,0xfc,0xcc,0x1d,0xe2,0xdc,0xc2,0x9d,0xe0,0x08,0x40,0x44,0xdf,0x4e,0x3e,0x13,0x0e,0xff,0xe4,0xa6,0xac,0x11,0x12,0xd6,0x85,0xa0,0x56,0x8a,0x7d,0x9e,0x64,0xa6,0x91,0xa0,0x32,0x60,0x0c,0xb3,0x46,0x5d,0x26,0xc8,0xb7,0x31,0x65 }, { 0x7b,0x8b,0x88,0x67,0xdd,0x4d,0x9c,0x6f,0x81,0x69,0x06,0x28,0x03,0x3d,0xe3,0x05,0xd4,0xe3,0xff,0x5e,0x71,0xda,0x17,0x81,0x4f,0x58,0x22,0xef,0xac,0x7e,0x9e,0x44,0x8b,0xc6,0x27,0x3e,0x51,0x16,0x80,0xb4,0x22,0x46,0x07,0x3c,0x7d,0xd5,0xad,0xb5,0x64,0x05,0x7e,0x6d,0xbb,0xd7,0x23,0x65,0x07,0x67,0x02,0x2a,0xa8,0xcd,0x12,0xc3 }, { 0xf7,0x8b,0xea,0x35,0xfa,0x88,0xde,0x2f,0xb3,0x0b,0xf5,0x8f,0x6f,0x68,0x71,0xce,0xfa,0xf4,0x72,0x0c,0x4f,0xd9,0xf3,0x43,0x90,0xf2,0xc7,0xb5,0x88,0x5a,0xdc,0x19,0x7f,0x0d,0x38,0x98,0xb6,0xeb,0x44,0xac,0xd8,0xb1,0xb8,0x5a,0xf6,0x25,0x85,0xfa,0x4c,0x91,0x2e,0x37,0xec,0x4c,0xc3,0x48,0xec,0x2b,0xf0,0x21,0x89,0x83,0x4d,0xdb }, { 0x90,0x22,0xe3,0x14,0x94,0x9c,0xcf,0x3e,0x89,0x37,0x54,0x2b,0x8c,0xde,0xc1,0x8e,0xa2,0xf8,0xd5,0x61,0x86,0x88,0xce,0x24,0x1e,0xbd,0x8b,0xac,0x13,0x7d,0xe7,0x36,0x2f,0xae,0x5e,0x4f,0x29,0x04,0xa3,0x94,0x66,0xd0,0xbb,0x04,0x52,0x26,0xce,0x08,0x7f,0x49,0x36,0x6c,0x44,0xea,0x76,0x57,0xf4,0xef,0x5c,0x08,0x44,0xc4,0x2e,0xcc }, { 0x46,0x14,0x8c,0xeb,0x0f,0x98,0x7d,0x8b,0x7c,0x79,0x18,0x1b,0xc4,0x32,0xbf,0xad,0xe8,0x0c,0xd5,0xfc,0x91,0xd3,0x43,0x2f,0x24,0x58,0x82,0xa6,0xe5,0x85,0x78,0x0c,0x24,0xa3,0xfd,0x7f,0x96,0xee,0x6a,0xef,0x5e,0x54,0xe8,0xf4,0x3a,0xe1,0x79,0x03,0xfb,0x33,0x1b,0x9a,0x0b,0xcf,0x4b,0xe4,0x89,0x29,0xf5,0x1e,0xc7,0x08,0x71,0x62 }, { 0xa7,0x76,0x63,0xf5,0xfc,0xdf,0x18,0x9c,0xc2,0x73,0x1f,0x78,0x01,0xb1,0x13,0x3e,0xe1,0x30,0xa9,0x69,0x64,0x39,0x62,0x97,0x87,0x2e,0x52,0xcf,0x75,0x7a,0x60,0x3c,0x4e,0x13,0x9c,0xbd,0xad,0xda,0xfc,0x58,0xda,0xe9,0x82,0xfa,0x54,0x76,0xa3,0x5a,0x8a,0xb8,0x6c,0x56,0x8c,0xba,0xce,0x48,0xd9,0x17,0x45,0x80,0x4c,0xa8,0xe4,0x68 }, { 0xfa,0x46,0xc8,0x94,0xce,0x8e,0x65,0x34,0x30,0xe9,0x1d,0x33,0x16,0x2c,0x16,0xc3,0xd7,0x1f,0x53,0x20,0x38,0x5e,0x28,0x2d,0x42,0xa8,0xaf,0xb3,0x7e,0xf5,0xb7,0x71,0x28,0x23,0x14,0xfc,0xe3,0x03,0x19,0x9b,0x4a,0x4f,0xb1,0x2a,0x38,0xcb,0xe5,0xf8,0xff,0xa0,0x14,0xd9,0xc4,0xaa,0x5b,0xba,0x8d,0xbc,0x56,0x6e,0x3c,0x47,0xa5,0x42 }, { 0x1a,0x70,0x98,0xd2,0xdb,0x88,0x9a,0x11,0x12,0x91,0x1d,0x29,0x65,0xf2,0x87,0x0e,0xa9,0x3d,0x69,0x6b,0xf7,0x9b,0x55,0x82,0xe8,0x3e,0x21,0x30,0x46,0x1d,0xff,0xe4,0x39,0xd4,0x74,0xf5,0xee,0x8b,0x69,0xfa,0xe5,0xa4,0x2c,0x93,0x6f,0x76,0xf3,0x27,0x68,0x68,0x27,0x83,0xde,0x26,0xb5,0x53,0xf3,0xba,0x5e,0xed,0x16,0x13,0x15,0xda }, { 0xd1,0x43,0xbc,0x89,0x17,0x6c,0xee,0x34,0x44,0x1d,0x08,0x5c,0xcf,0xfb,0x4b,0x60,0x3d,0x67,0xbb,0x14,0xf8,0xc5,0x20,0xa4,0x8e,0x56,0x71,0xd2,0x14,0x21,0x47,0xe0,0xbc,0xa7,0xec,0x3d,0x10,0x3d,0x30,0xca,0xec,0x90,0x6c,0x3c,0xd1,0xed,0xe0,0xaf,0xe4,0x37,0x74,0xd6,0x1d,0xb8,0x25,0xa3,0xf7,0xc7,0xa7,0xbc,0x1e,0xcf,0x92,0x30 }, { 0xff,0xd9,0x22,0x60,0xea,0x33,0x0b,0xb7,0xac,0x43,0xff,0x1f,0x15,0x41,0x7f,0xe9,0x1a,0x07,0x8f,0x4b,0x26,0x32,0x34,0xf2,0x84,0x10,0x0f,0x6f,0x24,0x72,0xc9,0xae,0xcf,0x4b,0x93,0xb0,0xba,0x21,0x11,0x47,0x59,0x99,0x63,0x32,0x25,0x71,0x1e,0x5f,0x26,0x3d,0x2e,0x9c,0x86,0x8b,0x8a,0x34,0xa0,0xce,0xc1,0xd8,0x66,0xd0,0x3a,0xe4 }, { 0x9d,0x34,0xba,0x66,0x5c,0xc1,0x9f,0xdf,0x9a,0xce,0x63,0x0d,0xec,0xec,0x44,0xd6,0x5b,0x66,0xef,0xf2,0xe4,0xb7,0xe1,0xc9,0x34,0x9c,0x54,0xbe,0xff,0x74,0x2b,0x25,0x50,0xd6,0x86,0x08,0x07,0x23,0x3c,0x2f,0xc9,0x29,0xdf,0xdf,0x6d,0xb0,0xd7,0xc9,0x4e,0x3d,0xc2,0x62,0x65,0x50,0xdc,0x0f,0x4b,0x4c,0x1b,0x65,0x49,0xfd,0x10,0xe3 }, { 0xc4,0x6c,0xe5,0x22,0xa3,0x17,0xe1,0xd3,0x55,0x33,0x7f,0x97,0x34,0x3a,0x7f,0x2e,0x93,0x43,0x43,0x2c,0xe3,0x87,0x19,0xe3,0x01,0xe1,0x5e,0x84,0xd6,0xf0,0xa1,0x72,0x34,0x7d,0xa2,0x69,0xbf,0x89,0x96,0xf9,0x2f,0x2a,0x1a,0x60,0x13,0x1b,0x37,0xde,0xd1,0x16,0xc6,0x2f,0xd7,0x38,0xbd,0xee,0x8f,0x20,0xab,0x5a,0x0f,0x65,0xaa,0xa7 }, { 0x73,0xba,0xff,0x04,0x19,0xed,0xa7,0x23,0x89,0x38,0x6c,0xf2,0xb5,0x15,0x6d,0xed,0xdc,0x34,0xc1,0x06,0x19,0x51,0x5e,0xb5,0x74,0x11,0x45,0xc1,0x44,0xcd,0x33,0x97,0x1e,0x97,0xde,0x63,0x49,0x77,0xac,0x5f,0x6a,0x00,0xd1,0xe8,0xc1,0x8f,0x82,0x5e,0x77,0x9e,0xf9,0x2c,0xf8,0x26,0x13,0x49,0x41,0xef,0x2a,0x13,0x9a,0xdc,0xb8,0xe4 }, { 0x9c,0xae,0xe0,0x7c,0x0a,0xd1,0xcf,0xd7,0x76,0x33,0x31,0x24,0x9b,0xb6,0x37,0x30,0x15,0x21,0x90,0x0f,0x5c,0xbb,0x9b,0x3a,0x47,0x1d,0x20,0x43,0xca,0xb3,0x4e,0x8f,0x6d,0x76,0x40,0xdf,0x41,0x4a,0xbe,0x88,0x70,0x56,0x02,0x50,0x77,0xce,0xb3,0x66,0x22,0x13,0x11,0xb2,0xf0,0xf1,0x35,0x7d,0x40,0x42,0xf3,0x86,0x89,0xb0,0xbc,0x5d }, { 0x6f,0xb5,0x45,0x63,0x91,0xba,0x43,0x05,0x36,0xca,0x35,0xad,0xa0,0xf4,0x87,0x1e,0x14,0x0b,0x55,0xdc,0x31,0x8d,0x93,0xbc,0xac,0xc1,0xfd,0x7c,0xdf,0xd8,0x36,0x18,0xf6,0x63,0xd8,0x77,0x66,0xc6,0xb8,0xa3,0xed,0x3b,0x68,0xc5,0x21,0x09,0xda,0xba,0x2f,0x1e,0x64,0x99,0xaa,0xe5,0xd3,0x3e,0x3f,0x39,0xf5,0xcb,0x02,0x43,0x06,0x26 }, { 0x0b,0xe4,0xa9,0x93,0xec,0xba,0x4e,0xd2,0x1f,0x53,0x07,0xfa,0xba,0x26,0xcd,0x6b,0xd2,0x2e,0x71,0xca,0x4a,0x12,0x62,0x4b,0x74,0x61,0xe5,0x1e,0x47,0x15,0x20,0x34,0xc2,0xf3,0xf5,0xc6,0x0e,0xce,0x68,0xf3,0xc9,0x93,0x04,0x68,0x86,0x8b,0xe7,0x72,0xf6,0x13,0x34,0xde,0x4e,0x96,0xe9,0x7c,0x0e,0xaa,0xa7,0x39,0x47,0x41,0xd2,0xa8 }, { 0xd5,0x54,0xde,0xd0,0xb2,0x86,0x21,0x13,0xa1,0x45,0xc7,0xeb,0xdf,0x98,0xe4,0xb9,0x42,0xd9,0x1e,0x70,0xb4,0x6e,0xf4,0x79,0x35,0x7b,0xdb,0x04,0x1c,0xbd,0x9a,0x71,0x74,0xb8,0xf9,0x4b,0x6c,0x36,0x70,0x8e,0xff,0x0f,0x7a,0xd4,0x5a,0xc3,0x93,0x14,0x5f,0x29,0xfe,0xa9,0xa7,0xa6,0x1c,0x99,0xa4,0x3a,0x4a,0x8b,0x3c,0x8c,0xc3,0x2e }, { 0x33,0x70,0x84,0x69,0x0b,0xd0,0x8a,0x71,0xa0,0x17,0xd3,0x8c,0x6f,0x8d,0x27,0x8b,0xcb,0x19,0xc9,0xa6,0xc3,0x33,0x9d,0x0e,0x4a,0xb2,0x61,0x63,0x19,0xdb,0x98,0x87,0x18,0x11,0x11,0xfb,0x82,0x6e,0xac,0xe2,0x06,0x51,0xf3,0x6e,0x9a,0x9a,0x52,0xbe,0x94,0x0e,0x2b,0xa0,0x22,0x79,0x4a,0x8c,0x60,0x7f,0x2a,0xfb,0xea,0xfb,0x37,0xda }, { 0xb8,0x89,0xd7,0x8b,0xcf,0x05,0xf1,0xc7,0x63,0xc4,0xe4,0x54,0x29,0x62,0x51,0x71,0x9f,0x61,0x77,0x66,0x22,0x13,0x04,0x85,0xde,0x82,0x81,0x7f,0x3b,0xe2,0x8c,0x8a,0xba,0xbb,0x0b,0x07,0xfa,0x51,0x1b,0x9b,0x18,0x2b,0xe4,0xa9,0x75,0xc7,0x00,0xea,0xdf,0xf6,0x31,0xe5,0x78,0x2f,0xb8,0xc3,0x30,0x37,0xfe,0x51,0xea,0xfd,0xf8,0x9e }, { 0xbf,0x65,0xba,0x7b,0x02,0x3c,0x74,0x4f,0xda,0x55,0xd1,0x95,0xa1,0xc6,0x24,0x16,0x9a,0x1f,0x65,0x47,0x36,0xb5,0x7d,0xc6,0x0b,0xb4,0x86,0x3e,0x0c,0x6f,0xf0,0xd0,0x47,0x1e,0x5e,0xbb,0xf1,0x5a,0x84,0x6f,0x3a,0x8d,0x95,0x75,0x09,0xb4,0x96,0x6d,0x77,0xdb,0xa4,0xc0,0xf8,0xc8,0xd9,0xdc,0x70,0x17,0x77,0x34,0x0e,0xc9,0x20,0x3c }, { 0x9c,0xf6,0x46,0xb9,0x1a,0x4c,0x25,0xbb,0xc9,0x74,0x44,0x6c,0x29,0x76,0xfb,0x98,0x26,0x83,0xbe,0xc7,0x8b,0x09,0x8c,0xb3,0x0e,0x2e,0x5f,0xb3,0x1f,0xa4,0xe3,0x3c,0x37,0xb0,0x62,0x4d,0xc1,0xf6,0x5a,0x89,0x1e,0x40,0x8e,0x25,0x8b,0x82,0x1f,0x31,0x9e,0x20,0x58,0x27,0xeb,0xc1,0x60,0x32,0x19,0xc4,0x5e,0x06,0x0e,0x0d,0x45,0x63 }, { 0x69,0x65,0xa2,0x78,0x8b,0xaa,0xf6,0xfd,0x80,0x4f,0x17,0x87,0x88,0xba,0x09,0xee,0xf9,0xaa,0xd7,0x16,0x00,0x0c,0x9a,0x0b,0xd3,0xc8,0xc1,0xc3,0x2d,0xda,0x28,0x0b,0x19,0x6f,0xd6,0xc1,0x23,0x8b,0x62,0x10,0x72,0xe4,0xe9,0x5b,0x69,0xd2,0xb6,0x76,0xf4,0xcc,0x0b,0x46,0xa5,0x53,0xaf,0x04,0x25,0x33,0x24,0xf7,0x1e,0x18,0xd1,0x86 }, { 0xfe,0x25,0x19,0x03,0xa4,0x52,0x32,0x98,0x35,0x91,0x7f,0x8d,0x55,0x47,0x84,0x4f,0x6c,0xae,0x54,0x69,0x24,0x5e,0x15,0xf5,0x8c,0x49,0x69,0x39,0xc2,0x24,0xef,0x48,0x4f,0xac,0x9c,0xac,0x97,0xca,0x9b,0xe0,0xd8,0x36,0xb9,0x40,0x5a,0x1b,0x36,0xa0,0x45,0x5a,0xaa,0xa1,0xc3,0x21,0xe4,0x08,0xae,0x69,0x60,0xa0,0x51,0x36,0xdf,0xa7 }, { 0x09,0x91,0xe2,0x85,0xd0,0xdc,0xdd,0xcb,0x75,0xb1,0x4c,0x5e,0x12,0xe9,0x2a,0xa7,0xb9,0x4b,0xbb,0x58,0x43,0x57,0x61,0xd7,0x2f,0xb6,0xb6,0xb7,0x11,0x44,0x08,0xd1,0x6c,0x4e,0x5c,0xc8,0x4b,0x89,0xdb,0xa2,0xbd,0xda,0xb7,0x2f,0xe7,0x51,0xce,0xf7,0x07,0x23,0x68,0x5e,0x89,0x85,0x3b,0xf8,0x97,0x96,0xa2,0x65,0xdf,0x54,0x80,0x1f }, { 0xcc,0x41,0x1e,0x54,0x13,0x68,0xf9,0xf2,0xe2,0xc3,0xb6,0xc3,0xf6,0x13,0x10,0x16,0xce,0xc2,0x9f,0x6b,0xbd,0xd3,0xe7,0xa5,0xbc,0xcf,0x5c,0xb6,0x4d,0x40,0x5a,0x74,0xfe,0xcb,0x81,0x2f,0xac,0x77,0x45,0x84,0x57,0x15,0x27,0xfc,0x35,0x01,0x86,0xd0,0xbe,0x4f,0xc2,0x00,0x9f,0x16,0xfb,0x0d,0x64,0x5b,0xe6,0xb6,0x18,0xd1,0xbd,0xdb }, { 0xeb,0x10,0xdd,0x19,0x8f,0x56,0x4e,0x0a,0xff,0x36,0x24,0xb7,0xcb,0x70,0x60,0x0f,0xc9,0x7f,0x23,0xae,0x37,0xf8,0x1f,0x38,0x1a,0x8c,0xf5,0x49,0xa8,0x62,0x34,0xd3,0x30,0x13,0x14,0x00,0x76,0xc0,0x37,0x16,0xec,0xc8,0x4f,0x3c,0x76,0x48,0x9e,0xe8,0xc5,0x8c,0xf0,0x52,0xcf,0xb6,0x8e,0x29,0xb6,0x16,0x95,0x5c,0x00,0x60,0x4f,0x98 }, { 0x8c,0x6c,0x92,0x3c,0xf1,0xa4,0x35,0x1c,0xca,0x35,0x6e,0xf3,0xef,0xc3,0x5d,0xe1,0x08,0x98,0x02,0x2a,0x45,0xc4,0xa1,0xb1,0x96,0x28,0x29,0x10,0xae,0xe1,0x33,0x7b,0xa1,0x25,0x6f,0xc8,0x4d,0x40,0xff,0x6a,0x5e,0xfb,0xb2,0x31,0x9e,0xaa,0x8e,0x84,0x84,0x53,0x62,0xc1,0xc6,0xdd,0xfa,0x2a,0xcb,0x45,0x1d,0x5c,0xd9,0xc8,0x4a,0xbe }, { 0xe6,0x54,0x00,0x43,0x83,0xdb,0xd6,0xb1,0x5c,0xa7,0x4a,0x29,0x9e,0xca,0xb1,0xec,0x0c,0x82,0x50,0x1e,0x7e,0xa4,0x4d,0xbe,0x40,0x85,0xce,0xb4,0x03,0xdc,0xc3,0x2b,0x1e,0x43,0x22,0x19,0x47,0xcb,0xc3,0x76,0xce,0xd3,0x0b,0xf3,0xe0,0xc9,0xc5,0x4b,0x12,0x46,0x30,0x6d,0x4f,0x5e,0x00,0xcf,0x79,0xe3,0x78,0x63,0x64,0x57,0x89,0xdf }, { 0xcc,0x80,0x51,0x49,0x68,0x03,0x58,0x14,0x58,0xf1,0x17,0x73,0x45,0x4a,0xc4,0x00,0x92,0xad,0x76,0xbf,0x83,0xea,0x74,0xc4,0x04,0x01,0x46,0x1d,0x36,0xdf,0x9b,0x92,0xd5,0x67,0x00,0x99,0x10,0x40,0x27,0xfc,0x79,0xbe,0x9c,0x37,0x35,0xc9,0xe7,0x2b,0xf6,0x1b,0x38,0x67,0x16,0x23,0xac,0xfa,0x08,0x6b,0x67,0x62,0x37,0x18,0x9e,0x89 }, { 0xf8,0x1f,0x5b,0xe3,0x8b,0x8c,0xa5,0x34,0xe8,0xa5,0xc7,0x93,0x8d,0x18,0xdf,0x9e,0x0d,0x23,0x89,0x66,0xf7,0x4e,0x1a,0x6b,0x82,0x6f,0xad,0xc0,0x52,0x3b,0x71,0x6d,0xdc,0x7f,0x49,0x32,0x9c,0x1f,0x06,0xdf,0x1d,0x56,0xd2,0x9d,0x38,0x0e,0x03,0x28,0x66,0x07,0x58,0x50,0x3a,0x87,0x83,0x30,0x46,0x40,0x02,0xf5,0x12,0x63,0x24,0x01 }, { 0x26,0x49,0x93,0x99,0x22,0x78,0x09,0x11,0xfe,0xf8,0xa6,0xca,0xf0,0xe4,0xb6,0x0c,0x79,0x08,0x12,0xe2,0x59,0xb9,0xef,0x40,0xc8,0xc4,0xf9,0xec,0xdd,0xef,0xbc,0xe5,0x60,0x45,0x65,0x91,0x8b,0x9a,0x59,0x13,0x93,0x0d,0xe9,0x58,0x7a,0x28,0x6e,0x26,0x8d,0xfa,0x13,0x47,0xd7,0xfe,0x86,0x57,0x87,0x22,0xc4,0xe0,0x97,0xe9,0x62,0x41 }, { 0x74,0x59,0xe7,0x72,0xc2,0x9c,0x4c,0x3f,0x15,0x8e,0xa7,0x62,0x80,0xd6,0x31,0x82,0x0e,0x4e,0x1a,0x71,0x3b,0xd0,0x57,0x25,0x46,0xe0,0xc5,0x27,0x90,0x78,0x95,0x39,0x89,0x2b,0xc7,0xf5,0x18,0x34,0x44,0xea,0xec,0x7e,0x8e,0x85,0x8a,0x2e,0xc1,0xa9,0x38,0x3a,0xf5,0xe0,0x4f,0x7d,0xb3,0x91,0x3c,0xdf,0x5a,0x47,0x14,0x39,0xd9,0x7f }, { 0x8d,0x45,0xea,0xc6,0x82,0xd4,0x99,0xd7,0x0e,0xa9,0x23,0xfb,0xf3,0xfe,0xae,0x66,0x71,0xcd,0x1e,0x0d,0x3a,0x10,0xb2,0x01,0x7a,0xb7,0x1b,0x91,0x85,0xda,0xf0,0x2c,0x23,0xe8,0x91,0xb1,0x0a,0xf5,0x7c,0x77,0xd2,0xc3,0x3a,0x54,0x14,0xc7,0x87,0x01,0xba,0x1c,0x48,0xdf,0x02,0xf3,0x78,0xed,0x85,0x09,0x79,0x65,0xdd,0xab,0x52,0x88 }, { 0x2e,0x1c,0x7c,0x38,0x3d,0x7f,0x84,0x92,0xc6,0x04,0xc9,0xf8,0x7d,0x2e,0xfd,0x3f,0x34,0x5e,0x4f,0xd9,0x5b,0x88,0x81,0xc4,0xf4,0x72,0x7e,0x8c,0x8e,0xf2,0xdf,0xe7,0xc6,0x29,0xdc,0x2b,0x09,0xf0,0xbe,0x26,0x6d,0x9f,0x45,0x29,0xff,0x7e,0xa8,0xf1,0xc2,0xd7,0x47,0xd6,0x67,0xb0,0xc5,0xbd,0x3f,0x85,0xcc,0xa2,0xc5,0x5e,0x5f,0x2a }, { 0x19,0x8e,0x8e,0x0d,0x55,0x7c,0xf5,0xc0,0x07,0x26,0x23,0x66,0xab,0xd5,0x40,0x79,0x42,0x1a,0xd5,0x01,0xd7,0x54,0x80,0xa8,0x28,0xde,0xf5,0xd2,0x0c,0x7e,0x50,0x41,0xbe,0x79,0x98,0x27,0x0d,0x79,0x6a,0x31,0x6e,0x23,0xa6,0xae,0x01,0xec,0xeb,0x27,0x64,0x1f,0xe1,0x55,0x86,0x54,0x9b,0x88,0x27,0x12,0xe4,0x3a,0xb7,0x32,0xe3,0x92 }, { 0x8c,0x86,0x79,0x9b,0x36,0xe7,0xd5,0x19,0xe6,0x31,0x38,0xa9,0x02,0x28,0xdc,0x28,0x02,0x2f,0xc1,0x9d,0x84,0x29,0xb0,0x19,0xac,0xeb,0xe8,0x33,0xf2,0xf2,0x18,0x73,0x5c,0x0c,0x2c,0x12,0xa5,0xa3,0xe8,0x5d,0x61,0xce,0x9f,0xe4,0x75,0xa2,0x72,0xd1,0x5d,0xbf,0x43,0x06,0xe8,0x61,0xf0,0xec,0x89,0x05,0xb7,0xd7,0xe5,0x15,0x91,0x40 }, { 0x56,0x48,0x33,0x3b,0x6f,0xc5,0x93,0x2a,0x4c,0x85,0x60,0x50,0xa0,0xd3,0x8c,0x07,0x49,0x83,0xdb,0xfb,0x54,0x79,0x8a,0x52,0x10,0x7d,0x20,0xbf,0xba,0xa5,0x5c,0x3e,0x2b,0x38,0xf6,0x16,0x0a,0x59,0x05,0x93,0x1f,0xc2,0xb9,0xe2,0x1d,0x5e,0xb3,0xd7,0xbb,0x6c,0x66,0x7b,0x2e,0x9d,0x9e,0x47,0x92,0x8b,0xca,0x20,0x4c,0x0d,0x5f,0xc0 }, { 0x85,0x68,0x54,0x74,0xd7,0x7e,0x08,0x48,0x23,0x97,0xf4,0x63,0xe5,0x3c,0xde,0x1d,0x02,0x2e,0xca,0x56,0xc3,0x91,0x5c,0x97,0x8e,0xd9,0xc7,0xe7,0x87,0x35,0x4b,0x7a,0x20,0xb5,0x0e,0xb5,0x0b,0xf5,0x87,0xb6,0xee,0xbc,0x91,0x3b,0x2a,0x6f,0x72,0x87,0x06,0xa8,0x91,0xdc,0x1f,0xd6,0xfd,0xbd,0x89,0x54,0x40,0x2b,0xd1,0x6e,0x04,0xc6 }, { 0x38,0x46,0x52,0x19,0x05,0x72,0x89,0x08,0x53,0x98,0x63,0x16,0xbf,0xdb,0xc9,0xfd,0x0d,0x19,0x6e,0x7e,0xfc,0xf7,0xdb,0xde,0xf2,0x67,0x1a,0x1f,0x3d,0xe5,0x1d,0x50,0x47,0x55,0xec,0x8f,0x8f,0x43,0xfe,0x95,0xc8,0x2e,0x14,0x9a,0x24,0x9c,0x01,0x5a,0x8f,0x02,0x09,0xee,0xd2,0x5f,0x88,0x17,0x18,0xb3,0x97,0x5c,0x4d,0x25,0xda,0x69 }, { 0x80,0xec,0xab,0x9f,0x02,0xb4,0xcc,0x6c,0x69,0x1e,0xc7,0x7b,0x5a,0xf1,0x69,0x4c,0x45,0xfa,0xf0,0x84,0x3c,0x53,0x44,0xc1,0x18,0x6c,0x5a,0xe0,0x46,0x43,0x45,0xe7,0xf4,0x24,0x14,0x8a,0xca,0x6d,0x55,0xc6,0xfb,0x5f,0xc8,0xf8,0x3e,0x19,0xfc,0x84,0x32,0xe5,0x00,0xca,0x5b,0xcc,0xdb,0xb4,0x97,0xa3,0xde,0x52,0xe0,0x42,0xe3,0xef }, { 0xed,0x84,0x57,0x67,0x35,0xea,0x00,0x52,0x04,0x82,0x1d,0x1c,0x09,0x50,0xa2,0x71,0x7c,0x92,0xfe,0xf0,0x54,0xcf,0xce,0x06,0x7e,0x01,0xfc,0x37,0xc3,0xd0,0x44,0x5b,0x7b,0x29,0x9b,0x77,0x68,0xfa,0x3a,0x0e,0x20,0x31,0x70,0x43,0x36,0xbf,0x7c,0x52,0x30,0xed,0xc8,0x25,0x4e,0xc9,0x06,0xb6,0x43,0x32,0x5b,0x5b,0xa7,0x81,0x94,0x03 }, { 0xe1,0x5d,0x0f,0x23,0x21,0xce,0xcf,0x44,0x33,0xf1,0xc0,0xb1,0x84,0x3e,0xff,0x4f,0x5d,0x13,0x9a,0x21,0x2f,0x6b,0xc0,0x3d,0x25,0x40,0x30,0x65,0x74,0x36,0x2b,0xd4,0x9a,0x84,0xcb,0xe2,0x70,0x7e,0xc2,0x2e,0xc1,0xbf,0xe0,0x39,0x30,0x8b,0xe3,0x26,0x23,0xed,0x4b,0xf8,0xa4,0x46,0x82,0x69,0xbe,0x6a,0xcc,0xda,0xaf,0xb4,0x6f,0xb8 }, { 0xc2,0x9e,0x51,0x15,0x0b,0x04,0xfc,0x53,0x68,0x74,0xe0,0x4c,0xbf,0xf2,0x25,0x61,0x45,0xb8,0x6b,0x02,0x36,0x23,0x9e,0x67,0x5c,0x78,0x38,0x2d,0x30,0x7e,0x95,0xbe,0xa6,0xc6,0x8b,0x5f,0x71,0xdc,0x4a,0x70,0x13,0x9a,0x50,0x3e,0xdc,0x98,0xcf,0xc7,0xd7,0x36,0xa4,0x56,0x4f,0x5b,0x1f,0xad,0x69,0x41,0xc1,0x59,0x2f,0xbc,0x64,0x0b }, { 0xe7,0xa3,0x88,0x89,0xdd,0xb5,0x55,0x3d,0x58,0xf9,0x41,0x87,0xdc,0x6d,0x34,0xdc,0x5b,0x42,0x73,0xb9,0x28,0x40,0xcc,0x66,0xd3,0x76,0xb9,0x3b,0x36,0x9f,0x9c,0x65,0x54,0x37,0xb5,0xba,0xb1,0x21,0x91,0x72,0x08,0xe3,0x7b,0x26,0x19,0x21,0x45,0xbd,0x58,0xa2,0x2b,0x94,0x18,0x7d,0x1a,0xb7,0x3b,0x1b,0xe4,0xe0,0xac,0xa7,0xee,0x5c }, { 0xff,0x0b,0x4d,0x27,0xc4,0x9f,0x1b,0x23,0x71,0xa8,0x22,0x49,0xff,0xc8,0xb3,0xdb,0x01,0xa4,0xc6,0x4b,0xd4,0x94,0xa0,0x08,0xeb,0x38,0x6c,0xe3,0xb9,0xba,0x89,0xba,0x06,0x20,0xc2,0x3c,0xcb,0xa6,0x96,0x74,0xc7,0xb3,0x6f,0xa4,0x50,0xa9,0x0a,0xbd,0x8b,0xa2,0x29,0xcc,0x1d,0x59,0x0d,0xe0,0x11,0xa6,0xd7,0x41,0xc9,0x08,0x0e,0xb6 }, { 0xc1,0xae,0xd7,0xe4,0x17,0x03,0xaf,0xba,0x03,0x12,0xb0,0x01,0xb9,0x0d,0x7f,0xb9,0xeb,0xb0,0x99,0x93,0x74,0xa0,0x7f,0x90,0x2b,0x5f,0xd6,0x43,0x1f,0x6b,0xe9,0xec,0x43,0xd9,0x3d,0x38,0xc9,0x8e,0x03,0xd3,0xe7,0xd6,0x24,0xb0,0x56,0x44,0x0f,0x84,0xa0,0xfc,0x07,0x18,0x88,0x75,0xd0,0x49,0xc3,0x4b,0xd0,0x5d,0xd1,0x9a,0x3e,0xd8 }, { 0x11,0x36,0xb7,0x59,0xc1,0x2b,0x3b,0x11,0xb3,0x19,0xe5,0x2d,0x6b,0xf9,0x59,0x7d,0x9e,0x36,0x07,0x55,0x46,0x15,0x62,0x2a,0xdd,0xc6,0xdc,0x1b,0x12,0x37,0x8c,0x16,0x7d,0xec,0x0f,0xcf,0x45,0x16,0x8f,0xdd,0x09,0xf0,0xab,0xc6,0x0f,0xe9,0xec,0xb2,0x96,0x14,0xaa,0x28,0xe7,0x51,0xcc,0xe3,0x79,0xf5,0x9b,0xd0,0xb3,0x48,0x81,0x27 }, { 0x12,0xa8,0xd7,0xe0,0xf2,0xa8,0x3c,0xa0,0xbf,0xe2,0xc2,0x9c,0x94,0x3b,0x7c,0xba,0xf8,0xdc,0x60,0xc0,0x56,0x15,0xf7,0x73,0x00,0xaf,0x25,0x68,0xad,0xd9,0xd9,0x63,0x6f,0xd5,0xea,0xb3,0x27,0xcd,0xb6,0xbe,0x3f,0xd1,0xf7,0xfd,0x73,0xd0,0x81,0xee,0x93,0x86,0x80,0x9f,0x5d,0x35,0x9e,0xa0,0xa8,0x3e,0x17,0xa8,0x3e,0x71,0xa9,0x5b }, { 0x11,0xf1,0xf5,0x73,0x81,0x59,0x98,0x4d,0x08,0x6f,0x8c,0x11,0xb6,0x44,0x50,0x72,0xd9,0x5c,0x41,0x0a,0x18,0xd0,0x14,0x5f,0xd0,0xe6,0xda,0xff,0xf3,0x4d,0x39,0x77,0xab,0x98,0xc1,0xb5,0x79,0xc0,0xb9,0x85,0xcb,0x82,0x9f,0x87,0xd3,0xa7,0x48,0xc7,0x93,0x7e,0x95,0x3f,0x3d,0xc6,0x82,0x06,0x14,0xbc,0x90,0xea,0x00,0x15,0x4b,0x71 }, { 0x75,0x00,0xde,0x43,0x23,0x7e,0x11,0x6e,0x3c,0x30,0x01,0x03,0xdf,0x23,0x5f,0x07,0xe2,0x90,0xa2,0xc8,0xf2,0xb1,0xa8,0x12,0xad,0xc9,0xbe,0xc8,0xd7,0x9b,0xe6,0x13,0x97,0x4c,0x2c,0x10,0x10,0x0e,0xf7,0x51,0xe3,0x09,0x28,0x4e,0x81,0xc1,0x93,0xe0,0x81,0x86,0xe9,0x45,0x94,0x9e,0x20,0xee,0xec,0xf4,0xee,0x3e,0x20,0x8c,0xb9,0xa5 }, { 0x93,0x4c,0x89,0xb9,0xaa,0x1c,0xdc,0x48,0x9b,0x80,0x18,0xb7,0x5e,0x7d,0x25,0x86,0x95,0x3b,0x9a,0x77,0x9a,0x2e,0x61,0x3f,0xbe,0x84,0x0c,0xa8,0x4d,0x6a,0x6a,0x96,0x85,0x6a,0xf4,0xff,0xbc,0xca,0xf4,0x0a,0x45,0x16,0xd6,0xd6,0xb3,0x1b,0x2e,0x9d,0x10,0x7d,0x2d,0xf0,0xe2,0xe4,0xca,0x9f,0xeb,0xef,0x14,0x85,0x33,0xd8,0x38,0xed }, { 0xca,0x7d,0x50,0xc1,0xec,0xbe,0x9a,0x88,0x70,0x2e,0x4e,0xc0,0x84,0xfa,0x11,0x42,0x30,0xce,0x97,0x71,0x1a,0xe0,0x0f,0xb9,0x8a,0xfe,0xb2,0x8a,0xd5,0x48,0x16,0x95,0x92,0x30,0x29,0xc4,0xbd,0xb6,0x95,0x0a,0xe3,0x27,0xd0,0xb4,0x6e,0xfb,0x35,0x9b,0x9a,0x36,0x1c,0x76,0xeb,0x10,0x26,0xdb,0xfd,0x81,0xc0,0x34,0x64,0x49,0x33,0x20 }, { 0x4d,0x00,0x88,0x5c,0x9a,0x9d,0xf2,0x15,0x8f,0x58,0x32,0x66,0x5c,0xda,0x09,0xc3,0xa8,0x03,0x0f,0x01,0x8d,0x3a,0x35,0x11,0xfe,0xbf,0x5e,0xa4,0xac,0xc5,0x06,0xc8,0x3f,0x85,0x3c,0x3a,0x96,0x71,0xc7,0xf2,0x14,0xc0,0x47,0x44,0x09,0xfe,0x88,0xa1,0x45,0xd1,0x7a,0xca,0xa5,0x6c,0xe1,0x33,0xd4,0xfa,0x66,0x0e,0x18,0x35,0xaa,0x2c }, { 0x40,0x30,0xc0,0xd8,0x4e,0xf6,0xb7,0xab,0xcd,0xc6,0x0a,0xb0,0x10,0x9f,0xc0,0xaa,0x24,0xb3,0x47,0x21,0x5b,0xaa,0x26,0xab,0x9f,0xba,0xac,0x53,0x92,0x35,0xfa,0xcd,0x50,0x57,0xf2,0xa1,0x14,0xb8,0x58,0xac,0xb6,0xc5,0xf4,0x33,0x42,0xd3,0x4b,0x8f,0x44,0x00,0xf6,0x32,0x4f,0x08,0x0b,0xd0,0xdf,0x37,0x2b,0x69,0xa3,0x34,0xd3,0x07 }, { 0x0d,0x2b,0xf2,0x8b,0xa7,0xc2,0xa5,0x1a,0x90,0xf5,0x73,0xa8,0x25,0x89,0xf1,0x8e,0x07,0xe5,0x0a,0xb0,0x17,0x86,0xdf,0x70,0x9c,0x76,0x2e,0xf1,0x94,0x3e,0x83,0x2a,0x0c,0xac,0x3f,0x43,0x13,0xbd,0x00,0xac,0x70,0x87,0xa1,0x0a,0x94,0xb4,0xe7,0xed,0x27,0xec,0x9d,0xb9,0x60,0x55,0x14,0x46,0x48,0x26,0x3a,0xf1,0x5b,0x20,0xd3,0x7c }, { 0x24,0x1a,0x29,0x27,0x92,0x70,0x79,0xc0,0xd0,0x32,0x09,0xc5,0xc4,0x24,0xec,0xf8,0xee,0x0e,0xd0,0xea,0xde,0x47,0x40,0x79,0xdb,0x86,0x33,0xde,0xe3,0x9b,0xcc,0x99,0x7a,0x77,0x4e,0xcd,0x87,0x41,0x6c,0xfb,0x53,0xa1,0xeb,0xaa,0x33,0x55,0xa6,0x5b,0xb6,0x31,0x90,0x8e,0xf3,0x8e,0x66,0xf9,0x92,0xf9,0x40,0x96,0x81,0x38,0xf0,0x0a }, { 0x84,0xfe,0xed,0xc3,0x62,0x0e,0xba,0xd8,0xfb,0xe9,0x21,0x8b,0xf8,0x9d,0xb7,0x61,0x0b,0x63,0xf0,0x6c,0x8f,0x9b,0x68,0x56,0xfe,0x43,0xbd,0x70,0xa3,0x83,0x05,0xbd,0xf1,0x99,0xbb,0xd5,0xa9,0xc7,0xc1,0x65,0x4a,0x3f,0x5b,0x5c,0x17,0xda,0x39,0x48,0x25,0x68,0xe1,0x2d,0xdb,0x32,0xc5,0x3b,0xff,0xf4,0x1f,0xf8,0x60,0x73,0xbb,0xa9 }, { 0x69,0x79,0x92,0x45,0xfd,0x6c,0x18,0xbf,0xa2,0xbc,0xa1,0x7a,0x6f,0x9e,0xbe,0x05,0x46,0xbb,0x4c,0x2b,0xe3,0x80,0x3f,0x1f,0x4d,0x4f,0x7f,0x21,0x91,0x60,0x5e,0x7b,0x97,0xc7,0xfd,0x92,0xad,0x38,0xc8,0xd6,0x76,0x65,0x3a,0x0d,0x8f,0x3e,0x8b,0x07,0x5d,0xaa,0x75,0xdf,0x7b,0xfa,0xc7,0x5d,0x3c,0xe1,0xe2,0xf2,0xda,0x50,0x01,0xf0 }, { 0x5d,0x89,0x08,0x86,0xcb,0x47,0x5b,0xd4,0x21,0x50,0x18,0x71,0xdf,0xd7,0xfd,0xeb,0x3c,0x39,0x9f,0x34,0xf0,0x3e,0x03,0xf0,0x58,0x25,0x54,0xa2,0xa1,0xfa,0xaf,0x83,0x97,0x09,0x38,0xbd,0x84,0xa2,0xf6,0x9a,0x46,0xb1,0x4d,0xef,0x6c,0xb0,0x61,0x6d,0x75,0x5b,0x71,0x79,0x21,0x46,0x33,0xd2,0x49,0x84,0x13,0xff,0x2c,0xe3,0x1f,0xba }, { 0x0b,0x7d,0xe3,0xd2,0x46,0xb4,0x6e,0x58,0xa2,0x5c,0x0d,0xd9,0xba,0xcd,0xe3,0x1b,0x1c,0x11,0x54,0x21,0xde,0x3a,0x6d,0x52,0xd6,0xac,0x5a,0xdd,0x91,0x10,0xea,0x49,0xf9,0x2b,0x4c,0x58,0xc8,0xca,0xa1,0xd4,0x8e,0xb5,0x01,0xa9,0x1a,0x82,0x33,0xaf,0xb8,0xc3,0x52,0x4e,0x95,0xcb,0xed,0xcf,0x13,0x83,0x96,0x08,0x1f,0x16,0xf8,0xa6 }, { 0xa6,0xe1,0xc5,0x81,0x46,0x99,0xe6,0x9c,0xf5,0xd7,0x48,0x45,0x41,0x0e,0x16,0x29,0x1b,0xc3,0xca,0xfc,0x16,0x40,0xd3,0x5e,0x06,0x04,0xc5,0xb8,0xbd,0xff,0x88,0x74,0x0c,0x25,0xae,0x34,0xdf,0xa8,0x27,0xe6,0x24,0xb1,0xe0,0xa9,0xef,0x5a,0x2e,0xfd,0xb7,0x89,0x99,0x9f,0x38,0x12,0xb2,0x14,0x18,0x85,0xd8,0xef,0x93,0x07,0x6d,0xaf }, { 0x18,0x08,0x71,0x08,0xb7,0xc1,0x6d,0x3e,0x13,0x21,0x73,0xc0,0x62,0xb6,0x14,0xca,0xbb,0x12,0xcd,0x5c,0xbe,0xf1,0xbe,0x07,0x45,0x48,0xef,0xf8,0x34,0x80,0x57,0x0a,0xdc,0x87,0x3c,0xff,0x3d,0x9d,0x42,0x46,0x51,0x3e,0x11,0xed,0xea,0x79,0x36,0xe3,0xbc,0x52,0x88,0xf3,0x47,0x6d,0x5b,0x0b,0xb6,0x16,0xe0,0x09,0xbd,0xea,0x89,0x4f }, { 0xbc,0xac,0xf7,0x1d,0xf5,0x63,0x02,0xbc,0xc4,0x79,0x1b,0x5b,0x4b,0x8b,0x2a,0x24,0xc3,0xf9,0x9f,0x8e,0x86,0x22,0x58,0x1c,0xd8,0x9b,0xac,0xbd,0xa1,0x75,0x40,0x05,0x2e,0x5a,0x35,0x99,0x3a,0x28,0xbe,0xd1,0x28,0xf5,0x28,0x39,0x7f,0xff,0xa8,0x15,0x83,0xf1,0x43,0x26,0x52,0xc7,0x54,0x3a,0x4d,0x37,0x01,0xc4,0x68,0x4d,0x2d,0xd7 }, { 0x8a,0x53,0x5f,0x56,0x6e,0xc7,0x36,0x17,0xf5,0x62,0x2d,0xf4,0x37,0x37,0x13,0x26,0x9e,0x4c,0x35,0x87,0x4a,0xfd,0xf4,0x3a,0xae,0xe9,0xc7,0x5d,0xf7,0xf8,0x2f,0x2a,0x04,0x55,0xc0,0x84,0x68,0xb0,0x8b,0xd7,0x37,0xe0,0x28,0x19,0x08,0x5a,0x92,0xbf,0xcd,0xe5,0x33,0x86,0x4c,0x8c,0x76,0x69,0xc5,0xf9,0xa0,0xac,0x22,0x30,0x94,0xb7 }, { 0x22,0xb7,0xa0,0x70,0xd6,0x8c,0x1e,0xb7,0xbe,0x4d,0xbe,0x03,0x5d,0x87,0xc7,0x6b,0x95,0x9d,0x39,0x87,0x24,0x3c,0x75,0xc2,0x73,0x2b,0x22,0x3d,0xfb,0x0e,0xfa,0xf3,0xc2,0xc2,0x65,0x9e,0x9b,0xf8,0x23,0xc7,0x0d,0x1f,0xda,0xfa,0xdd,0x8c,0xec,0xc0,0x15,0xc9,0x16,0x7c,0x3a,0x04,0x53,0xd4,0x30,0x2f,0x1f,0xe8,0xbc,0x52,0x3e,0x5f }, { 0x4e,0xaf,0xa1,0x7a,0x88,0x81,0x4d,0x84,0xd3,0x6e,0x2c,0x60,0x48,0xbd,0xfa,0x17,0x57,0x99,0xc8,0xf1,0x94,0x19,0x14,0x9b,0xe8,0xb0,0x43,0xc4,0x01,0xcd,0x7f,0x36,0xa4,0x79,0x74,0xd8,0x51,0xec,0x20,0x1f,0xee,0x45,0x53,0x15,0x27,0xef,0xc4,0x7b,0x50,0x36,0xa5,0x8c,0xad,0x45,0x43,0xd2,0xc7,0x78,0xc6,0x4a,0x0b,0x2d,0x1c,0x43 }, { 0x93,0x9a,0x02,0x7d,0xfc,0xa3,0x7d,0x88,0x96,0x9a,0x0a,0x65,0xf4,0xbe,0x3e,0xd1,0xc1,0x24,0x9e,0xf7,0x92,0x3c,0x55,0x22,0x61,0xa1,0x17,0x2c,0xd3,0x6e,0x5b,0xb6,0x47,0x0e,0x93,0x41,0x2f,0x18,0x4d,0x6e,0x40,0x25,0x00,0xef,0x32,0x0b,0x07,0x13,0x52,0x0c,0x38,0x2d,0x58,0xde,0xa6,0x12,0x8f,0x52,0x8e,0xe1,0x94,0xe4,0xf9,0x9b }, { 0xc6,0x12,0x2f,0xc4,0x4f,0xbf,0xdb,0x25,0xcd,0xa9,0xe4,0x96,0xcd,0xf1,0xc5,0x89,0x71,0xdc,0x98,0x7a,0x8f,0xeb,0xc7,0x65,0xcc,0x31,0x9d,0x54,0xb9,0x62,0x14,0xfb,0xea,0x20,0x5b,0xec,0x83,0x43,0xac,0x41,0x90,0x31,0xc9,0x86,0x88,0x77,0xf9,0x1f,0x08,0xa6,0xe4,0x8c,0x1e,0x27,0x1f,0x8a,0x37,0x02,0xbd,0x8f,0xb7,0xad,0xff,0xf7 }, { 0xbc,0x88,0xdc,0x31,0x6e,0xf7,0x3e,0xa7,0xe7,0x50,0x8e,0x08,0x78,0x4d,0xbe,0x8f,0xf0,0xd0,0xa4,0x24,0x72,0xa6,0x62,0x0d,0xa6,0xb8,0xf6,0xc6,0x8f,0xcf,0x07,0x44,0x76,0x2f,0x2e,0xdd,0xa5,0x01,0xa5,0x6e,0x90,0xc8,0x46,0xb5,0xd1,0xbe,0xc7,0xab,0xc9,0x11,0xee,0x85,0x98,0xef,0xa2,0x79,0xb7,0xa8,0x99,0xe4,0x61,0xea,0xa2,0x15 }, { 0xb6,0xd9,0x40,0x22,0xc1,0x81,0x21,0x37,0x24,0xb4,0x04,0x2c,0x13,0x01,0x9f,0xda,0x6f,0x4f,0xff,0xdd,0xee,0x86,0xb9,0x87,0xe9,0x7b,0xe9,0xed,0x0e,0x9d,0x6b,0x84,0x93,0xff,0x3f,0x41,0x62,0x92,0x87,0x23,0x86,0x34,0x47,0x88,0x84,0xd7,0x7a,0xd3,0xc2,0x32,0x73,0xea,0xec,0x4f,0x38,0x2a,0xe1,0xbc,0xaa,0x0f,0xbc,0xa7,0xcb,0x21 }, { 0x0c,0x3f,0xa0,0xc3,0x44,0x90,0x7b,0x12,0x8c,0xf8,0xca,0xad,0x66,0x93,0xad,0xcf,0x2a,0x64,0x0b,0xa1,0x1b,0xa8,0xe2,0xfd,0xd9,0x67,0x40,0x5c,0xae,0x05,0x20,0x15,0x69,0x09,0x77,0xc4,0xd4,0x53,0xd8,0x0d,0xab,0xfe,0x3e,0xbd,0x24,0x52,0x3d,0x05,0x29,0x18,0x08,0x0c,0x9f,0x80,0xce,0x38,0x0d,0x01,0xf8,0xb6,0x8a,0x29,0xb7,0x6b }, { 0xad,0x60,0x90,0xdf,0xdc,0xb4,0x1a,0x01,0x9a,0xf7,0xcd,0x27,0x3d,0xa8,0xa3,0x66,0xb7,0xa3,0x03,0x0e,0x99,0xe5,0x3d,0x5e,0x9c,0x83,0x7f,0x4f,0xe4,0x76,0xc8,0x1d,0x77,0xb5,0xd1,0xdd,0x48,0xf4,0xc9,0x1e,0xac,0xcd,0x75,0xc2,0xcc,0x5b,0xd8,0xa8,0x39,0x3f,0xdc,0x36,0x4f,0x30,0x48,0xdf,0x81,0x8a,0xbc,0x84,0xee,0x67,0x05,0xdd }, { 0xa0,0x8a,0xe2,0xae,0x3d,0x85,0x94,0xaa,0x88,0xf0,0x00,0x53,0xad,0xa8,0x91,0x8c,0xc0,0x93,0xc6,0x09,0x7e,0x36,0xac,0x8c,0x45,0xd3,0x86,0x67,0x8e,0x96,0xd6,0xb8,0x41,0x1c,0x28,0xed,0xe8,0xb3,0xc9,0x3c,0x63,0x64,0x89,0x11,0x44,0x66,0xfc,0x6f,0xfe,0xd5,0x9d,0x25,0x68,0x4a,0x26,0x1e,0x4a,0x52,0x43,0x3c,0x95,0x96,0x2f,0x59 }, { 0x7e,0x45,0x73,0xda,0x81,0xbc,0x84,0xdc,0x26,0x26,0xf6,0xca,0x66,0xf6,0xa1,0x1f,0x22,0x7f,0x1d,0x75,0x86,0xbd,0x4c,0xb5,0xad,0x18,0x0d,0xc0,0xca,0xed,0x76,0x4b,0x8c,0xbb,0xef,0xfd,0x96,0x06,0x9f,0x25,0xf1,0xbb,0x9f,0xc9,0x36,0x51,0xb2,0x0b,0x2f,0xed,0xf3,0xc7,0xd1,0x1e,0x7f,0xb4,0x9c,0x83,0x11,0x5f,0x17,0xc2,0xf2,0xf7 }, { 0xcd,0x5d,0x0f,0xd4,0x36,0x5d,0x15,0x1b,0xf1,0x65,0x39,0x5a,0xa4,0xf4,0x10,0x23,0x67,0x9a,0x04,0xdd,0x47,0x93,0xda,0x8c,0x91,0x02,0xec,0xb7,0x3a,0xbd,0xc2,0xc7,0x49,0x4e,0x8e,0x63,0x76,0x83,0xa3,0xda,0x78,0xcb,0x5b,0x45,0x94,0x08,0x14,0xa8,0x38,0x52,0x6e,0x78,0x1c,0x69,0xd3,0x57,0x7a,0x64,0xcd,0x6d,0x22,0x23,0x5f,0x2e }, { 0xaf,0x13,0x58,0x3c,0xbf,0x65,0x02,0x1f,0x79,0x77,0xaa,0xc8,0xfc,0x30,0xc2,0x5f,0x1a,0x9c,0x65,0x5f,0x50,0x18,0x7a,0x3d,0xb5,0x25,0x2b,0x56,0xc3,0xf0,0xe0,0x3e,0xf8,0xfe,0x31,0xf8,0x1a,0x9b,0x57,0xb3,0xdb,0xf6,0x0b,0xe4,0x6d,0x83,0xd6,0xf8,0xca,0x20,0xed,0xff,0xa3,0xe1,0xdc,0x84,0xbb,0x2f,0x5b,0xfc,0x57,0x5c,0xcb,0x22 }, { 0xf0,0x21,0xaf,0xd8,0xc9,0x95,0x74,0x59,0xf6,0xe4,0x98,0xf1,0xad,0x77,0xe5,0xa9,0xba,0x83,0x06,0x4f,0x4a,0xd7,0x3d,0x0d,0x6b,0x00,0x3e,0xf5,0x36,0x83,0x8c,0xb7,0x23,0x0d,0xe9,0x5f,0xab,0x72,0x10,0x48,0xb0,0x23,0x10,0xc3,0xc4,0x6d,0x8c,0x70,0xc0,0x5c,0x8b,0x58,0xd5,0x2d,0x4f,0x69,0xe2,0xb1,0x59,0x02,0x68,0xf1,0x6e,0x49 }, { 0xda,0x25,0x35,0xf6,0xcd,0xa7,0x44,0xd6,0x28,0xe9,0x16,0x51,0xab,0xe7,0xad,0xd0,0xb2,0xa3,0xa6,0x93,0x98,0x81,0xb9,0x69,0x14,0x2f,0xbc,0x11,0x8f,0xc3,0xfc,0xb9,0xe7,0x56,0x08,0x3c,0x27,0x48,0x6d,0xf2,0x24,0x45,0x4c,0x68,0x51,0x0d,0xcd,0xd3,0xed,0x8d,0xf5,0x24,0x6a,0x09,0x60,0xd9,0x78,0x08,0x61,0x93,0x90,0x2a,0x86,0x9f }, { 0x60,0x36,0x94,0x6c,0x11,0x53,0x5f,0x26,0x8d,0xde,0x49,0x46,0xe4,0x6b,0x96,0xbe,0x27,0x9c,0xae,0xe9,0x19,0xa0,0xe2,0xe0,0x82,0x4c,0xee,0x03,0xec,0xc7,0x8a,0xdb,0x67,0x24,0x64,0xcc,0x21,0x50,0x44,0x21,0xf0,0x5b,0xc3,0xd4,0x41,0x9f,0x33,0xc7,0x99,0xf1,0xe3,0x6f,0x6f,0x43,0xeb,0xbf,0xdd,0xe1,0x71,0x6c,0x6c,0xd1,0x74,0xe7 }, { 0xfd,0xe7,0xa1,0x8f,0x6c,0x28,0x13,0xfa,0x4e,0x98,0x99,0x35,0xfc,0xd1,0xfa,0xd4,0x80,0x5d,0xf1,0xe6,0x76,0xd4,0x23,0x9d,0x9a,0x9b,0x0e,0xfe,0x5c,0xaf,0x46,0xe7,0x33,0x32,0xf7,0xbd,0x25,0x01,0x6c,0x47,0xf1,0x5f,0x68,0x2d,0xfe,0x98,0x34,0xa3,0x9f,0x0c,0x62,0x4b,0x2d,0x7f,0x8b,0x01,0x06,0xe0,0x4d,0xbd,0x79,0x39,0xad,0x29 }, { 0xb6,0xe0,0x6c,0x51,0x63,0x05,0xbb,0xc4,0xe4,0x66,0x55,0x70,0x75,0xb9,0x29,0xfc,0xde,0x1a,0xdf,0x89,0xf5,0x10,0xa8,0x48,0xa5,0x2f,0x2c,0x36,0x93,0xc4,0xa2,0x05,0xbd,0xb4,0x27,0x7c,0x21,0xb3,0x23,0xf5,0xc5,0xe1,0xf1,0x26,0xe7,0x9e,0xd7,0x3b,0x63,0xf9,0x94,0x19,0xa8,0x2a,0x9f,0x87,0x53,0x7f,0x4d,0x86,0x5d,0xb3,0x6d,0x05 }, { 0x0b,0x62,0x31,0x9f,0x0d,0x5a,0xba,0x2e,0x19,0x41,0x8f,0x7d,0x1c,0x61,0x28,0x37,0x26,0x39,0x37,0xcd,0x2d,0x2f,0x34,0xbb,0xb0,0x03,0xeb,0x34,0x04,0x5c,0xb4,0x3c,0xe1,0xaa,0xe8,0x2c,0x22,0x7b,0x53,0xcc,0x2e,0xbd,0x67,0x78,0x8b,0xe6,0x09,0x80,0x5f,0x9c,0x1f,0xa1,0xd5,0x4d,0x78,0x84,0xc3,0xb8,0x3b,0xb6,0xc3,0x42,0x89,0x60 }, { 0xa6,0x17,0x27,0xa4,0xf5,0xf8,0xdd,0xbf,0xe5,0x57,0x03,0xa0,0x7b,0xee,0x1e,0x8d,0xaf,0x36,0x74,0xc6,0xd7,0x97,0xeb,0x13,0x29,0xf3,0x15,0xf9,0xfc,0xdc,0xfc,0x44,0x03,0xfd,0x9e,0x4f,0x9b,0x02,0x69,0x6a,0xde,0x69,0x2d,0x5a,0x2b,0xba,0xe1,0x58,0xc1,0xb9,0x01,0x04,0x62,0xf0,0x80,0xf3,0x93,0xb8,0x2a,0x7f,0x0e,0xf3,0xd6,0x0e }, { 0xe6,0x52,0xde,0x96,0x2c,0x1d,0x5f,0x08,0xc4,0x48,0x6e,0x6f,0x3a,0xb0,0xe8,0xe1,0x2b,0xde,0x74,0xc5,0x6d,0x17,0x07,0x9d,0xcc,0x61,0x88,0xc6,0xf8,0x86,0x22,0x16,0x08,0x8a,0x6d,0xff,0x26,0x17,0x5c,0xcb,0xa1,0x78,0x92,0x93,0xe0,0x9b,0x4c,0x27,0x21,0xa2,0x58,0x58,0x73,0xdb,0x0b,0xde,0xa5,0x5a,0xde,0x23,0x26,0xaf,0x77,0xda }, { 0x27,0x70,0x8f,0x23,0xe8,0xbd,0xb7,0x4f,0x8c,0x89,0xf3,0x4b,0x7c,0xbf,0x6a,0x9e,0x32,0x4a,0x71,0x81,0xc9,0x6b,0x10,0xc8,0x93,0xfa,0x15,0x4a,0x55,0x3f,0xae,0xa4,0x57,0x5f,0x18,0x61,0x49,0xca,0xa4,0xa4,0x30,0x02,0x25,0xd6,0x6c,0xc2,0xc9,0x73,0xfc,0x6d,0x68,0xb3,0xd1,0x96,0x5b,0xd1,0xb2,0x1a,0xde,0x75,0xd0,0x80,0x2d,0x2f }, { 0x4d,0x44,0x8a,0xc9,0x7f,0x42,0xe1,0x24,0x8a,0xda,0xf5,0x5e,0x00,0xc9,0x85,0x46,0xf4,0xc7,0x63,0xac,0x70,0xa4,0xcf,0x5e,0x1c,0xa5,0x81,0xf0,0x12,0xfb,0xd4,0xfe,0xd0,0x3c,0x7d,0xcb,0x0f,0x03,0x8a,0x99,0xfd,0xdd,0x19,0x5d,0xd7,0x82,0x0c,0x9c,0x65,0x9d,0x53,0xc7,0x0f,0xa1,0x7d,0x50,0xa5,0x2a,0xd6,0x81,0x6b,0x3d,0x4c,0x6e }, { 0x7c,0xee,0x41,0x7f,0xaa,0x66,0xdc,0x61,0x09,0xbf,0xe9,0x7c,0xab,0x77,0xae,0x6c,0xb0,0x84,0x4a,0xec,0xb2,0xda,0x65,0x10,0x7f,0xb5,0xbf,0x45,0x97,0x44,0x5f,0xb2,0x30,0x40,0xef,0xeb,0xe1,0xe5,0xb9,0xf5,0x96,0xd8,0x71,0xe7,0xf9,0xcf,0x0b,0xb3,0xa6,0x67,0xe8,0x56,0x9e,0xd0,0xe3,0x1f,0x4f,0xff,0xcd,0x61,0xa8,0x22,0x3a,0x26 }, { 0xca,0xef,0x2b,0xac,0x2b,0x80,0x89,0x84,0xa5,0x7b,0x60,0x44,0x49,0x51,0x2a,0xc3,0x95,0xa1,0x58,0xfc,0x2e,0x26,0x37,0xa3,0xb3,0x32,0x3e,0xab,0xf1,0xbf,0xbb,0xb7,0x03,0x8d,0xc9,0xb1,0xba,0x1f,0x20,0xe3,0xf5,0xa4,0x7c,0x85,0xdd,0x06,0x11,0xec,0x3e,0x07,0x68,0x07,0x20,0x40,0xfa,0xb5,0x00,0x8d,0xf8,0x9b,0xd3,0xa8,0xc1,0xbb }, { 0x45,0xa5,0x11,0xc9,0x7f,0x60,0x8b,0xf7,0x6d,0xbc,0x41,0x89,0xd9,0x91,0xec,0xe6,0x18,0xc4,0x52,0xb1,0xb4,0x2a,0x62,0x7f,0x3c,0xd5,0xf4,0xe4,0xa9,0xaa,0x52,0xdf,0x73,0xbe,0x0e,0xc7,0x73,0xea,0x9b,0x6d,0x3f,0xe3,0x33,0x7f,0xcb,0x62,0x5a,0xd2,0x5a,0x91,0x9b,0x27,0xd2,0x29,0x55,0xce,0x7b,0x52,0xbd,0x12,0x12,0x5e,0xc1,0x6c }, { 0xfa,0x13,0x2a,0xc4,0x57,0x9a,0x03,0x93,0x6d,0x3b,0x98,0x69,0xda,0x7f,0x0d,0x59,0x7c,0x67,0x16,0x9c,0xd5,0xa5,0x6b,0x27,0xbb,0x61,0xbf,0x96,0x54,0xe8,0x05,0x74,0xd9,0x21,0x79,0xc3,0x44,0x00,0x1a,0x5c,0xc1,0xa6,0x46,0xd5,0xa4,0x6c,0x2c,0x7e,0xdd,0x21,0x4a,0xc0,0x8a,0xad,0xba,0xd0,0x29,0x05,0xbc,0x16,0x08,0x97,0x16,0x60 }, { 0x4c,0xd2,0xa0,0xba,0xb6,0xac,0xe2,0x8a,0x2b,0xf7,0xca,0x04,0x44,0xab,0x1b,0x75,0x02,0x06,0x88,0xb6,0xb3,0xa0,0xe5,0xf2,0x13,0xcc,0x52,0x1b,0xf0,0x03,0xe4,0x4a,0x6a,0xdf,0x08,0xc3,0x71,0xd2,0x24,0x05,0x6d,0x13,0x10,0x75,0x62,0x18,0xd1,0x26,0xbd,0xe2,0xe7,0xd1,0xc9,0x7e,0xa5,0xd6,0x49,0x93,0xec,0xa9,0x7b,0x19,0xc3,0x8d }, { 0x66,0xc7,0x55,0x46,0x0a,0x05,0x3d,0x45,0x84,0xc7,0xef,0x33,0xac,0xcb,0xea,0x9f,0x65,0xa6,0x65,0x27,0xe4,0x2a,0x5a,0x0b,0x8c,0xf3,0xb4,0xf4,0x78,0x2c,0x59,0x62,0xcb,0x05,0x39,0x6e,0xe2,0x7e,0xb2,0x59,0x71,0xac,0xd9,0x44,0x06,0x26,0x7c,0x0e,0xe9,0xa9,0x59,0xe8,0xcb,0x3a,0x3e,0x66,0x50,0x02,0x51,0x8b,0x77,0xed,0x30,0x81 }, { 0x74,0x51,0xfe,0x37,0x7b,0x24,0x77,0x6b,0x32,0x33,0x57,0xa0,0x21,0xc8,0x45,0x44,0xed,0xc4,0xe4,0x59,0xa0,0x82,0x9d,0xb2,0x7a,0xd0,0x39,0xa2,0xf5,0x21,0xba,0x40,0x16,0x39,0x64,0x35,0xfc,0xc7,0x09,0x40,0xd6,0x90,0x02,0x19,0x84,0x64,0xea,0xde,0x36,0xb0,0x9e,0xb9,0x98,0x5d,0x54,0x39,0xd0,0xa6,0x1c,0xd3,0xe5,0x18,0xdc,0xf9 }, { 0xa6,0x26,0x80,0xec,0x6d,0x83,0xcd,0xe1,0x1b,0x39,0xe3,0x15,0x2d,0xe4,0xe1,0xea,0x8e,0xf4,0x87,0x2c,0xd3,0xfa,0x00,0x55,0xc9,0x02,0x6d,0x59,0x3f,0x33,0x41,0xd1,0xca,0x7f,0x0a,0xd0,0x1b,0xa2,0x68,0x02,0x3e,0xf6,0xcc,0xf3,0xe4,0x5d,0x74,0xdb,0x93,0xa5,0xd6,0xf2,0x75,0x59,0xcb,0x7a,0x7c,0xc8,0x6b,0x9a,0x5d,0x7f,0x0f,0xe7 }, { 0x05,0x8f,0xdc,0x0d,0xfe,0x5d,0xca,0xa3,0x24,0xa3,0x3a,0x3b,0xb8,0x4e,0xf3,0x5e,0xe9,0xd0,0x8b,0xab,0x25,0x6a,0x19,0x04,0x6c,0x47,0xa8,0xcb,0xab,0x3f,0x45,0x76,0x90,0xee,0x3b,0x9e,0x9e,0xa9,0xe0,0xe7,0xc3,0xdf,0x9b,0x46,0x06,0xb8,0x87,0x1e,0x1e,0x80,0x13,0x92,0x60,0x75,0x77,0x59,0x3a,0x45,0xe3,0xe1,0xa0,0x11,0x0e,0x9e }, { 0x64,0xb7,0x63,0xaf,0x52,0x5f,0x05,0x17,0xd6,0x38,0xb2,0x4e,0x51,0xda,0x29,0xaf,0x1b,0x6a,0xb3,0xac,0x73,0xc5,0xd1,0x80,0x0f,0x07,0x73,0x44,0xf4,0x9c,0xb1,0x35,0x9c,0x14,0x86,0xe8,0x94,0x60,0x3e,0x02,0xd5,0x77,0x66,0xbe,0x3f,0xe8,0x1f,0x86,0xe3,0x28,0x3f,0x49,0xd7,0x97,0xeb,0xcb,0x7e,0x39,0xe1,0xd5,0x0f,0xad,0xe5,0xee }, { 0x54,0xe7,0xff,0x67,0xbe,0xff,0x5d,0x09,0xc8,0x07,0xa3,0x15,0xe7,0x8e,0x2f,0xa4,0xe1,0xe1,0xf8,0x7c,0x95,0x7a,0xad,0xa5,0x58,0x97,0x9d,0x54,0x55,0x63,0x40,0x10,0x0f,0xd7,0x69,0x56,0xb0,0xa9,0xb8,0x00,0x74,0x53,0x42,0x17,0xbd,0xde,0x7d,0x56,0x4a,0xb6,0xdb,0x06,0xcb,0x70,0xee,0x05,0x6b,0x46,0x6f,0x32,0x71,0x50,0xfb,0x51 }, { 0x20,0xe1,0x18,0x56,0x48,0x80,0xc7,0x9c,0xb9,0x27,0xe3,0x50,0x1c,0xf2,0xa5,0x3f,0x03,0x0b,0x86,0xe3,0xce,0xca,0xc6,0x07,0x28,0xcf,0x1a,0xb9,0x90,0x76,0xf5,0x7b,0xff,0x67,0xb3,0x52,0xac,0x43,0x7e,0xf7,0x31,0xbd,0xc3,0xe3,0xfb,0x6d,0xe9,0x97,0x9f,0xe0,0xdc,0x9b,0x40,0xe1,0xb7,0x1e,0x85,0x83,0xbe,0xdb,0xad,0xa7,0xaf,0xe6 }, { 0x26,0xc0,0x6d,0x4e,0xef,0x3a,0xf9,0x9f,0xf2,0x0b,0x87,0xcc,0x26,0x06,0xfd,0x71,0xc2,0x3e,0x47,0xf9,0x8d,0x5b,0x72,0x90,0x68,0x1d,0xd0,0x2d,0x84,0x78,0x83,0x3b,0x2b,0x23,0x80,0x41,0xa4,0xe1,0xd6,0x65,0xa8,0x9b,0x67,0x9e,0xea,0x04,0xa7,0x42,0x5c,0x28,0xbd,0xa9,0xe1,0x21,0x1b,0xa2,0x12,0x10,0x9a,0xf4,0x87,0x1e,0x71,0xd0 }, { 0x4e,0xed,0x0b,0x4d,0xfb,0xb5,0xc3,0x07,0x3f,0xef,0xe1,0x0d,0x92,0x89,0xd7,0x2b,0x62,0xdf,0x6c,0x0f,0x0b,0xa0,0x40,0x5b,0x9e,0x84,0x95,0x44,0xd4,0xc2,0x08,0x55,0xac,0xe0,0xfb,0x28,0x8a,0x56,0x69,0x3a,0x19,0x41,0xd3,0x28,0x7f,0xc1,0x15,0xc8,0x11,0x36,0xcc,0xd3,0x2d,0x34,0xfe,0x3f,0x4c,0x08,0x7a,0x3f,0x8b,0xdf,0xfd,0x1f }, { 0x73,0x96,0x8e,0x4a,0x8d,0x92,0x33,0xa4,0xcb,0x46,0x44,0xe8,0x30,0x36,0x38,0x45,0x42,0xa1,0x01,0xc5,0x27,0xb3,0x5f,0x94,0x2d,0xa8,0xf7,0x96,0xa3,0x96,0x7e,0xc5,0xec,0xa7,0x10,0xdb,0xbd,0x1b,0x8a,0x03,0xa6,0x2d,0xab,0xae,0x5c,0x3b,0x37,0xdf,0xb0,0x7a,0x32,0x87,0x11,0xcc,0xa2,0x30,0x22,0x0d,0x94,0xf7,0x58,0xad,0x81,0xdb }, { 0x42,0xe0,0x43,0x7c,0x7a,0xca,0x84,0xf7,0x0a,0x45,0xb1,0x16,0x8e,0xd1,0x2d,0x20,0xfe,0xb9,0x9f,0x12,0xe6,0xa1,0x2d,0xe7,0x83,0xd6,0x37,0xe6,0x05,0x24,0x72,0x2b,0x2d,0xe1,0xda,0x09,0x01,0xd9,0x20,0xee,0xba,0xfd,0x84,0xcc,0xc9,0xb4,0xea,0x3e,0xdb,0xea,0x2a,0x6d,0xaf,0x54,0x26,0x5a,0x76,0x69,0x39,0xc8,0x1f,0xea,0x76,0xc6 }, { 0x27,0x71,0xb9,0xe9,0x79,0xcd,0x38,0x0a,0xf0,0xa6,0x82,0xd9,0x69,0x37,0x7d,0x89,0x21,0xcb,0x6f,0x1b,0xd0,0xfc,0x8a,0x47,0x8f,0xba,0x29,0xf4,0xc7,0x38,0x00,0xeb,0x6c,0x66,0xc0,0x4f,0x59,0x8e,0x69,0x48,0xf8,0x30,0xfb,0x5d,0x0e,0x5d,0x51,0x0e,0x42,0xbd,0x8b,0x01,0x34,0xab,0x75,0xbe,0x2f,0x85,0x73,0x2d,0xd8,0x76,0x2b,0x2c }, { 0x07,0x0d,0x96,0xcc,0xc5,0x1a,0xfb,0x00,0xc4,0x99,0xea,0x8f,0xc2,0xef,0x48,0xc9,0x49,0xa7,0xcb,0xf2,0x44,0x5c,0xc2,0x28,0xc6,0xf2,0x4f,0xc3,0x7b,0xce,0xc9,0x04,0x9b,0x91,0x5e,0xf5,0xff,0x0a,0xbc,0x21,0xfc,0x61,0x58,0x2d,0x55,0xf0,0xe9,0x77,0x53,0xbd,0xec,0x7b,0x34,0x68,0x1b,0xac,0xf6,0x2f,0x4d,0xb2,0xa3,0xab,0x31,0x6f }, { 0x1a,0x2a,0x2a,0xc2,0xbc,0x37,0x13,0xa8,0xd0,0x85,0x3b,0xd4,0xea,0x67,0xa0,0x01,0x50,0x8e,0x25,0x8e,0x60,0x8b,0xa7,0x72,0x1a,0x04,0xaa,0x95,0x7a,0x5e,0x23,0x48,0x94,0x28,0x3d,0xc2,0x52,0x7b,0x0e,0xa6,0xca,0xc3,0xe0,0xfb,0x0e,0xcd,0xdf,0xdf,0x1c,0x25,0x13,0xf5,0xd4,0xdc,0xe3,0x4b,0x37,0xf9,0x8c,0xf2,0x2d,0x4b,0x01,0x0d }, { 0x5c,0x9c,0xc4,0xf8,0x72,0x3a,0x02,0x7b,0x03,0x18,0xec,0x7f,0xdf,0xd7,0xda,0xc9,0x3f,0xdd,0x47,0x8e,0x69,0x4f,0xd5,0x4a,0xdd,0x14,0x52,0xe8,0x99,0x27,0x3a,0x8f,0x84,0xef,0xe0,0x7a,0x1d,0xfe,0xd2,0x59,0xa8,0x27,0x58,0x9d,0x37,0x08,0xaf,0x96,0x4f,0x00,0x36,0x75,0xa1,0x1a,0xca,0xb5,0xad,0xda,0xca,0x69,0x5c,0xe8,0x0d,0x6e }, { 0xa3,0x68,0x50,0xbb,0x71,0x1d,0x04,0x96,0x56,0x80,0xa7,0x73,0xbc,0x29,0xe9,0x28,0x2a,0x8f,0x99,0xbb,0x68,0x27,0x9d,0xae,0x8a,0x62,0x3b,0x5d,0x5b,0x7c,0xd4,0x87,0x50,0x82,0x3d,0xed,0x7d,0x73,0xf6,0x74,0x1d,0x8f,0xc2,0x19,0x5d,0xd7,0x75,0xeb,0xc1,0x84,0xce,0xd3,0x43,0x06,0xbb,0x3e,0xb9,0x86,0x57,0x0b,0x0b,0x2f,0xcf,0x54 }, { 0x0e,0x3e,0xa7,0x57,0xde,0xb8,0x27,0x67,0xa8,0x24,0xa0,0x72,0xe4,0xc2,0x0a,0x4b,0x8b,0xd4,0x67,0x27,0x5c,0x0f,0x80,0xd4,0x0f,0x2e,0x43,0x27,0xbc,0xfc,0x91,0xde,0x13,0xf2,0xbf,0x92,0xff,0xae,0x21,0x56,0x23,0xf2,0xab,0xf6,0x05,0x6a,0xaa,0xb3,0xbf,0xaf,0x08,0x50,0x14,0x9c,0x53,0x83,0x14,0x5e,0x8c,0x5d,0xf5,0x82,0xf5,0x4c }, { 0x71,0x58,0xda,0xed,0x01,0xf4,0x95,0xe3,0x76,0x48,0xa6,0x5e,0xf9,0xb0,0x8f,0x76,0x1e,0xb9,0x08,0x5a,0x34,0xad,0x9c,0x75,0xb3,0xda,0xa9,0x39,0xd4,0x19,0x2b,0x8f,0xfd,0x98,0xad,0x46,0xda,0x59,0x6c,0xf3,0x8b,0x48,0x13,0x3a,0xcc,0x08,0x5b,0xa6,0x8d,0x52,0x4c,0x30,0xa6,0xc4,0xa1,0xf2,0xf1,0x4f,0x23,0xdf,0xad,0xdf,0x27,0x23 }, { 0x9a,0x6c,0xab,0xe1,0xf8,0xc7,0x8b,0x4f,0x15,0x4a,0x04,0x03,0x4f,0x63,0xc3,0x4a,0xf6,0xba,0xda,0x29,0x32,0xf5,0x0e,0x57,0xc5,0xf4,0x83,0xaa,0xa5,0x56,0xed,0x7a,0xed,0x9f,0x50,0x29,0xfa,0xd5,0x00,0x45,0x1d,0xe5,0x44,0xfb,0x7d,0x55,0x57,0x40,0xfe,0xb8,0x7e,0xaf,0xd1,0x22,0x07,0x16,0x25,0x21,0x48,0x3e,0xa0,0x54,0xa7,0x2e }, { 0x6b,0x14,0xa3,0xb6,0x57,0xb6,0x6a,0x73,0xe1,0xa9,0xed,0x99,0x5d,0xf7,0x05,0x26,0x2b,0xa2,0xf7,0x9d,0x8c,0x20,0x11,0x13,0x9c,0xea,0x69,0xab,0xd5,0xd5,0x8f,0x9a,0x99,0x3d,0x2b,0xf1,0x00,0xbf,0x60,0x3c,0xa3,0x51,0x12,0x96,0x41,0x4d,0x5c,0xb7,0xc6,0x39,0x37,0xff,0x0a,0xd8,0xb0,0x1a,0x1c,0x5d,0x25,0x5e,0xe9,0x43,0x5e,0xf3 }, { 0xed,0x19,0xa5,0x6a,0x1b,0x59,0xcf,0x5c,0xd8,0x80,0xf0,0x80,0x99,0xa2,0xe4,0xdc,0xf3,0x18,0xde,0x81,0x1d,0x6a,0x88,0x71,0xbc,0xc2,0x88,0x7a,0x73,0x5a,0x80,0x87,0xcf,0xbe,0x68,0x3e,0x6c,0x3b,0x56,0xb6,0x30,0x25,0x45,0x12,0xab,0x54,0xaf,0xe1,0xa9,0x8c,0xfd,0x5a,0xae,0x96,0xda,0x46,0xe5,0x6c,0xa0,0x87,0x3a,0x9f,0xe5,0x57 }, { 0x76,0xc2,0x0a,0x5f,0x10,0x93,0x5b,0x20,0x49,0x15,0xf1,0x6b,0x6c,0x0a,0xa7,0x9d,0x90,0xec,0xfd,0x1c,0xcf,0xfb,0x8a,0xbc,0x53,0x86,0x5c,0x41,0x79,0x94,0x49,0x4d,0x73,0x64,0x18,0xf1,0x68,0x77,0x40,0x99,0xe1,0xe0,0x95,0xc7,0x4d,0xa3,0x02,0xd1,0x18,0xb1,0x0a,0x17,0x5f,0x6a,0x53,0xf3,0x32,0x13,0x73,0x06,0x56,0xd0,0x50,0xce }, { 0xc3,0x4b,0x0b,0x32,0x47,0x4b,0x06,0xe8,0xe8,0x79,0x48,0xa7,0xe1,0x51,0x54,0xac,0x75,0x07,0xfa,0x84,0x5d,0xff,0xaa,0x92,0xdc,0xad,0x2d,0xb9,0xc2,0x92,0xde,0xb9,0x01,0xa1,0x6e,0xdb,0xc2,0x50,0xaf,0x6b,0x94,0x5e,0xfd,0x16,0xf2,0x86,0x81,0x4d,0xb8,0xb1,0xcc,0x7e,0x82,0x6f,0x9a,0xc3,0x94,0x76,0xdb,0x6b,0x48,0xc6,0x43,0x44 }, { 0xba,0xff,0xd4,0xeb,0xf8,0xa8,0xb5,0xab,0x46,0xac,0x18,0x44,0x4f,0x3d,0xcd,0xe3,0x35,0x1a,0x3a,0x75,0x55,0x6c,0x6c,0x4a,0xe7,0xdd,0x9a,0xb3,0x28,0x52,0x3e,0xb3,0x0f,0xa9,0x3d,0xc5,0xdb,0xc9,0x5e,0x83,0x00,0x3a,0x8e,0xb3,0x79,0x5a,0xc0,0x9c,0x24,0x51,0x1c,0xcf,0xbf,0x48,0xb6,0xee,0x19,0x78,0x30,0x0c,0xd5,0xac,0xf3,0x87 }, { 0xdb,0xc5,0x90,0x4f,0x14,0xe8,0xd7,0x97,0x70,0xee,0x38,0x7c,0x19,0x3f,0xde,0xf2,0xe6,0x48,0x20,0xe8,0xc9,0x4f,0x55,0x38,0xd7,0xf9,0x8a,0x53,0x8e,0xe9,0xd2,0x36,0x09,0x90,0xcd,0xbd,0xfb,0x7c,0x6f,0x54,0xe3,0xde,0x71,0x38,0x4c,0x12,0x42,0xa5,0x75,0x2c,0xf9,0xdf,0x4e,0xb4,0x23,0x2b,0x74,0xac,0xa6,0xa6,0x60,0x5f,0x9d,0xae }, { 0xca,0xfb,0x6c,0x86,0x57,0x87,0x4a,0x09,0x75,0x1a,0x41,0x8a,0xe4,0xeb,0x8e,0xee,0xe9,0x81,0x7b,0x13,0x7d,0x07,0xf1,0xee,0xae,0x03,0xad,0x0f,0x9d,0x21,0x57,0xff,0x2a,0xda,0xfb,0x1e,0xd5,0xc5,0xc6,0x7a,0x01,0xa1,0xcb,0xb9,0x9a,0xb4,0xe2,0xe0,0x9c,0x6a,0xb4,0x45,0x91,0x3b,0x9e,0x0e,0x16,0xce,0xc0,0x81,0x73,0xce,0x89,0x88 }, { 0xc0,0xa8,0xfc,0x61,0xdc,0x60,0xf9,0x8c,0x42,0xe2,0x1b,0xfd,0x81,0x29,0xa7,0x73,0xae,0x3c,0x01,0x2a,0x42,0xd0,0xac,0x47,0xe2,0xd6,0x9d,0xcf,0xec,0x73,0xc4,0xf8,0xff,0xce,0x97,0x6f,0xa8,0x24,0x37,0x64,0x48,0x3b,0x23,0x9f,0x95,0x41,0x70,0x86,0x1c,0x3b,0x1c,0x8f,0x3e,0x21,0x6d,0x4b,0xe0,0x55,0x5f,0x94,0x69,0x66,0xf0,0x49 }, { 0x89,0x48,0x90,0xb2,0xfa,0xd3,0x7c,0xcb,0x9a,0x87,0x9a,0x27,0xcf,0x8e,0xa9,0xa3,0x37,0xd2,0x8a,0x48,0xa4,0xbf,0x79,0x5c,0x47,0x00,0xeb,0x8c,0xe5,0x1b,0x2c,0xf9,0xd4,0x68,0x00,0xff,0x7c,0x5b,0x30,0x11,0x88,0xa0,0xab,0xfd,0xfd,0x48,0xe4,0x38,0x49,0x8e,0x71,0x16,0xa3,0xbc,0x2e,0xcb,0x0d,0x18,0x7a,0xc8,0x35,0x97,0x9d,0x3b }, { 0xcc,0x61,0xac,0xb1,0x37,0x15,0x5a,0x7f,0x47,0xfd,0xbc,0xbc,0x33,0xe0,0x4f,0xb8,0x34,0xc3,0x32,0x5a,0x11,0xa5,0xee,0x4c,0x0f,0xcd,0x81,0x59,0x6e,0xde,0x40,0x18,0xd8,0x4e,0x14,0x82,0x0f,0xa1,0x44,0xf6,0x69,0xb7,0x1c,0x15,0x0d,0xd1,0x66,0x03,0xf6,0x55,0x56,0x24,0xfe,0xa9,0x90,0xc4,0xe3,0x61,0x71,0xbd,0xc8,0xdb,0x25,0x1a }, { 0x46,0x3d,0x8e,0x29,0xe4,0x81,0xaa,0xcd,0xa1,0x69,0x76,0x78,0xf8,0xb8,0xc5,0x5b,0xa2,0x6e,0x2a,0x1e,0x94,0x13,0x99,0x36,0xbc,0xff,0x60,0x26,0x7e,0x46,0x0d,0x62,0x40,0x0f,0x73,0x4b,0x7a,0xe2,0xa6,0x6e,0xf1,0xfd,0x6c,0x67,0x24,0xf8,0x52,0x96,0x8f,0x9e,0xac,0x14,0xda,0x46,0x9b,0x0a,0x22,0x66,0x50,0x88,0x8c,0x11,0x21,0x7f }, { 0x59,0xd6,0x37,0x56,0x21,0xfd,0xc2,0x47,0xd8,0x6b,0xfb,0xbe,0x46,0xb5,0x95,0x6e,0xbe,0x4b,0x92,0xd2,0xf8,0xca,0xdb,0x3f,0xea,0x8b,0xa2,0xa8,0xde,0x06,0x7f,0x33,0x5c,0xe2,0xcd,0x33,0x09,0x0a,0x6d,0xa3,0x49,0x05,0x73,0x1a,0x51,0xca,0xf4,0x47,0x11,0x93,0xe6,0xe4,0x27,0x47,0xd1,0x70,0x74,0xd3,0x44,0x66,0x88,0x76,0xc3,0x8a }, { 0x06,0xad,0x2a,0x09,0x8f,0xce,0xd7,0x66,0xed,0x22,0xa3,0x4d,0x25,0x7e,0x4c,0x96,0x47,0x9f,0x0b,0x1a,0x76,0xdb,0x3c,0x5f,0x83,0x52,0x08,0xd8,0xba,0x11,0x11,0x01,0x2d,0x5b,0x8b,0x1c,0x58,0xf8,0x5e,0x35,0x59,0xa4,0xc0,0x1b,0xb9,0xeb,0x62,0xa0,0xde,0x42,0x9d,0x82,0xb7,0x0e,0x89,0xae,0xc1,0xa7,0xba,0x9d,0x5f,0xb3,0x7e,0xf4 }, { 0xad,0x6d,0x5f,0xf3,0x5d,0x10,0xba,0xfd,0x02,0xe5,0x53,0x0d,0x9b,0x54,0xe9,0x8e,0xa4,0x75,0xf6,0x42,0xd4,0x9c,0x4f,0xb2,0xbb,0x11,0x94,0x63,0xb3,0x5d,0xb3,0x37,0x2e,0xbf,0xb5,0xf3,0x2e,0x87,0xed,0x11,0xb6,0x57,0xce,0x7d,0xd5,0x00,0x4b,0x8f,0x51,0xa9,0x29,0x30,0xb1,0xe4,0x8c,0xf1,0xca,0xbf,0x0c,0x2c,0x61,0x8a,0x93,0xe5 }, { 0xf6,0x57,0xe9,0x01,0x5f,0x98,0x55,0xa5,0xeb,0x9a,0xcb,0x6e,0xbf,0xe5,0x94,0x1a,0x08,0xfe,0x3c,0xda,0x3b,0x36,0xa5,0xdc,0x2b,0x1f,0x0b,0xd0,0xf6,0x5b,0xb8,0x30,0x80,0x77,0xa8,0xbb,0x3b,0xca,0xac,0x49,0x6d,0xc8,0x3c,0xd2,0x5d,0xa0,0xe7,0xff,0xc2,0xab,0xba,0x9c,0xf2,0xc8,0xe3,0x5a,0xc3,0xb9,0xa7,0x4d,0x87,0xb1,0x93,0xfb }, { 0x1a,0x17,0x81,0x95,0xcb,0x38,0xf0,0xd6,0xe7,0xe7,0x66,0xd8,0xb8,0xff,0x95,0x34,0x32,0x68,0x32,0x8d,0x78,0xef,0x85,0xde,0x8f,0xea,0x45,0x7f,0x8d,0x7a,0x60,0x4c,0xbe,0x14,0x25,0xdd,0xe9,0x83,0xa8,0xb0,0x97,0x9c,0x12,0x94,0x4e,0xd3,0xb9,0xa0,0x7a,0x97,0xa1,0xb1,0xab,0x11,0x80,0x47,0x3a,0x88,0x39,0x60,0xa4,0x9b,0xae,0xea }, { 0xe4,0x6e,0xab,0xc9,0xf8,0xe2,0xf2,0x0c,0xf0,0xef,0x00,0x2c,0x94,0x97,0x96,0x25,0x85,0x57,0x19,0x52,0x0e,0xc5,0xa6,0xe7,0xdb,0x47,0xff,0xce,0xeb,0x3f,0xa1,0x50,0x25,0x32,0xcf,0xc8,0x94,0xc1,0x89,0x63,0xad,0xb0,0x02,0x81,0x0c,0x09,0xfc,0x3a,0x50,0xf6,0x8c,0xc2,0x4c,0x22,0x7e,0x4b,0xb9,0x34,0x89,0x4c,0x4a,0x0b,0x13,0x9f }, { 0xac,0x75,0xe3,0x95,0x55,0x19,0xff,0xd3,0x40,0x2c,0x8c,0x22,0xb0,0xa8,0x0a,0x3d,0x8f,0xbd,0x31,0x91,0xac,0x23,0x59,0xaa,0x8a,0xbe,0x67,0xfb,0x73,0x83,0x99,0x60,0xc0,0x36,0x36,0x14,0x2f,0x27,0x9d,0x2f,0x56,0x73,0xba,0x23,0xe0,0x7b,0xaf,0xde,0xe8,0x93,0x33,0x58,0x92,0xa9,0xe8,0x3a,0x30,0x6a,0x9d,0xb3,0x86,0x6b,0xc5,0x00 }, { 0x10,0x7a,0x44,0x85,0xaa,0x07,0xfe,0x2e,0x14,0xbb,0x5a,0xf4,0x51,0x67,0x50,0xf0,0xe0,0x6a,0x97,0x07,0x59,0xac,0xdc,0x14,0x77,0x24,0x96,0x7e,0x58,0x33,0xc4,0xbe,0x6e,0xa2,0x21,0x42,0xb8,0xe4,0xd7,0xcd,0x81,0x37,0x94,0xec,0x48,0xe6,0x80,0x07,0x4d,0x3a,0x4f,0xc9,0x1d,0x76,0x0c,0x4a,0x65,0x66,0xec,0x48,0xc8,0x7c,0x80,0xdc }, { 0x68,0x34,0xba,0xe0,0x21,0x62,0x56,0x10,0x66,0xb4,0x71,0x72,0x93,0xd4,0x9f,0x56,0xdd,0xc0,0xab,0x7e,0xa6,0xc6,0x16,0xf8,0xa5,0xec,0xae,0x7e,0x7a,0x31,0x54,0xbb,0x09,0x23,0x5e,0x21,0x48,0x82,0x0f,0xa0,0xc2,0xb5,0x85,0xfb,0x89,0xa4,0x12,0x87,0x54,0x34,0x9a,0x03,0x26,0xd1,0x1e,0x0c,0x52,0x8f,0xa1,0xd8,0xed,0xdf,0xd2,0x57 }, { 0x99,0x39,0x2c,0xe7,0xf8,0xb4,0x72,0x26,0xba,0xf2,0x81,0x8c,0xc2,0x1f,0x40,0x60,0x33,0xcd,0x75,0xf9,0x25,0xc5,0x64,0x92,0x0b,0xe6,0xf8,0xe3,0x16,0xe7,0x94,0x16,0xbf,0x8e,0x7d,0x31,0x5c,0xee,0xa3,0xcf,0xbf,0xb9,0x95,0x88,0x87,0x1e,0x2f,0xcf,0x4e,0x67,0x45,0xf5,0xe0,0x3e,0x2e,0xdf,0x66,0x40,0xa5,0xde,0x7f,0xa1,0xf8,0x75 }, { 0xa6,0xd3,0x96,0x77,0xa7,0x84,0x92,0x76,0x27,0x36,0xff,0x83,0x44,0x31,0x5f,0xc5,0x96,0x43,0x95,0x91,0xa3,0xc6,0xb9,0x4a,0x6c,0xf2,0x0f,0xfb,0x31,0x37,0x28,0xbe,0x67,0x4f,0x84,0x74,0x9b,0x0b,0x88,0x16,0x66,0xb8,0xba,0xbd,0x2d,0x27,0xec,0xdf,0x82,0x4a,0x92,0x0c,0x22,0x84,0x05,0x9b,0xf2,0xba,0xb8,0x33,0xc3,0x57,0xf5,0xf4 }, { 0xea,0xf0,0x31,0xe6,0x0c,0xf3,0x0a,0x7c,0xcb,0x93,0x51,0xb4,0x2c,0xcb,0x1e,0x55,0x00,0x3c,0x79,0xeb,0x94,0xcc,0x49,0x57,0xb6,0x04,0xae,0xa3,0x70,0x39,0x11,0xce,0xf3,0x3b,0x6d,0x70,0x61,0xca,0x4a,0xc1,0x6a,0xe6,0xdc,0x22,0x3e,0x40,0x72,0x9e,0x5c,0xce,0x6a,0x05,0xff,0x5e,0x86,0x39,0x12,0x46,0x1c,0x14,0xa4,0x76,0x9d,0xd2 }, { 0x3f,0x06,0xdc,0xd2,0xce,0x62,0xe8,0x0d,0x4a,0x66,0x1c,0xaa,0x2d,0x2a,0x10,0x86,0x75,0xf3,0xb0,0xca,0xae,0xea,0xdd,0x25,0x15,0x83,0x94,0x8c,0x59,0x74,0xbb,0x08,0x08,0xbc,0x25,0x50,0xce,0x19,0x22,0xdb,0x98,0x58,0x07,0xbe,0x93,0x1d,0x9b,0x2e,0x83,0x16,0x06,0x90,0x5e,0x88,0xf5,0x3e,0x89,0x65,0x5d,0xa9,0x95,0x08,0x3c,0x99 }, { 0x67,0x97,0xfb,0x9f,0x2f,0xea,0x9b,0x79,0x37,0xe1,0x64,0xbf,0xc3,0x0e,0x99,0x80,0x9e,0x87,0x2e,0xc3,0x2b,0x52,0xd4,0x56,0x7e,0x57,0x2e,0xb3,0x76,0x45,0x0f,0x6a,0xcb,0x5a,0x0b,0x44,0x66,0xa4,0x9b,0xa8,0x6f,0x03,0xd4,0x41,0x26,0x96,0x7c,0x81,0xfd,0x00,0xe9,0xd7,0xb5,0xfb,0x26,0x5d,0xe4,0x4e,0x25,0x73,0xbb,0x97,0x0f,0x4d }, { 0xec,0x61,0xff,0x29,0x91,0x8a,0x1d,0x05,0xe0,0xc0,0x5b,0x31,0x52,0x7e,0x97,0xb7,0xeb,0x32,0x28,0xb9,0x4b,0xdc,0x79,0x4c,0x1c,0x10,0x1b,0x8f,0xd5,0xc7,0xc2,0x7c,0x02,0xfa,0x1d,0x3d,0xc1,0xb2,0x57,0xa1,0xd0,0x96,0x0f,0x82,0xc7,0x75,0x92,0x98,0xfe,0x3c,0x46,0xc4,0x76,0x90,0x23,0x3d,0xad,0xf0,0x11,0x67,0xd9,0xdd,0xfe,0x51 }, { 0x83,0x23,0x64,0x95,0x7b,0xc1,0x36,0xb5,0x6c,0x57,0x4b,0xd0,0xc6,0x73,0x94,0x65,0x9b,0x6c,0xce,0x0d,0x34,0xb7,0x47,0x8d,0x5d,0xea,0xe2,0x1c,0xb5,0x13,0xa1,0xb6,0xe2,0x31,0x5c,0x54,0xa2,0xe1,0x8a,0xb3,0x29,0x81,0xa7,0x54,0xc8,0x40,0x04,0x5a,0x46,0x5a,0x7c,0x46,0xeb,0x0e,0xe9,0x39,0xb0,0x7b,0x9f,0x82,0x90,0x17,0x27,0xd8 }, { 0x9a,0x79,0xbf,0xbf,0xe7,0x1e,0x34,0x7f,0x4d,0x6c,0x66,0x98,0x31,0x67,0x97,0xe2,0xf5,0xac,0x2a,0x39,0x00,0xf5,0xab,0xf0,0xc4,0x09,0x33,0x2d,0xe4,0x6e,0x20,0x50,0xe9,0x8b,0x4d,0xe6,0xd3,0x16,0xe2,0x00,0xb6,0xf6,0x71,0xf3,0xb2,0x24,0xef,0xa9,0xca,0x94,0xfa,0xcc,0xb6,0xdf,0xde,0x31,0x7a,0x3f,0x47,0x81,0x92,0x62,0x50,0xd2 }, { 0xa5,0xd1,0x5c,0x53,0x08,0x4d,0xb0,0x53,0x81,0x28,0xdd,0xfa,0xf3,0x15,0xc2,0x19,0xb0,0x34,0xcb,0x15,0x03,0x10,0xe0,0x84,0xb5,0xa0,0xc4,0xa9,0x27,0x48,0x7b,0x7c,0x9d,0x58,0xf5,0xac,0x41,0x98,0x7d,0x02,0xdf,0xdf,0x8c,0x48,0x9a,0xe3,0x71,0xb6,0x5a,0xc3,0xd1,0x69,0x53,0x4c,0x9e,0x1b,0x85,0x2e,0xbc,0xec,0x37,0x97,0x8d,0x2a }, { 0xac,0x25,0xda,0x80,0x08,0x9c,0xf4,0xe0,0x33,0xd4,0xdb,0x57,0x10,0xff,0x59,0x36,0xfd,0x68,0x3b,0x4d,0x0d,0xab,0x01,0x3e,0x6e,0xef,0x62,0xff,0x45,0x14,0xc6,0xfd,0xeb,0xc6,0x9d,0x98,0x5c,0xb4,0x4c,0x7b,0x88,0x3d,0xa9,0x31,0x2a,0x1b,0x33,0x8c,0x81,0x09,0x83,0xe8,0x24,0x3b,0xf3,0x7a,0x60,0xb5,0x39,0x77,0x05,0x83,0x05,0x41 }, { 0x0c,0x2a,0x24,0xd1,0x39,0x5c,0xdc,0xde,0xbc,0x4f,0x28,0x6e,0x83,0xce,0xdd,0x95,0xc1,0x38,0xe4,0xde,0xda,0xd0,0x5f,0xd0,0x9c,0xff,0xae,0x07,0xd1,0x52,0xfb,0xbc,0xb9,0x78,0x54,0xb1,0xb5,0x95,0x37,0x31,0xfb,0x5d,0xb4,0xa2,0x71,0x4f,0x3a,0xb1,0xe7,0xe6,0xdf,0x7f,0x9d,0x62,0x11,0x1f,0xf4,0x47,0xb9,0x99,0xe0,0xdc,0x85,0x32 }, { 0xb4,0x67,0xcd,0x65,0x66,0x0c,0x13,0xb8,0x4a,0xec,0x42,0xb5,0x29,0x6b,0xc0,0x37,0xc1,0xe6,0xb5,0xea,0x71,0xa0,0xd2,0x89,0xb4,0x56,0x51,0x10,0x69,0x96,0x2f,0x3c,0xdc,0x91,0xb9,0xbc,0x4d,0x36,0xff,0xea,0xbb,0x3f,0x5d,0x2a,0x01,0x16,0x64,0xac,0x3c,0xb2,0x12,0xdf,0x6c,0xbd,0xa4,0x72,0xf7,0x55,0x84,0xcb,0x22,0x87,0x75,0x96 }, { 0x9d,0x8b,0xa7,0xc2,0x12,0x00,0x28,0xbf,0x93,0x2a,0x39,0x9c,0x82,0x6f,0x90,0x70,0x34,0x64,0xf2,0x39,0xc1,0xb4,0x1d,0x8c,0x0d,0x64,0xc1,0xd1,0xa2,0x1a,0x6d,0x54,0xf8,0x17,0x9f,0xf2,0xe6,0x71,0x15,0x20,0x14,0xd5,0x55,0xd9,0xef,0xa8,0xf3,0x43,0xe8,0xa5,0x0c,0x50,0x55,0xde,0x3f,0x34,0x0d,0xff,0xd5,0x30,0x40,0x30,0xed,0x32 }, { 0x92,0xf9,0xa6,0xf9,0x3f,0xa3,0x77,0x61,0x97,0x92,0x80,0xde,0x26,0xda,0x6c,0xde,0x08,0x53,0x3a,0xbe,0xef,0x21,0x60,0xf4,0x91,0x9b,0x15,0x97,0xb4,0x3c,0x7e,0x8d,0xbf,0x61,0x8d,0x71,0x51,0x47,0xaf,0xe8,0xed,0x41,0xd3,0xa6,0xf5,0xe5,0x42,0xdf,0x73,0x09,0x28,0x4e,0xce,0xa3,0x12,0x89,0x77,0x46,0x05,0x55,0x52,0xbf,0x12,0x85 }, { 0x52,0x46,0x9d,0x3d,0x89,0x6f,0xeb,0x8c,0x6d,0x0c,0x14,0xc3,0xe4,0x9d,0xfd,0x7c,0x07,0xf4,0x7b,0x53,0xb0,0x6b,0xfb,0xab,0xe1,0x01,0x64,0x1d,0xa1,0x4a,0xd4,0xf9,0x31,0x3d,0x27,0x6c,0x7e,0x03,0xba,0xa3,0xda,0xfc,0x87,0x73,0xd8,0xdb,0x49,0xde,0xc1,0x20,0xa0,0x8e,0x48,0x42,0xdf,0xe1,0xb7,0x30,0xbc,0xb2,0x70,0x21,0x21,0xed }, { 0x5c,0xe4,0xfd,0x83,0x60,0x44,0xba,0xf3,0xa1,0x62,0x30,0x65,0xbc,0xe8,0x3b,0x11,0xfd,0x75,0x16,0xa5,0xb2,0x09,0xd8,0x87,0xd7,0x9a,0x70,0x81,0xaf,0xae,0xfc,0x6a,0x61,0x04,0x21,0x08,0xaa,0x50,0xf3,0x68,0x1e,0x31,0xbc,0x1e,0xa8,0x32,0xc7,0x14,0x4a,0xbf,0xbd,0x4a,0xb9,0xe4,0xac,0xce,0x38,0x60,0x6d,0xfb,0xbf,0x9d,0xb9,0xa6 }, { 0x3e,0x40,0x77,0x37,0x11,0x2c,0xf5,0x72,0xe6,0x9c,0x86,0xb7,0xac,0x1a,0xba,0x5b,0x5c,0x0a,0x84,0x35,0xfe,0x22,0x28,0xad,0xe9,0xcb,0x2a,0xb0,0x7c,0x5f,0xdf,0xde,0x6e,0xcb,0x22,0x2c,0x8c,0xd5,0xec,0x0e,0x2e,0x16,0xf7,0xaf,0x8c,0xc9,0xe3,0x26,0xec,0xfa,0xc4,0xb3,0x92,0xa3,0x26,0xf5,0xcf,0x11,0x96,0x89,0x78,0x46,0x0f,0x8c }, { 0x84,0xba,0x96,0xdf,0xe6,0x69,0x54,0xc5,0x7c,0xa5,0xef,0x5b,0x31,0x27,0x34,0x8d,0xcd,0xe5,0x22,0x15,0x29,0xa1,0x2d,0x00,0x80,0xc7,0xbe,0x56,0x17,0xd2,0xce,0x36,0x6e,0xc5,0x2e,0xa8,0x3e,0xdd,0x42,0x1f,0x61,0x3f,0xc0,0x06,0x6f,0x17,0x4e,0xe4,0xcc,0xf2,0xb3,0x09,0x3c,0x9d,0x74,0xbd,0x7c,0xca,0x3a,0xb7,0x1d,0x9b,0x00,0xfd }, { 0x28,0x52,0x50,0xed,0xc3,0xbc,0xfc,0xd9,0x02,0x7b,0xba,0x12,0x17,0x6d,0x34,0x3a,0x26,0x03,0x56,0x72,0xd5,0xb4,0xa8,0x11,0x55,0xd4,0xe3,0x7a,0x2f,0xd2,0x0b,0xae,0x78,0x66,0xc0,0x86,0xf4,0xad,0x7e,0xa8,0x3f,0x72,0x84,0xad,0x10,0x46,0xc1,0x71,0x6e,0x9b,0x1a,0x2c,0xf1,0xef,0xf3,0x23,0xf9,0xde,0x45,0x5a,0x54,0xe0,0xab,0x97 }, { 0x83,0xed,0x91,0xed,0x9c,0x82,0x45,0xff,0x05,0x0f,0x8b,0x54,0xad,0x6d,0xaa,0x78,0x18,0x3f,0x83,0x10,0x91,0x68,0x58,0x07,0x43,0x8f,0x47,0x41,0x59,0x44,0x74,0x3c,0xaf,0xfc,0xf5,0xea,0x86,0xb3,0x48,0xc6,0xca,0x01,0x0c,0xa5,0x66,0x4f,0xa1,0x5f,0xf7,0xc4,0xc1,0xda,0x53,0x22,0xae,0xe4,0xe0,0x3c,0x6b,0xf2,0x4b,0x6d,0x80,0xa1 }, { 0xdb,0xc0,0x91,0xd8,0x99,0x44,0xb4,0x4e,0xb6,0x51,0xd0,0xcc,0x32,0x51,0x61,0xc0,0x38,0x40,0xe5,0x63,0x81,0x7c,0x66,0x62,0xf0,0xf2,0xef,0xdb,0x22,0x0c,0xa9,0xa7,0x09,0x2d,0x80,0xea,0xae,0x85,0x67,0x95,0x2d,0x57,0x92,0x6d,0x1e,0x4a,0xa5,0xfc,0x63,0x67,0x30,0x9f,0xe9,0x61,0x92,0xc8,0x4d,0x20,0x58,0x83,0x16,0xc8,0xe7,0x6b }, { 0x10,0x55,0x43,0x5e,0x64,0xb6,0x80,0xec,0x2b,0x0b,0xfe,0x86,0x96,0x58,0xcd,0x6a,0xa4,0x3d,0x88,0x77,0xd6,0x77,0xa7,0x9f,0xee,0x8b,0x5b,0xe7,0xfa,0xe0,0x70,0x38,0xe0,0xd1,0x28,0xeb,0x70,0xc0,0x7f,0xae,0xef,0xc1,0x7b,0x2a,0xf1,0x65,0x9a,0xcb,0xfb,0x07,0xc5,0x74,0x90,0xea,0x5f,0x1a,0xa7,0x77,0x88,0x39,0x65,0x51,0x6d,0x3d }, { 0x90,0x18,0xba,0xa1,0x1e,0x93,0x8f,0x23,0xb3,0x22,0x48,0x9c,0x6e,0xe0,0x6d,0x88,0xad,0x3a,0x6d,0xd5,0xf5,0x18,0xe8,0xd7,0xd6,0xbe,0x4f,0xd0,0x7e,0xf7,0xd7,0x2d,0xc9,0xc3,0x82,0xd8,0x71,0xf9,0xc6,0xc9,0xe8,0xc1,0x47,0xf7,0x43,0xbf,0x00,0xb7,0x4e,0xb5,0x6d,0x80,0x02,0x73,0x6a,0xeb,0x12,0x67,0x04,0x4f,0xc0,0x36,0xce,0x68 }, { 0x03,0xdb,0x8d,0x4d,0xde,0xd2,0xc2,0x58,0x9f,0x2f,0xd1,0xe8,0x8b,0x20,0xf4,0xcf,0x3e,0xef,0x0c,0xa8,0xa4,0xa6,0xaf,0xb8,0x65,0x84,0x97,0x70,0x85,0x3d,0x85,0xdd,0x49,0x01,0xe1,0xbe,0x09,0x98,0x64,0x4d,0xef,0x90,0xa2,0x8d,0x07,0x45,0x94,0xe8,0xb6,0xfb,0x5e,0x81,0x4b,0x6a,0xa9,0x13,0x5c,0x4d,0x7e,0x41,0x93,0x32,0xbb,0xdc }, { 0xed,0xd5,0x13,0xbb,0xfe,0xf3,0xfb,0x24,0x63,0x33,0x60,0x38,0x13,0x50,0x04,0xa3,0xdd,0x2f,0x1e,0x9b,0xff,0x60,0xa8,0xa6,0x07,0x59,0x6c,0x1f,0x53,0x6b,0xa6,0x02,0x25,0x7b,0x59,0x8c,0x3b,0xb3,0xf7,0xa9,0x7c,0x59,0x2c,0xa2,0x90,0xf0,0x18,0x8b,0x61,0x85,0x4d,0x44,0x2d,0xa5,0xdc,0xac,0x3b,0x80,0x86,0xf9,0x45,0xdb,0xf9,0x93 }, { 0x7d,0xb5,0x01,0xdf,0x70,0x3c,0x8a,0xa0,0x0c,0x0b,0xb6,0x09,0x11,0x24,0xe0,0x90,0x6f,0x20,0xc1,0x28,0x90,0x87,0x9a,0xcd,0x73,0x75,0x1e,0xac,0xee,0x44,0x19,0xbe,0x28,0x4d,0xfa,0xb2,0xc6,0xf0,0xda,0x25,0xb9,0x21,0xd8,0x01,0x58,0xde,0xc6,0x73,0x4e,0x09,0xfb,0x4e,0x05,0x36,0x81,0xa4,0x67,0x21,0xfd,0xe6,0x88,0x23,0xc6,0x25 }, { 0xc4,0x72,0xc1,0x06,0x2e,0xd0,0x36,0x6f,0x81,0x8d,0xeb,0xc0,0x7e,0xf8,0x89,0x0e,0x1f,0xc5,0x14,0x7d,0xd0,0xdc,0x26,0x7c,0x17,0x1f,0x3a,0x2a,0x3e,0x07,0xe4,0xf1,0x41,0x82,0x0e,0x01,0x94,0x5f,0x70,0xe9,0x64,0x32,0xab,0x5a,0x84,0xd6,0x67,0xd8,0x85,0xf3,0xb7,0xb1,0xe2,0x2b,0x5d,0x8a,0x57,0x1c,0x68,0x3d,0x86,0xb0,0xda,0xa9 }, { 0xcc,0xe9,0xc6,0x2e,0xc6,0x3c,0x1b,0x57,0x8f,0xa4,0x85,0xda,0x6f,0x74,0x6f,0x60,0xeb,0xd1,0x4a,0xc5,0x4c,0x41,0x66,0x8f,0x25,0x00,0xe0,0xc9,0x10,0x41,0x7f,0x35,0xfa,0x37,0xbe,0x24,0x88,0x47,0x19,0xd0,0x4d,0xd7,0xd6,0x26,0xdd,0xcf,0x76,0x45,0x07,0x08,0xae,0x72,0xce,0xbf,0x44,0x9a,0x27,0xa5,0x56,0x58,0xb3,0xdd,0xe6,0xb6 }, { 0x45,0x4e,0x27,0xcb,0xfa,0x01,0xcb,0xe5,0x42,0xcd,0xdf,0x6f,0xba,0x29,0x97,0x1e,0xf8,0xc4,0x90,0x96,0x98,0x7f,0x88,0xef,0xc0,0x51,0x29,0x99,0xfa,0x86,0x34,0x37,0x13,0x4a,0x4b,0x21,0x4c,0xf0,0x1e,0x9e,0x9e,0x7e,0x5f,0x8f,0x2f,0x81,0x01,0x7c,0x6b,0x8d,0x88,0xd5,0xc6,0x51,0xb9,0x86,0x17,0x9b,0x00,0xe5,0x51,0xa6,0xbb,0xe6 }, { 0x10,0x76,0x0f,0x0d,0x22,0xf3,0xa6,0x66,0x0b,0x2b,0x08,0x37,0x75,0x6b,0xd4,0xec,0xc0,0x43,0x90,0x2a,0x4c,0xc5,0x33,0xf3,0x67,0x24,0xff,0xf9,0x78,0xee,0xb4,0xe2,0x2b,0x9c,0x24,0xae,0x58,0x62,0x7b,0x0c,0x29,0xa4,0x37,0x82,0x68,0xf7,0x37,0x42,0x4a,0x19,0x21,0x87,0x3a,0x4c,0x54,0xeb,0x83,0xb1,0xc6,0x7b,0x1b,0xbe,0xa1,0x94 }, { 0x0e,0xcf,0xef,0x25,0xfb,0xc3,0x69,0x8c,0x06,0x22,0x6d,0x56,0x29,0xc5,0x1f,0xff,0xb9,0x41,0x30,0x62,0x3c,0x2c,0x03,0x17,0x38,0x28,0x17,0x9c,0x80,0x84,0xa5,0x99,0x81,0x32,0xb9,0x8b,0xf2,0x95,0xf2,0xc0,0xb2,0x47,0x1c,0x83,0x9f,0x9a,0x79,0x82,0xee,0x9d,0x57,0xdf,0x99,0x2f,0x62,0xb2,0x3d,0xcb,0x4c,0x13,0xd5,0x20,0xe9,0x22 }, { 0x14,0x59,0x45,0x22,0x09,0xa2,0x95,0x73,0x25,0x08,0xd6,0x63,0xb0,0x2c,0x86,0xad,0x96,0xe5,0x40,0x6b,0x27,0x5e,0xcd,0x30,0xdf,0x74,0x63,0x2f,0xc6,0x50,0xe8,0x6f,0x5f,0xc8,0xc4,0x04,0xe5,0xd8,0x13,0x2b,0x24,0xec,0x58,0xa7,0x5b,0x38,0xc2,0xc2,0x53,0x5c,0xbb,0x64,0xa0,0x3d,0xd4,0x63,0x3a,0x0a,0x63,0x02,0xfd,0xff,0x91,0xf0 }, { 0xf1,0x1f,0x5d,0x1d,0xdc,0xbb,0xe3,0x46,0x9e,0xc2,0xc0,0xfe,0xcc,0x2f,0x9b,0x18,0x07,0x59,0x69,0x94,0x4b,0x3b,0x7e,0xdb,0x64,0x46,0x30,0xba,0x41,0x33,0x0c,0x21,0xd2,0x00,0x45,0xd6,0x57,0x02,0x78,0xc2,0xb3,0xe3,0x75,0x0f,0x78,0x87,0x16,0x61,0x0c,0xaf,0x2c,0xbd,0x57,0x92,0x77,0x15,0x54,0xe0,0x6c,0x77,0x49,0xee,0x7a,0xe0 }, { 0x4a,0xb2,0x35,0x93,0x7b,0xc6,0xfb,0xe7,0x0b,0x2b,0x4b,0x0b,0x57,0xe4,0x64,0xef,0xfa,0xf2,0x83,0xa2,0x94,0x82,0xe3,0xfa,0xa7,0x3e,0x4e,0x84,0xd4,0x41,0xae,0xd9,0x2a,0xca,0xbf,0x97,0xb0,0x58,0xe9,0xdc,0x0d,0xc1,0x7e,0x9e,0x96,0xd2,0x2e,0x74,0x16,0xed,0x5c,0x85,0xa7,0x44,0x5a,0xf5,0xfb,0x95,0x15,0xa3,0x24,0x6f,0x05,0xce }, { 0x3d,0xe9,0x5c,0x12,0x26,0x34,0xa4,0x47,0x29,0x2e,0xb9,0x00,0x16,0x6d,0xf8,0x8d,0xe8,0x87,0xe5,0x73,0x82,0xea,0xd9,0xcb,0x79,0xfa,0xfc,0x4a,0x19,0x47,0xb9,0xf3,0x7c,0x1f,0x61,0x57,0x88,0x4f,0xde,0x79,0xb1,0x76,0xec,0x3c,0xb9,0x46,0x50,0xb4,0xb5,0xac,0x3d,0x96,0xdb,0x50,0x35,0x8d,0x0b,0x0c,0x76,0x45,0xdc,0x56,0x76,0xa2 }, { 0x55,0xd5,0x39,0x8d,0x16,0x66,0x43,0x2b,0x55,0x75,0x82,0xc9,0x9a,0xd5,0x34,0x58,0x01,0x01,0xfb,0x06,0xa0,0x50,0xe6,0x2c,0x32,0x0f,0x09,0xc3,0x83,0x9b,0xb8,0x5f,0x57,0x6e,0x22,0x90,0x49,0xff,0x8e,0x2d,0x05,0x9c,0x6a,0x9e,0x8e,0xba,0xa7,0x2a,0xd9,0x0d,0x6a,0x7f,0x18,0x33,0xd9,0xe1,0xf7,0xf6,0x31,0x18,0x4f,0xed,0x93,0x6f }, { 0xdb,0x5a,0xa7,0xa5,0x96,0xe1,0x10,0x68,0x2a,0x1f,0x8b,0xcd,0x38,0xbf,0x9c,0x99,0xa3,0x6d,0x3f,0x67,0x94,0x07,0x70,0x71,0x7d,0xda,0x6d,0x48,0x2b,0x84,0x8a,0xcb,0x19,0xf3,0x8d,0x27,0x68,0x18,0x05,0xeb,0x76,0x01,0x1f,0x80,0xaf,0xeb,0x41,0x55,0x8c,0x0f,0xdc,0xdc,0x35,0x66,0xda,0xdf,0x75,0x87,0x44,0xc6,0x9c,0x79,0x27,0x36 }, { 0x41,0x9a,0x4f,0x03,0xae,0x76,0x17,0xcc,0xfd,0x23,0x63,0x95,0x85,0xd5,0x6f,0x8d,0x28,0xb1,0xeb,0x93,0xff,0xf3,0xc1,0x18,0xf6,0x42,0xe9,0x5b,0x4f,0x49,0x11,0x55,0x23,0x7c,0x2d,0x34,0x3a,0x6e,0x83,0x5b,0x2e,0x33,0x4b,0x14,0x84,0x80,0x45,0x45,0xc7,0xab,0x4a,0x22,0x07,0x4c,0x68,0x89,0x4b,0x91,0xba,0x6a,0xd4,0x89,0xbb,0xc7 }, { 0x8f,0xb0,0x01,0x83,0xf8,0x32,0xf6,0x83,0x6b,0x3f,0xa7,0x2a,0x87,0xd8,0x6a,0xea,0x79,0xe8,0x4a,0x30,0x08,0x5e,0xd3,0x0f,0x59,0xad,0xa6,0x1c,0xa5,0xae,0xde,0xa8,0x3c,0x6f,0x9c,0xa2,0xd4,0x7d,0xc0,0xb6,0xcf,0x97,0xd2,0x0e,0x46,0x6a,0xf0,0x74,0xc6,0xcf,0x85,0x3e,0x12,0x47,0xb0,0xe8,0xc5,0x70,0x84,0xf8,0x3c,0xbe,0x25,0xd3 }, { 0xa2,0x15,0x7e,0xb3,0xda,0xdf,0x28,0x28,0x37,0x23,0x04,0xad,0x31,0xab,0xf7,0x5e,0xc3,0xe6,0x1d,0xae,0x0b,0x35,0xd0,0xfc,0xc0,0x84,0x1b,0xa9,0xe4,0x9e,0x8f,0x34,0x08,0x17,0x69,0x7d,0xa7,0x0d,0xf3,0x1d,0x0f,0xb4,0x25,0x77,0xcc,0xfb,0xe5,0xa2,0x06,0x4b,0xbb,0xa3,0x5b,0x18,0x7f,0x4e,0x1a,0x8e,0x98,0x32,0x89,0xee,0xbe,0xf3 }, { 0xeb,0x5d,0x1c,0xe1,0xdf,0x11,0x57,0x67,0x76,0x10,0x38,0x46,0x24,0xaf,0xac,0xe9,0x77,0xbc,0xa5,0x82,0x43,0xf7,0xec,0x34,0x2b,0x85,0x98,0xaa,0x90,0xa4,0xe1,0x29,0x6e,0x12,0x69,0x42,0xbb,0x0d,0xdf,0x41,0x15,0xf2,0xba,0x3e,0xd5,0xb7,0xdc,0x6c,0x5d,0x64,0x96,0xf6,0x52,0x77,0x57,0x46,0x41,0x75,0x5c,0x46,0x4d,0x76,0xf9,0xd4 }, { 0xdc,0x38,0x6d,0xb7,0xf4,0x09,0xd9,0xe0,0xfb,0x28,0x65,0x2a,0x88,0xc3,0x76,0xd2,0x27,0xfc,0xe6,0x2d,0x1d,0xf1,0x45,0x15,0xd4,0xeb,0x28,0x1c,0x2d,0x5c,0x50,0x2e,0x52,0x6c,0x63,0x76,0xcf,0x20,0x18,0x8a,0xe7,0xe6,0x9c,0x45,0x9d,0x7a,0xd7,0x2b,0x37,0x2c,0x3d,0xb3,0xcc,0x76,0x0b,0x7b,0x23,0xb4,0x7a,0x25,0x7b,0xfc,0x1e,0x4f }, { 0x85,0x52,0x0e,0xe9,0xce,0x56,0x40,0x94,0x07,0xde,0x0d,0xe6,0x58,0x2b,0xe7,0x25,0xdd,0xdb,0xbd,0xff,0x2c,0xe4,0x16,0x6d,0xfb,0x91,0xcd,0x39,0x58,0x8f,0xa4,0x4c,0xfe,0x12,0x28,0xe5,0xc0,0x0f,0x9d,0xf3,0x47,0x53,0xdb,0x7d,0x30,0xde,0xc0,0x09,0xc5,0x98,0x10,0x58,0x7d,0xd1,0x80,0x25,0xa8,0x95,0x29,0x80,0x54,0x9a,0xe7,0x01 }, { 0x88,0x42,0x86,0x46,0x3c,0xa0,0x87,0x26,0x94,0xfe,0xba,0xb2,0x4b,0xfc,0x33,0x83,0xcc,0x26,0x89,0x40,0xef,0xec,0x85,0xec,0xc6,0x2d,0xbc,0x9c,0x32,0x51,0x39,0x26,0xf7,0x78,0x42,0x9c,0x01,0xc2,0xdd,0x5a,0x69,0x66,0x0d,0xb3,0x65,0xd8,0x12,0x07,0xce,0x0e,0xb1,0x22,0xeb,0xdb,0xc1,0x5a,0x0e,0xe4,0x28,0x2a,0xaf,0xb8,0xa5,0x4d }, { 0xc4,0xf8,0x42,0x50,0xad,0x71,0x45,0x2a,0x39,0x8a,0xd0,0x3f,0xb5,0xb2,0xb6,0xff,0xdb,0x3e,0xca,0xa4,0x90,0x6a,0x08,0x57,0x4d,0xf7,0x6e,0x5c,0x62,0xf6,0xed,0xee,0x85,0x7f,0x12,0x09,0x5f,0x01,0x0f,0x4b,0xff,0x41,0x78,0x5c,0xcf,0xe9,0x29,0xbf,0xee,0xab,0xbf,0xf5,0x92,0x0d,0xb2,0x6c,0xdb,0x09,0x46,0x1c,0x56,0x81,0xcf,0xdf }, { 0x78,0x9b,0xbe,0xb0,0x19,0x9b,0x2c,0x38,0xb4,0x8c,0x9a,0xd4,0x80,0x8a,0x2e,0x9f,0x0f,0x3d,0x27,0xb9,0x4c,0xd4,0x41,0x7f,0x00,0x57,0x91,0xea,0x7c,0x2a,0xe6,0x35,0x14,0x35,0x7e,0x61,0x99,0x18,0x9b,0xc6,0x86,0x80,0xb7,0x9f,0x62,0xf1,0x21,0x7a,0x7f,0xef,0x5a,0x9c,0x2c,0xa1,0x55,0x0f,0xb7,0x81,0xdf,0xec,0xbf,0xe9,0x6d,0xb6 }, { 0x9e,0x6f,0x42,0x23,0xa5,0x5f,0x89,0x18,0x35,0xbd,0x06,0x60,0x6c,0x95,0xbd,0x96,0xce,0xe4,0x1b,0xdc,0x2c,0xab,0xd2,0x7e,0x3c,0x93,0x35,0xce,0x29,0x81,0x05,0xe0,0x59,0xf7,0x90,0x23,0x89,0x74,0x21,0xf1,0x94,0xf5,0xe7,0x34,0x21,0xb9,0xa3,0xae,0x30,0xc1,0x70,0x6a,0x53,0x61,0x61,0xe5,0xba,0x5b,0xdd,0xd3,0x6c,0xea,0x08,0x3b }, { 0x87,0xc1,0xd9,0x9c,0x5e,0xad,0x72,0xde,0x2c,0xbc,0x4a,0x51,0x3a,0x0a,0x9b,0xbd,0x51,0x56,0xb3,0xfd,0x89,0xb8,0x46,0x39,0xb1,0xf1,0x1f,0x16,0xf5,0x29,0xb1,0xcc,0x7e,0x16,0x54,0xc6,0x98,0x5d,0x0b,0xcd,0xb8,0x61,0x7a,0x6c,0xa5,0x5e,0xf6,0x83,0xbb,0x0d,0x0e,0xb2,0xc5,0xb2,0x75,0xe3,0xcf,0x26,0x97,0x8d,0xd5,0xa9,0x4d,0x6c }, { 0xc8,0x9e,0xde,0x2e,0xb7,0xf7,0x58,0x52,0x0f,0x2a,0x9d,0xec,0x26,0xe4,0xb0,0xe7,0xbb,0xea,0x91,0xf3,0x34,0xee,0xfd,0xac,0x18,0xa0,0x42,0x4b,0xcf,0x80,0xe3,0x7a,0x51,0xad,0x85,0x12,0x21,0xea,0x87,0xbc,0x39,0x46,0x4c,0xfe,0x98,0xc9,0xc9,0x40,0x03,0x4e,0x0b,0x17,0xdd,0x55,0x10,0x00,0x56,0x71,0x06,0xa5,0x5a,0xf3,0xc4,0x90 }, { 0x28,0x00,0x04,0x3a,0xda,0x09,0x82,0xe2,0x2d,0xdb,0x6c,0x3d,0xdc,0x7f,0x43,0xd5,0x37,0x19,0xa8,0xb6,0x6b,0xb1,0x9b,0xe6,0xf0,0xf6,0x79,0xf1,0x0b,0x79,0x84,0x7d,0x0f,0x99,0x17,0x46,0x67,0xe8,0x29,0x09,0xb6,0xc0,0x79,0x65,0x84,0xa4,0xdc,0x3b,0xa8,0x70,0x58,0xdb,0xb8,0x51,0x3a,0xe9,0xfe,0x5b,0x00,0x83,0x90,0x8d,0x9e,0xda }, { 0x82,0xad,0x29,0xef,0x60,0x0f,0x7c,0x71,0xbd,0x7c,0x8d,0xb6,0x5e,0x63,0xf8,0x2e,0x82,0x4f,0x80,0x02,0xcc,0x3c,0xa8,0x55,0x6e,0x11,0x49,0x15,0x41,0xc5,0x6e,0x43,0x94,0xb4,0x71,0x7e,0x66,0x81,0x94,0x75,0x26,0xa7,0x82,0xbb,0xb6,0xdf,0x12,0xff,0xb8,0xd0,0x6d,0x91,0xfc,0x6c,0x08,0x30,0xd8,0x46,0x84,0x6f,0x95,0xcf,0x8b,0x85 }, { 0xb2,0xa9,0x21,0x4b,0x34,0x34,0x98,0x69,0xcb,0xed,0x7e,0x3d,0xa1,0x2c,0x1b,0xfa,0x7a,0x25,0x34,0x2d,0x52,0x87,0xe9,0x71,0xb6,0xe7,0xea,0x3a,0x28,0x51,0xfb,0xa1,0xf6,0xfb,0x69,0x82,0x43,0x4f,0xee,0x41,0xf3,0xd4,0xd5,0x5d,0xbe,0x6d,0x44,0xb7,0x00,0x05,0xf2,0xf5,0x1d,0x9a,0xdd,0xc3,0x9f,0xba,0xd7,0x1d,0xaa,0x7e,0xf7,0xf4 }, { 0xb4,0x95,0x8c,0x4e,0x21,0xde,0x21,0xd4,0x7f,0xb6,0x0c,0x55,0xed,0xb9,0x25,0x55,0x9e,0xaa,0x85,0x20,0xa5,0xed,0x11,0x5e,0x3e,0x0b,0x5d,0x5a,0xd4,0x44,0x1f,0xbb,0xfc,0xd6,0xe7,0xbf,0x99,0x66,0x40,0xef,0xe5,0xc0,0x41,0xfb,0xc3,0x8c,0xb7,0xe1,0x2d,0xb9,0xf6,0x13,0x2d,0x46,0x38,0x41,0x4c,0x7e,0x3c,0x9f,0x4a,0xdd,0x71,0x18 }, { 0x6c,0x7d,0xe4,0x4d,0x9b,0x3a,0xd7,0x13,0x6f,0xf2,0x81,0x86,0x05,0x33,0xdf,0x71,0x8b,0x9d,0x6a,0x5f,0x7a,0x6a,0xdc,0x61,0xd7,0x46,0xaf,0xad,0xb7,0x55,0x56,0x0f,0xbf,0xd3,0x7b,0x6f,0xff,0x10,0x63,0x0a,0x86,0x98,0xd0,0xe0,0x4f,0x3b,0xa8,0x54,0x2a,0x91,0xa8,0xf4,0x41,0xf5,0xec,0x62,0x2c,0xb7,0x8f,0xa5,0x46,0x32,0x55,0x21 }, { 0xa4,0x1e,0x9e,0x9e,0xd5,0x87,0x64,0x81,0xe7,0x7c,0xeb,0x19,0xf8,0x4d,0xf2,0x58,0x2c,0xdd,0x70,0x4d,0xbc,0x1a,0x71,0xc7,0xfc,0x4d,0xa1,0x17,0x6b,0xd0,0x0b,0x59,0x50,0xdc,0x31,0x72,0x3b,0x30,0xf2,0xb6,0xda,0x4e,0x1e,0xd1,0xef,0xc7,0x39,0xb8,0x5c,0xd2,0x53,0x56,0x3d,0xd4,0x35,0x9f,0xe8,0xdd,0x28,0xcd,0xcf,0x2e,0x6f,0x15 }, { 0x60,0x73,0x84,0x2a,0xe1,0xe9,0xeb,0x54,0xea,0x6a,0xfc,0xbb,0xe1,0x62,0x54,0xbc,0x18,0x86,0xf2,0xae,0x53,0x5e,0x88,0xf9,0x16,0x3f,0x34,0xf6,0xb9,0x85,0x99,0x67,0xff,0x52,0x0b,0x4f,0xcb,0xfb,0xab,0xf6,0x55,0x33,0x68,0x67,0x96,0x3b,0x83,0xd8,0xe2,0xae,0x53,0xc8,0xac,0xf2,0x7a,0x3d,0xe4,0x20,0x4d,0xaf,0x38,0x8b,0xce,0x1f }, { 0xc0,0x2a,0x0f,0x2e,0x94,0xcc,0x35,0xac,0x2c,0x5f,0x09,0xa8,0x7d,0x68,0x86,0xdf,0x32,0xa6,0xd9,0x4e,0xbf,0x58,0xe7,0x93,0xab,0x0c,0x96,0xef,0x40,0x14,0x03,0xf9,0x8e,0xba,0xa8,0xa1,0x8e,0x49,0x1a,0xae,0x0f,0x71,0x6d,0x45,0x7c,0x5c,0xd4,0x73,0xab,0xb9,0x13,0x06,0x60,0x00,0xad,0xb5,0x21,0xf5,0x96,0x39,0xa7,0xed,0x80,0xb0 }, { 0xb9,0x60,0x06,0xfc,0xfe,0x00,0xab,0xb1,0x05,0xb9,0x43,0x63,0xa1,0x27,0xd4,0x69,0xae,0x04,0xda,0x21,0x6e,0xea,0x59,0x16,0xba,0xc3,0xd5,0x0b,0x7c,0x4c,0x76,0xd0,0x16,0xc7,0x7e,0x18,0x18,0x14,0x3b,0x1d,0xea,0x6f,0xd6,0xe2,0xc6,0xf4,0x36,0x58,0x0a,0x85,0xf1,0x36,0x41,0xbf,0x44,0x91,0xe2,0x4d,0x27,0x9d,0x1f,0x35,0x81,0x54 }, { 0xb8,0xd5,0x50,0xa1,0x0d,0x92,0x65,0x57,0x1a,0x76,0x5d,0xe1,0x49,0x13,0xe2,0x6b,0x9a,0x6c,0x22,0xe3,0xec,0xa4,0x76,0x58,0xa6,0x91,0x73,0x87,0x5f,0x7a,0x8d,0x33,0xde,0xd9,0x08,0xe0,0xed,0x16,0x1c,0x30,0x7d,0x17,0x90,0xc9,0x70,0x73,0xe1,0x88,0x54,0x1c,0x3a,0xaf,0x58,0x6f,0x67,0x0d,0x17,0x77,0xb7,0x7b,0xfe,0xc3,0xab,0xee }, { 0x59,0xa3,0x4e,0x77,0x3d,0x36,0x89,0xf9,0x03,0x4f,0x1e,0x37,0xd9,0x7e,0x1a,0xc7,0xff,0xe5,0xf8,0x34,0x4a,0x41,0x45,0x3e,0x2d,0x08,0xee,0x73,0xab,0xe7,0xeb,0xa5,0xe8,0x51,0x21,0xab,0xca,0x95,0x5e,0x09,0x85,0xab,0xbb,0x77,0x17,0xb1,0xd0,0x87,0x4a,0x14,0x39,0x96,0x56,0x4b,0xd9,0xfc,0x6f,0x64,0xc9,0x21,0x0e,0x17,0x3c,0x02 }, { 0xd0,0xe0,0x91,0x96,0x88,0xe9,0x32,0xb6,0x41,0x34,0xbf,0x13,0xb3,0x46,0x02,0x7c,0xd8,0xa7,0xfd,0x0b,0x7d,0x76,0x1d,0x04,0xac,0x24,0xe6,0x43,0x6e,0x12,0xe1,0xdf,0x06,0x9c,0x9a,0x59,0xfe,0x7d,0x14,0x52,0xb4,0xeb,0x60,0xb6,0x91,0xdb,0xf8,0x67,0x54,0x4c,0xc4,0xbd,0x98,0x46,0xb8,0xdf,0x6a,0x65,0x44,0xdb,0x9f,0xd2,0x8f,0xbe }, { 0xa7,0x61,0x63,0xf8,0xdd,0xaf,0xb8,0x0e,0xcf,0x43,0xbd,0xd9,0xa1,0x09,0x53,0xd9,0xd0,0xf5,0x48,0x93,0x40,0xab,0xed,0x86,0xb7,0xc2,0xb8,0xb3,0xbf,0xc2,0xfd,0x41,0x76,0x9e,0x27,0x23,0x7e,0xc9,0x41,0x4d,0x80,0xa3,0x74,0x34,0x78,0x61,0xc2,0xfd,0x5a,0xf4,0x3a,0xc6,0x87,0x0a,0x1a,0xa3,0x13,0xd1,0x9f,0xd5,0x37,0x71,0x6e,0xfa }, { 0x49,0xc6,0x96,0xad,0x84,0xa3,0xa2,0xcc,0x66,0xd8,0xc6,0xbe,0x3c,0x06,0x4a,0xbe,0x8f,0x71,0x37,0xdd,0xf2,0x87,0xbe,0x11,0xe2,0x7b,0x29,0xcc,0x18,0xda,0xc2,0xd8,0xfb,0x7c,0xbe,0xda,0xe8,0x54,0xb6,0xdf,0x57,0x89,0x62,0xc7,0x08,0x8d,0xde,0x4b,0x4d,0x0f,0xec,0x2a,0xcf,0xc3,0xe0,0x19,0xba,0x5c,0xf2,0x1d,0xe3,0xa6,0xae,0xe8 }, { 0x00,0xd2,0x6a,0xd1,0xbd,0x70,0xd6,0x1b,0x97,0xfc,0xfb,0xc4,0x2f,0xbe,0xee,0x9f,0x95,0x4e,0x83,0xa9,0xde,0xf0,0x0e,0x12,0x77,0x62,0xc0,0xa3,0xb7,0x92,0x89,0xed,0x7e,0x9b,0x72,0x43,0x7f,0x2a,0x09,0x6a,0xcf,0x3a,0x98,0xd8,0x5a,0xea,0xf9,0x8d,0x82,0xee,0xf1,0x38,0x70,0x5e,0x60,0x63,0x94,0xbc,0x2e,0x51,0x22,0x87,0xde,0x5f }, { 0xe7,0xfe,0x1a,0x77,0x50,0x6a,0xeb,0xc7,0x1c,0x42,0x02,0x73,0x71,0xd3,0xac,0x47,0x95,0xf5,0xbb,0xf9,0x4b,0xf1,0x53,0x88,0x8e,0xb8,0xb6,0x73,0x00,0x50,0xf0,0x80,0x6a,0x87,0xc4,0x6d,0x10,0xe6,0x5d,0xaf,0x1d,0xe5,0x1e,0x78,0x93,0xcb,0x58,0x38,0xf8,0xed,0xfb,0x37,0x67,0x64,0x96,0xa8,0x48,0xc9,0x89,0xda,0x99,0xe9,0xe3,0x2b }, { 0xd5,0xfd,0xff,0xf5,0x1a,0xb5,0xec,0xca,0x9e,0xf1,0x47,0x9f,0x1f,0xa1,0xa6,0xd4,0x6c,0xba,0xaa,0x0d,0x00,0x7f,0x4a,0x78,0xca,0xb1,0x18,0x06,0x22,0x4e,0xbf,0x1b,0xb7,0xe2,0x14,0x25,0x27,0x74,0xf2,0x21,0xf7,0x7f,0x96,0xcf,0xcc,0x23,0xf1,0xba,0x68,0x6b,0x90,0xb0,0xb6,0x89,0x45,0xc2,0x1b,0xbc,0x47,0x2b,0x57,0xd6,0x12,0x82 }, { 0x9e,0x02,0xfb,0x86,0xb5,0x06,0x17,0x41,0x06,0x9f,0x16,0xf4,0x19,0xb1,0x23,0x08,0x5a,0x47,0xfd,0x7b,0xfa,0x47,0xb0,0x95,0x05,0xec,0x39,0x21,0xfa,0x72,0x67,0x2f,0xd6,0x22,0x30,0x5f,0xee,0xa9,0xf1,0x83,0x26,0x5a,0xb8,0xce,0x55,0x0b,0x0c,0x1e,0x11,0x74,0x1a,0x02,0x6e,0xd5,0xc3,0xde,0xb2,0x4f,0x5d,0x49,0xf4,0xb7,0x50,0x2d }, { 0x37,0x28,0x15,0x64,0x60,0x30,0xa9,0xad,0xc8,0x18,0xf3,0x0d,0x91,0xfb,0x14,0x1f,0xae,0x1a,0xde,0x4a,0x67,0x68,0xc0,0x44,0x9c,0xf0,0xec,0xef,0xb7,0xe5,0x02,0x86,0x2c,0xe8,0x01,0x45,0x41,0x28,0xbe,0x91,0xfb,0x88,0x6c,0x00,0x10,0xf2,0x48,0x7a,0x39,0xd4,0x14,0x6a,0x32,0xba,0x23,0xf0,0x3a,0x7e,0xa4,0x08,0x94,0xf5,0xc8,0x6e }, { 0x69,0xc0,0xe7,0x67,0xf9,0xbe,0xaa,0xbf,0xdb,0xcd,0xf3,0x04,0xa0,0xec,0x68,0xb5,0xf6,0xd6,0x71,0x03,0xcf,0x37,0x58,0x9f,0xd8,0x46,0xda,0x1a,0x1d,0xd4,0x47,0xb3,0xc5,0x17,0x41,0x6e,0x45,0x01,0x44,0x63,0xfc,0x9c,0xf1,0xc4,0x04,0x7d,0x02,0xac,0xe4,0x5d,0xa4,0x73,0x91,0x6a,0xa5,0x1d,0x7b,0x2d,0xc3,0xd0,0x80,0x33,0x45,0x2b }, { 0x68,0xf6,0xb8,0x54,0x27,0x83,0xdf,0xee,0xeb,0x5b,0x06,0xe7,0x0c,0xe0,0x8f,0xfe,0xfd,0x75,0xf3,0xfa,0x01,0x87,0x6b,0xd8,0x6a,0x70,0x3f,0x10,0xe8,0x95,0xdf,0x07,0xcb,0xe1,0xfe,0xba,0x92,0xe4,0x0c,0xe6,0xfb,0xc8,0x04,0x4d,0xfd,0xa4,0x50,0x28,0xcf,0x52,0x93,0xd2,0xf3,0x10,0xbf,0x7f,0x90,0xc7,0x6f,0x8a,0x78,0x71,0x26,0x55 }, { 0xb1,0xcc,0xd8,0x0f,0x9b,0x74,0x55,0xbc,0x77,0x84,0x96,0x3a,0x41,0xf4,0x2d,0xcd,0x24,0x94,0x08,0xdd,0x0d,0x60,0xa0,0x61,0xf9,0x5f,0xeb,0x4f,0x28,0x3f,0x5f,0xfa,0x06,0xff,0x93,0x5c,0xac,0x90,0x42,0x7b,0x8d,0x7d,0x8b,0xe9,0xb9,0x71,0xe7,0x03,0x3b,0x13,0x48,0x94,0x50,0x73,0x7b,0xcb,0x85,0xd0,0xfa,0x5c,0x83,0xce,0x6d,0x32 }, { 0xe1,0xb4,0x0c,0x54,0x8c,0x1c,0x0d,0x5f,0xf3,0xcf,0x09,0xcd,0x0e,0x55,0xe5,0x41,0x66,0x66,0x23,0xf1,0x72,0xe9,0x92,0x58,0x9d,0x10,0x53,0x1d,0x80,0xc1,0x5f,0xc7,0x1e,0xa8,0xaa,0xac,0x3f,0x38,0x4f,0xf9,0xf4,0x7d,0x81,0x12,0x07,0xf4,0x70,0x8f,0x00,0x92,0x45,0x20,0xde,0x9b,0xb6,0x24,0x17,0xca,0x84,0x68,0x2a,0x31,0x80,0x24 }, { 0x0b,0x98,0x1a,0x2a,0x2d,0x9c,0xae,0x6e,0x15,0x9d,0xb9,0x76,0x7f,0x60,0xc4,0x53,0x23,0x53,0x5a,0x7d,0xbe,0xe0,0xfb,0xbe,0x6a,0xbf,0x56,0xe2,0x9c,0x04,0x6a,0xef,0x99,0xa6,0x4f,0xb4,0xec,0x03,0xbb,0x1f,0xc1,0x96,0xfa,0x8b,0xe6,0x42,0x11,0xd8,0x89,0xfb,0xd6,0x03,0x8e,0xce,0x87,0x33,0x3f,0x40,0x67,0x39,0xf5,0x78,0x5c,0xc5 }, { 0x96,0x3e,0x31,0x5d,0xba,0x2a,0x02,0xdf,0x42,0x01,0xbb,0xa7,0xbc,0x72,0xa3,0x7e,0xf1,0xe4,0x9c,0x25,0x70,0x98,0x9e,0x56,0xa2,0x5b,0x59,0x7e,0x83,0x1e,0xba,0x7e,0x5c,0x02,0xba,0x13,0xc8,0x4a,0x39,0x35,0xa2,0xa3,0xcb,0x7c,0x52,0x16,0x7e,0x11,0x86,0x9d,0x0a,0xe5,0xc0,0xd5,0xf1,0x3c,0x3d,0xfa,0x4b,0x32,0x8e,0x7c,0x79,0xc0 }, { 0x61,0xed,0xe9,0xf9,0x8b,0xd2,0xd2,0x08,0xfe,0x1e,0x54,0x59,0xbc,0x20,0x62,0x76,0xad,0xf2,0x28,0xa2,0x9e,0x5c,0xfa,0xb7,0xe0,0x28,0xbd,0x1a,0xb3,0x58,0xb5,0x93,0x05,0xa9,0xa1,0x0c,0xb7,0x10,0xbe,0x88,0x61,0xc0,0x30,0x40,0x44,0xa3,0x17,0x21,0xd2,0xde,0x0c,0x1a,0x00,0x59,0x79,0x65,0x8a,0xd0,0x63,0xca,0x1c,0xef,0x96,0x0b }, { 0x6f,0xa2,0xd9,0x90,0x05,0x99,0x43,0x93,0x7b,0xe3,0x69,0x47,0x86,0x40,0xda,0x20,0xb3,0xe9,0x60,0xfd,0x62,0x6f,0x21,0x7c,0x6c,0x38,0xba,0x21,0x34,0x85,0x60,0xa9,0x9e,0xba,0x0c,0xc3,0x91,0x5a,0xc7,0xe8,0x37,0x54,0xa3,0x52,0xa6,0x98,0x5c,0x3a,0xfe,0x39,0xcd,0xab,0xc5,0x51,0xc5,0xee,0xb9,0x60,0x93,0x77,0xba,0xe5,0x27,0x57 }, { 0xf2,0x5a,0x39,0xdb,0xd6,0x05,0x65,0xf4,0x0f,0xab,0x83,0xdb,0xbf,0xbc,0xc8,0xba,0x50,0xde,0x43,0xa8,0x82,0x27,0x03,0x81,0x6d,0x5d,0x21,0x9f,0x8f,0xba,0x89,0xec,0x66,0x02,0x7f,0x45,0x50,0x4e,0x93,0x3a,0x7e,0x21,0x96,0x4b,0xe1,0x78,0x1f,0xa7,0x4f,0xd7,0xd2,0x10,0x17,0x99,0x41,0xe8,0x52,0x0f,0xd7,0x10,0x24,0x97,0xc2,0xf5 }, { 0x7f,0x94,0x60,0xa2,0x3d,0x47,0x4b,0x66,0xc3,0xb4,0x1d,0x17,0x93,0xb3,0x53,0xd6,0x64,0x6b,0xd3,0x54,0x04,0x73,0x9e,0x0d,0xd3,0x4d,0xab,0x17,0x67,0xea,0x1f,0x34,0xd0,0xd5,0x16,0x77,0x8f,0xb0,0x61,0x87,0x69,0xf1,0xf2,0xbf,0x8f,0x07,0x66,0x61,0xc6,0xff,0x81,0x51,0x24,0xe3,0x4f,0xfc,0x58,0xbe,0xc2,0xca,0xcd,0x90,0x63,0xec }, { 0x0e,0x3c,0x83,0x72,0xd2,0x6f,0x07,0x7e,0x81,0x4c,0x9e,0xf7,0x33,0xe4,0x50,0xb9,0x9b,0x00,0x44,0xb3,0x4f,0x92,0xf5,0xe3,0x67,0xfc,0x0a,0x3d,0xf2,0x54,0x5e,0x7a,0x18,0xc9,0xa0,0x53,0x1e,0x57,0xd7,0x97,0x2d,0x5f,0x69,0x69,0xb1,0x00,0xd6,0x06,0xb6,0xfd,0xd4,0xf7,0xbd,0xb5,0x5e,0x4a,0x67,0x79,0x38,0xc5,0x7c,0xc2,0x60,0xde }, { 0x02,0x29,0x2b,0x08,0x87,0xdb,0x3c,0x97,0x9f,0x79,0x6a,0x57,0xe0,0x32,0x1e,0xfc,0x80,0x0d,0x59,0x72,0x27,0x71,0xbc,0x76,0x2e,0x45,0xa0,0x05,0x2b,0x8c,0x5b,0xdb,0x10,0xb6,0x68,0x84,0x75,0x07,0xe3,0x82,0x70,0xcf,0x05,0x01,0xcf,0x41,0x85,0xf6,0x34,0xc8,0xf0,0x11,0x16,0x66,0x2d,0x89,0x4b,0xcf,0xe7,0xb5,0x20,0x72,0x56,0xf2 }, { 0x9e,0xcd,0xb1,0x5e,0xa2,0x18,0xb4,0x5c,0x6b,0x9a,0x30,0x27,0xa7,0xf5,0x74,0x0c,0xf3,0x8e,0x1a,0xca,0x71,0x93,0x4b,0x73,0xb6,0x47,0xbe,0xbf,0x46,0x2e,0x36,0xa7,0xb4,0x6f,0x00,0x93,0xb6,0xc7,0xda,0xb9,0x05,0x5b,0x35,0x60,0x3c,0x30,0x30,0x02,0xc1,0x96,0x2e,0xbc,0xc3,0xcb,0x89,0x8f,0x32,0x56,0xd6,0x17,0xd1,0xe1,0xf2,0xcb }, { 0xf6,0xa1,0x6b,0x60,0x54,0xbf,0x7a,0xc1,0xe0,0x1e,0xfc,0xe4,0x82,0x08,0x42,0x5e,0xea,0xf7,0xde,0xb9,0x5d,0xae,0x05,0xa0,0x7b,0xcf,0xfb,0x0d,0x18,0x40,0xa4,0x84,0x71,0x6c,0x92,0x11,0x6b,0x36,0xd2,0x91,0x59,0xcf,0x3e,0x32,0x4c,0x39,0x94,0x09,0xac,0xdc,0x81,0x7c,0x6f,0xe7,0xae,0x35,0x87,0xdc,0x4e,0x6e,0x63,0x8f,0x91,0x11 }, { 0xa1,0xab,0x43,0xb4,0xb9,0x9e,0x73,0xb0,0x8c,0xd5,0xc2,0x42,0x9d,0xc5,0x56,0x90,0x7a,0x0b,0xd0,0xc2,0x03,0xaa,0xe9,0x2a,0x86,0x9f,0xb2,0x2d,0xa9,0x90,0xd3,0xbb,0x3c,0x7b,0xf2,0xa6,0x56,0x05,0x8c,0xd0,0x4d,0x6d,0xf5,0x6f,0x43,0x84,0xec,0x10,0xdc,0x2f,0x2c,0x96,0x48,0x49,0x7c,0xbc,0x69,0x17,0xb0,0x20,0xb5,0x9e,0xc2,0xac }, { 0x94,0x8f,0x39,0x5d,0x3e,0x84,0x54,0x45,0x6a,0x3e,0xfd,0xd5,0xad,0x26,0x52,0xc1,0xbc,0x7c,0x0e,0xd1,0x7f,0xf7,0x8b,0x36,0x16,0x17,0xac,0xdc,0xdb,0xc1,0x0b,0xa4,0x98,0xba,0x00,0x06,0xd1,0x1a,0xe9,0xb5,0x72,0xa4,0x13,0x00,0xa1,0xb5,0xa9,0xef,0x5a,0x63,0xd2,0x97,0xff,0xd0,0x98,0x7c,0x1a,0x6b,0x40,0xca,0x6d,0xa2,0xbe,0x0f }, { 0xb1,0x0f,0xa2,0x74,0x58,0xac,0x74,0xe1,0x95,0xac,0xff,0x3f,0xf5,0x2d,0x2b,0x45,0x9e,0x80,0x71,0xfd,0x4f,0x05,0x42,0x2d,0xe8,0xd9,0xaa,0x05,0xd6,0x18,0x30,0x5c,0xc5,0x46,0x47,0x4e,0x46,0xf0,0xdc,0x93,0x2f,0xb0,0x72,0x60,0xc9,0x91,0x90,0xfb,0x7c,0xfb,0xfc,0xb6,0x5c,0xfb,0x85,0x76,0x74,0xdf,0xc9,0xad,0xf0,0xd4,0xa6,0x65 }, { 0xbd,0xdc,0x43,0xd7,0x33,0xb3,0xc6,0x3a,0x71,0x33,0x03,0x0f,0xff,0x73,0x80,0x1e,0x4c,0x82,0x60,0xd5,0x32,0x82,0xac,0xce,0x8a,0xc5,0xec,0xe5,0xe4,0x5f,0x68,0x2c,0x17,0x2f,0x3f,0x88,0x16,0x56,0x79,0xfd,0xd7,0xa0,0xe6,0xb0,0x23,0xb9,0xd7,0x22,0x0d,0x7c,0x58,0x39,0x9d,0xfe,0x32,0xa0,0x36,0xe3,0x07,0xab,0x58,0x04,0x52,0x96 }, { 0x9c,0x39,0xcb,0x60,0xa3,0x3d,0x56,0x3d,0x29,0x58,0xf4,0x9f,0x1b,0x6e,0xe9,0x45,0x82,0xf2,0xd7,0xa8,0x46,0x96,0x7f,0x0d,0xce,0xc9,0xb4,0xd7,0x8e,0x6d,0x84,0x83,0xf0,0x97,0xbf,0x1e,0xe4,0x93,0xe5,0x10,0x03,0xd1,0x96,0xb7,0xbc,0xa1,0x65,0x46,0xbb,0xad,0xe5,0x2f,0x3d,0xbe,0x43,0x68,0x94,0xb3,0x35,0x6f,0x6b,0x2c,0x50,0xfb }, { 0x66,0x9d,0x6a,0xe4,0xb6,0xb0,0x86,0x64,0x98,0x20,0x46,0xa0,0xa9,0x86,0xa8,0xaa,0xe1,0x50,0xbf,0x35,0x89,0xe7,0x86,0x4f,0xb7,0x5e,0x3d,0x43,0x1d,0xe1,0xc0,0x51,0x1e,0x8f,0x85,0x4d,0xc8,0x62,0x55,0xe7,0x52,0x5d,0xdc,0x2c,0x47,0x99,0xfb,0x4f,0x85,0x7c,0x68,0x79,0x91,0x1b,0x00,0x0c,0xac,0xe3,0x9c,0xa7,0xb9,0x41,0x2c,0x5c }, { 0xcb,0xc8,0x09,0xae,0x94,0xd7,0x80,0x2f,0x33,0xe8,0xa4,0xeb,0x3b,0x32,0x3e,0xd1,0x41,0x06,0x7a,0x63,0x36,0xfe,0x96,0xa7,0x13,0x63,0x78,0x4b,0x6c,0x7f,0x27,0xbf,0xbd,0x9c,0xbb,0x0e,0x18,0x11,0x5c,0x85,0xd7,0xaa,0xce,0xb5,0xdf,0xdc,0xdb,0x05,0x07,0xad,0x4d,0xd8,0x90,0x3d,0xaa,0x9a,0xec,0xc6,0x9d,0x63,0xca,0xa3,0x0f,0xa6 }, { 0xc1,0x9d,0x55,0x0f,0x30,0xd4,0x55,0x0c,0x98,0xb1,0xfc,0xa6,0x4c,0x3f,0x4f,0xed,0x5b,0xf6,0x75,0xc1,0x80,0x3f,0xc0,0xd2,0xd8,0xf9,0x92,0xc4,0x10,0xfe,0xa9,0xac,0xda,0x04,0xd6,0x8c,0x73,0x29,0x5c,0x75,0x4d,0xc4,0xac,0x26,0x63,0x19,0x93,0x50,0x2a,0xb6,0xf9,0xfc,0x57,0x25,0x19,0xd6,0x6d,0x43,0xf5,0x74,0x91,0x5b,0x76,0x7b }, { 0x8b,0xfb,0xee,0x24,0xc6,0xe5,0x26,0x18,0x37,0x15,0x1e,0xf3,0x49,0x50,0x6c,0xf4,0x82,0x2c,0x3c,0x1c,0xb4,0x3b,0x22,0x3b,0xbe,0x5c,0xc1,0x87,0x60,0xa8,0x1c,0xad,0xd7,0x51,0x27,0xca,0xa3,0x40,0x9b,0x59,0x0c,0xfd,0x28,0x9f,0xe7,0x1b,0xe1,0x51,0x8d,0x9f,0xc8,0xec,0xac,0xfd,0x23,0x76,0x69,0x86,0xb9,0x51,0x5f,0xf0,0x01,0x3e }, { 0x72,0x5b,0xdf,0x66,0xbd,0xae,0x3e,0xbf,0xb7,0x66,0xd8,0xfa,0xc1,0xc0,0x73,0x14,0xcb,0x02,0xa8,0x3a,0x92,0x4e,0x72,0x79,0x32,0xdd,0x9b,0xbf,0x8a,0x3b,0x21,0x28,0x4b,0x5b,0x57,0x67,0x33,0x0f,0x5f,0xba,0xb0,0xdf,0xca,0xca,0x22,0x81,0xdd,0x37,0x53,0x6a,0xf9,0x94,0xb1,0xa1,0xb9,0x69,0xa8,0xa3,0x59,0x05,0x76,0x9a,0x7d,0xe4 }, { 0xb8,0x18,0x1b,0xc6,0xba,0xdb,0xe1,0x24,0xc0,0x78,0x79,0x42,0x10,0x41,0xe8,0xf1,0x76,0xb0,0x7b,0x2b,0xd6,0x3a,0xfc,0x5c,0xc2,0x11,0x15,0x78,0x2f,0xb3,0x3b,0x93,0xbb,0x01,0x2f,0x51,0x18,0xcc,0xe7,0xca,0xde,0xef,0x10,0x4b,0xe9,0x67,0xdd,0x75,0xf9,0xac,0xc5,0xb1,0x4b,0xf6,0x27,0xdc,0x91,0x1a,0x5e,0x16,0x7a,0x54,0xea,0xd6 }, { 0xc2,0x14,0x24,0x6e,0xf9,0x47,0x1a,0xf0,0x4e,0x4e,0xb6,0xae,0x23,0xd8,0xf6,0x94,0x00,0x19,0xe1,0x72,0xa9,0x6e,0x0a,0xef,0x8b,0x3b,0x59,0xd5,0x44,0x0d,0x7e,0x0e,0xcb,0x52,0xd9,0xaf,0x0a,0x44,0x58,0x8f,0xc5,0x77,0xc9,0x50,0xc6,0x3a,0xd5,0xa5,0x97,0xf4,0x71,0x16,0xf9,0x1b,0x2b,0x67,0x23,0x6c,0x18,0xbe,0x41,0xd9,0xe1,0x91 }, { 0x3d,0x92,0x85,0x26,0x11,0x22,0x99,0x38,0x97,0x56,0x6e,0x74,0x30,0x18,0x1e,0x25,0xe2,0xfd,0x65,0xf1,0xb1,0xb1,0x73,0x74,0x7d,0xda,0x97,0xc5,0x5c,0x38,0xd4,0xe4,0xd3,0x2c,0xa0,0xa5,0xd4,0x68,0xea,0xb5,0x3f,0xf0,0x57,0x03,0x5c,0x28,0x69,0xea,0xcc,0x0a,0xb1,0x38,0x19,0x7a,0xbc,0x7f,0x6f,0xaa,0xef,0x00,0xc0,0xcc,0xf0,0xd3 }, { 0x82,0x52,0x5b,0xe3,0xf5,0xcd,0x7f,0x18,0xad,0xdf,0xa9,0xcf,0x29,0x26,0xad,0x52,0xff,0xa2,0x94,0xdb,0x05,0x68,0x76,0x1f,0xbd,0x2d,0x17,0x3b,0x91,0x19,0x59,0xe8,0x3a,0xca,0x20,0xe3,0x34,0x8e,0x36,0x35,0x8b,0x6c,0x18,0x8f,0xdc,0xff,0x4f,0x88,0xbc,0xe8,0x6a,0xf6,0x31,0xb7,0x75,0x76,0x2c,0x32,0xdf,0xc5,0xbb,0x72,0x44,0x7a }, { 0x55,0x51,0xc1,0xb5,0x3b,0x08,0x78,0xea,0xe3,0xfe,0xdc,0xfb,0xd3,0x14,0xc3,0x0f,0x0d,0x23,0xb7,0xfe,0x32,0x84,0x5d,0xc2,0xd9,0xde,0x4a,0x8b,0xd4,0x90,0x42,0x97,0x2f,0xaa,0xf8,0x50,0xde,0xf0,0x3f,0xfa,0x2d,0xc6,0xf8,0x5e,0x00,0xe6,0x5a,0x5c,0xf2,0xbe,0x73,0x83,0xdb,0x69,0x67,0xa6,0xdd,0xbd,0xec,0x1a,0x85,0x15,0x38,0x09 }, { 0x0b,0x80,0x3d,0x88,0x08,0xe3,0x74,0x0c,0x7b,0x35,0x90,0x8b,0xca,0x57,0x22,0x15,0x52,0xe6,0x53,0xf8,0x99,0x17,0x74,0xc4,0x3b,0x2b,0xab,0xab,0x11,0x5c,0xc2,0xc9,0xf6,0xa8,0xd8,0x8d,0x7e,0x6d,0x15,0xfc,0x45,0xf8,0x64,0x9c,0x14,0xe3,0xf4,0x63,0x75,0x5a,0x3c,0x1e,0xbf,0xf5,0x78,0xa4,0x83,0xed,0x2e,0x59,0x50,0x72,0xa3,0x6f }, { 0x6a,0x9c,0xb4,0x1f,0x4e,0x7d,0x95,0xcd,0x6b,0xf7,0x49,0x1e,0x6e,0xf9,0x6a,0x09,0x27,0x4b,0x13,0x6a,0x6b,0xeb,0x56,0xc9,0xb1,0x48,0x8f,0xe5,0x8e,0x20,0x58,0xc2,0xed,0xd9,0x3d,0x45,0xec,0x97,0xa9,0x66,0x02,0xb9,0x07,0xa6,0x08,0xa2,0x12,0x08,0x05,0x08,0x86,0xaa,0x9a,0xa7,0xf3,0x67,0xea,0x95,0xab,0x2b,0xc8,0x6b,0x14,0x95 }, { 0x16,0x4e,0x57,0xae,0x2b,0x31,0x7b,0x4a,0x11,0x8a,0x8c,0xb1,0xbb,0x95,0xaa,0x7f,0x87,0xc1,0xd3,0xa9,0x6f,0x8f,0xb0,0xed,0x82,0x71,0xc3,0x43,0x8e,0xf7,0x54,0x3d,0xfe,0x8f,0xe3,0x5d,0x06,0x32,0xda,0x9e,0xae,0x2a,0x7a,0x02,0x79,0xdf,0x89,0xdc,0x9c,0x3a,0x7d,0x8c,0x8c,0x72,0x01,0x1f,0x59,0x34,0xeb,0xc6,0x4b,0xa5,0x0f,0xad }, { 0xda,0xb5,0xfc,0x7f,0xe5,0x70,0x6d,0x90,0xb6,0xac,0x29,0xed,0x3f,0x20,0x3a,0xdd,0x37,0x8c,0x76,0xb9,0x44,0xd4,0x51,0x59,0x24,0x5c,0xdf,0xd1,0x7a,0x53,0xcb,0xf5,0x97,0xf6,0xcc,0x21,0x6d,0x05,0x57,0xb4,0x50,0x39,0x59,0x8f,0xd8,0xb4,0x91,0x97,0x87,0xb1,0x51,0x73,0xc1,0x66,0xc9,0x97,0xbf,0x8c,0x1d,0x4b,0x30,0x52,0xfb,0x1a }, { 0x26,0x57,0x76,0xdb,0xd9,0x31,0x95,0x4a,0xa9,0x4b,0x91,0x74,0xb3,0x5a,0x02,0x75,0x20,0x48,0x1c,0xa4,0x47,0x84,0x87,0x2a,0x51,0x20,0x29,0x2e,0x9b,0xa3,0xeb,0x99,0xcd,0x58,0x5a,0xf7,0xf9,0xb4,0x47,0xb6,0xe7,0x34,0x87,0xe4,0x85,0xe5,0x30,0xe0,0xa2,0xab,0xf2,0x82,0x85,0x3a,0xfc,0x19,0x5a,0x02,0xbe,0x8d,0x40,0x0f,0x09,0x9e }, { 0x5f,0xe4,0xa6,0x3a,0x42,0x34,0xff,0xeb,0x5f,0xe3,0x9b,0x04,0xb7,0xd4,0x9b,0xc0,0x6e,0xc1,0x80,0xd0,0xda,0xb2,0xe0,0x8a,0xf0,0x21,0xb5,0xc7,0xc7,0x63,0xa1,0xa5,0x56,0xc2,0xc2,0xf4,0xe9,0x21,0x00,0xa6,0x66,0x3c,0x3e,0x01,0x88,0xd0,0x05,0x24,0x4f,0x55,0x8b,0xfb,0xc9,0xd4,0x00,0x2d,0xe3,0xa7,0x1b,0x19,0xfb,0x42,0x6e,0x32 }, { 0xf5,0x0b,0x99,0xb7,0x46,0x88,0x10,0xb7,0x3a,0x5a,0x7d,0xcf,0x08,0xbd,0x17,0x91,0x5c,0x08,0x96,0x6a,0x2e,0xcc,0x1e,0x07,0x60,0x63,0x04,0xb1,0xa4,0x4e,0x8d,0xe3,0xe2,0xb5,0x06,0x1e,0x55,0xf1,0x8f,0x0c,0x87,0x89,0x97,0x3a,0x2d,0xed,0xce,0xbb,0xe9,0x75,0xf1,0x8d,0x21,0x72,0x1e,0x85,0x4a,0x3f,0x3b,0xa6,0xdb,0x7f,0x35,0x88 }, { 0x4e,0x0e,0xb2,0xf2,0xdb,0x1d,0x3a,0x35,0xd7,0x7e,0x5a,0x83,0x6b,0x6d,0xcb,0x99,0xa3,0x02,0x9a,0x7e,0x6e,0x23,0xb8,0xee,0x78,0xc5,0xca,0x57,0x3a,0x01,0x85,0xfe,0x01,0xd5,0x32,0xf5,0xec,0x0d,0xdd,0xe9,0x65,0x47,0xe8,0x1c,0x63,0xc1,0xb7,0x46,0x0c,0xd5,0x51,0xbc,0x6b,0x57,0x93,0x49,0x30,0x1a,0xc5,0x09,0x82,0x89,0x32,0xb2 }, { 0x2a,0x14,0x89,0x54,0x22,0x71,0x98,0xc9,0xb0,0x9c,0x74,0x30,0x20,0xa4,0x6e,0x97,0xd8,0x33,0x21,0xfb,0xa2,0x7a,0xd8,0x00,0xa9,0x10,0x3a,0x2d,0x60,0xdc,0x74,0x9c,0xaa,0x21,0x5a,0x18,0x89,0x74,0xe4,0x22,0xea,0x3c,0x24,0x40,0xa3,0x76,0x08,0xc4,0xbe,0xf9,0x2d,0xcd,0xc3,0x9b,0x6f,0x01,0xf2,0xe1,0xf2,0x8f,0xf0,0xfa,0x3c,0xf2 }, { 0xdb,0x2d,0x4c,0x8a,0x7e,0x18,0x0c,0xc8,0x4a,0x6e,0xb8,0x72,0x7f,0x7a,0xbf,0x91,0x2a,0xe0,0xc3,0x64,0x06,0x79,0x30,0xff,0xef,0x9e,0xa7,0x3a,0x96,0x1e,0x7a,0x15,0x7c,0x4b,0x72,0xca,0x9c,0x26,0x91,0x31,0x04,0x34,0x1d,0xf2,0x26,0x41,0x9c,0xf3,0x00,0xb4,0x3f,0x99,0xea,0xbf,0xdf,0xfa,0x8c,0xeb,0x1b,0xeb,0x3e,0x9b,0x31,0x20 }, { 0x0a,0x5a,0x48,0x78,0xf4,0xcc,0x44,0x53,0xcc,0x7a,0x3e,0xc5,0x8a,0x64,0x2c,0x87,0x1e,0xbb,0x7d,0x20,0x8e,0x87,0xbd,0xcc,0x1e,0x0c,0xc3,0x72,0xdd,0x96,0x2a,0xbc,0xf7,0x14,0x8b,0x22,0x88,0xb0,0xdc,0x57,0x4d,0x72,0xb1,0x4d,0xf2,0x90,0x30,0x17,0x58,0x32,0xa6,0x4c,0x8e,0x50,0xa9,0xfa,0xe8,0x5d,0xaa,0xbc,0x9e,0x2c,0xc3,0xfa }, { 0xdc,0xfe,0x55,0x15,0x33,0x45,0x80,0xcd,0xf2,0xdd,0x3f,0x63,0x6d,0x1d,0x8c,0xb0,0xea,0x88,0xf3,0xe9,0x8b,0x0f,0x79,0x87,0xd1,0xd3,0xec,0xf0,0x41,0x06,0x11,0x85,0x96,0x35,0xce,0x13,0x8c,0xa5,0x8a,0x95,0x2b,0x70,0xf6,0x6b,0xcf,0x4c,0xd3,0x7a,0x81,0xa6,0xfd,0x8b,0xf3,0x85,0x85,0x76,0x53,0x25,0xb0,0x5f,0xc9,0xd9,0x37,0x30 }, { 0xf5,0xe3,0xef,0xcb,0x5a,0x92,0xf1,0xb3,0x20,0xfe,0xb9,0xfb,0xdd,0x6c,0x93,0xfc,0xce,0xce,0xaf,0x38,0xed,0x97,0x68,0xe7,0x93,0x92,0x5b,0x40,0x12,0x8a,0xa5,0xcd,0x76,0xcf,0xa2,0x89,0x9b,0xf3,0xde,0x05,0x4e,0x51,0xe2,0xdf,0xeb,0x07,0xbd,0x2b,0x84,0xe0,0xa6,0xf4,0xb1,0x10,0xce,0xc9,0xab,0x27,0x99,0xc7,0xce,0xaa,0x0f,0xb4 }, { 0x00,0x7e,0x38,0xc7,0xa1,0x75,0x44,0x57,0xb3,0x25,0x26,0x81,0xee,0x3b,0x45,0x93,0x0d,0xe8,0x01,0x99,0x35,0xb8,0xe2,0xc5,0xb1,0x86,0xaa,0xae,0xd9,0x4d,0xf8,0x96,0x1c,0xa3,0x56,0x5d,0x78,0x4c,0x87,0x85,0xd7,0xbf,0xc0,0x3a,0x7b,0x4d,0x16,0x46,0xfa,0x9d,0xcc,0xf8,0x9c,0xf0,0x09,0x01,0x18,0x84,0x5c,0x66,0x10,0x69,0xe5,0x0d }, { 0x04,0x25,0x31,0x82,0x3f,0xf5,0xed,0x0b,0x0d,0x77,0xf4,0x88,0x0d,0xa0,0xb0,0xe0,0x74,0x00,0xf2,0x46,0xc3,0xcd,0xaa,0x85,0x9e,0x19,0x94,0x05,0x60,0x37,0xcf,0xb4,0xc9,0x0e,0x8b,0xcc,0xfa,0xe0,0x0f,0x7e,0x62,0x8c,0xa4,0xd0,0xc8,0x66,0x1f,0xac,0xee,0xa3,0xe4,0xf5,0x34,0xec,0x5d,0xd4,0x00,0xb7,0x32,0x5e,0xd8,0x77,0x5d,0x23 }, { 0x3c,0xa3,0x2e,0xcb,0x0d,0x10,0xe1,0x0b,0xe2,0xe1,0x7d,0x12,0x91,0xb5,0x85,0x74,0x34,0x73,0x07,0xa9,0x33,0xd8,0x2f,0xc3,0x47,0xcd,0x5b,0x50,0x69,0x02,0xf2,0xfd,0x48,0x05,0x0a,0x47,0xc7,0x4e,0x2e,0x77,0xa8,0x94,0x72,0x7f,0x1d,0x32,0x89,0x10,0xce,0xac,0x55,0x2a,0x36,0xba,0x2d,0x18,0x8c,0x91,0xd1,0x23,0xa2,0xc7,0xab,0x69 }, { 0xb0,0xd7,0xa6,0xdb,0xed,0x42,0x6d,0x40,0xdb,0xaa,0x6c,0x12,0x8d,0x47,0xdf,0x66,0x37,0x38,0x5a,0x13,0x78,0x24,0x16,0x62,0xfd,0x6e,0x14,0x83,0xe6,0x6b,0x5a,0x8b,0xf6,0x52,0x63,0x48,0x15,0xab,0xf3,0x16,0xfd,0x1c,0x0d,0x68,0x7e,0xf4,0xa3,0x16,0x23,0x9b,0x77,0x37,0x15,0x72,0x06,0x8b,0xf6,0xc4,0xfb,0x12,0xcc,0x55,0x0a,0xe3 }, { 0x6c,0x25,0x24,0x49,0xea,0x09,0x5b,0x3d,0xc7,0xb5,0xe5,0x86,0x1f,0x6c,0xca,0x40,0xfc,0x7f,0xa6,0x05,0x12,0x1f,0xa4,0xaf,0x99,0x73,0x95,0x6c,0xe9,0xd4,0x55,0x80,0xdb,0xc0,0x74,0xef,0x0b,0xa7,0xf4,0x24,0x70,0x33,0xc9,0x43,0xef,0x88,0x34,0xac,0x59,0x56,0xd8,0xdc,0x97,0x07,0xcf,0x79,0x37,0x59,0xed,0x20,0x77,0x04,0x9e,0xba }, { 0x04,0x0b,0xf3,0x6b,0xde,0xa2,0xde,0x0a,0x45,0x42,0xcb,0x5c,0x53,0x9a,0x53,0x4c,0x68,0x72,0x32,0x75,0x96,0x4a,0xa5,0xeb,0x9c,0x1a,0x74,0xb2,0x82,0x37,0x59,0x88,0xe8,0xb5,0xb2,0xb6,0x81,0xda,0xd7,0x53,0x37,0xd1,0x68,0x67,0x76,0x7e,0xe3,0xc5,0x97,0x7a,0xbe,0x33,0xae,0x04,0xf7,0xf0,0x80,0xd2,0xa3,0xd4,0x79,0x33,0x01,0xcb }, { 0x38,0x46,0x9c,0x6f,0x4c,0xfd,0x80,0x6a,0x5d,0x05,0xd4,0xb4,0xd8,0x46,0x47,0xc9,0x88,0x26,0x88,0xe2,0xbe,0x1d,0x94,0xc3,0x91,0xbf,0x71,0xcf,0x14,0x4d,0xb8,0xa2,0x33,0x94,0x98,0x29,0xc6,0x1a,0x8d,0x15,0x36,0x0e,0x77,0xc4,0x0d,0x59,0x33,0xe3,0x31,0x87,0x34,0x07,0xf4,0x32,0x09,0xed,0xef,0xc8,0x9f,0x47,0x4b,0x31,0x6d,0x6e }, { 0x37,0x54,0xe9,0x9f,0x07,0x86,0xe2,0xe1,0x3d,0x70,0x13,0x9b,0xfc,0xd5,0xce,0x69,0x8b,0xe4,0x4e,0x33,0x92,0xeb,0x68,0xe1,0x0e,0x78,0x9e,0x3f,0xf0,0xcd,0xb5,0x9d,0x24,0xc2,0xf8,0x74,0x96,0xad,0xdc,0xbe,0x01,0x2f,0x3c,0x27,0x20,0x64,0x80,0xdb,0x61,0x01,0x9b,0x6f,0x63,0x27,0x34,0xf0,0x42,0x39,0xc0,0xff,0xeb,0x6a,0x84,0x99 }, { 0xfc,0xcb,0x63,0x61,0x88,0x61,0xbe,0x74,0xc8,0xe1,0xfb,0x8b,0xb4,0x3b,0x6e,0x59,0x29,0x56,0x04,0x69,0x39,0xa2,0x07,0x3c,0x75,0x43,0x06,0x02,0xdc,0xe3,0x9c,0x37,0xfe,0xd6,0x96,0x33,0xcc,0x3c,0x75,0x14,0x1e,0xaa,0x5e,0x39,0xe1,0xd5,0xc3,0x13,0x78,0x0f,0xf0,0x14,0xcc,0xa3,0x99,0x28,0x40,0x28,0x78,0xbe,0x76,0x8d,0xd1,0xe8 }, { 0x27,0x65,0x12,0xd7,0x59,0xc9,0x7c,0x4b,0x57,0x75,0x1a,0xab,0x2d,0x2d,0x4a,0x47,0x83,0x18,0x64,0x76,0x39,0xb9,0xb4,0x2f,0xb3,0xf4,0xe5,0xad,0xc8,0xf3,0x17,0x6c,0x8a,0x63,0xb4,0x3f,0x82,0x67,0x19,0x30,0xd5,0x42,0xee,0x64,0x43,0x32,0x0a,0x94,0xdb,0xf5,0x95,0x79,0x1c,0x2c,0xa4,0x40,0xa2,0x97,0x97,0xb1,0x31,0x20,0xec,0x3b }, { 0x9b,0xbf,0x06,0xda,0xd9,0xab,0x59,0x05,0xe0,0x54,0x71,0xce,0x16,0xd5,0x22,0x2c,0x89,0xc2,0xca,0xa3,0x9f,0x26,0x26,0x7a,0xc0,0x74,0x71,0x29,0x88,0x5f,0xbd,0x44,0x1b,0xcc,0x7f,0xa8,0x4d,0xe1,0x20,0xa3,0x67,0x55,0xda,0xf3,0x0a,0x6f,0x47,0xe8,0xc0,0xd4,0xbd,0xdc,0x15,0x03,0x6e,0xd2,0xa3,0x44,0x7d,0xfa,0x7a,0x1d,0x3e,0x88 }, { 0x9c,0x69,0xb7,0x26,0x4a,0x30,0xb3,0xf1,0x65,0x0c,0x00,0x60,0xac,0x40,0x33,0x90,0xcc,0x24,0xbc,0x04,0xcd,0x4f,0xf9,0x28,0xe8,0x78,0x72,0x4d,0x14,0x14,0x6c,0x91,0xa0,0xbe,0x1e,0x8e,0xeb,0x62,0x29,0xfb,0x72,0x29,0x08,0x32,0x42,0xbf,0xed,0x51,0x5a,0xfb,0x33,0x0b,0x26,0xd6,0x3d,0x9d,0x54,0xbd,0xdf,0xf1,0xc0,0x12,0xe4,0x9d }, { 0xf8,0xef,0x49,0xb4,0xbb,0xed,0xf4,0x16,0x4a,0xda,0xab,0x19,0x2f,0xbf,0xb7,0x8c,0x90,0x59,0x9d,0x29,0xa4,0xc5,0x18,0x1f,0x3c,0xe5,0x98,0x40,0xd8,0x49,0x00,0x05,0x97,0x9e,0x67,0xa7,0xee,0x97,0x21,0x64,0x02,0xbb,0xd7,0x76,0x65,0xa4,0xb7,0x3a,0x58,0xf2,0x12,0x88,0x37,0xde,0xee,0x67,0x1a,0x46,0x2e,0x83,0xbd,0x62,0xaf,0xde }, { 0xbf,0xa0,0xca,0x38,0x18,0x38,0x61,0xd0,0xb2,0x42,0xf6,0xbe,0xa1,0x67,0x0a,0x60,0x28,0x7e,0x41,0xda,0x9a,0x23,0x3f,0x76,0xf4,0x03,0x2a,0xda,0xd2,0xdf,0x28,0x0d,0x79,0xea,0x23,0x54,0x58,0x48,0xcc,0xa4,0x21,0xf2,0xe2,0xcb,0x5b,0xa9,0x8e,0xd9,0xd8,0x92,0xc4,0xc3,0xf0,0x77,0x85,0xa7,0xad,0x3a,0x95,0x9d,0xab,0x1c,0x26,0x5c }, { 0xbe,0x63,0xab,0x41,0xd2,0xc7,0x43,0xf0,0x1b,0x3a,0x9b,0x22,0xd6,0x6d,0x91,0x01,0xfe,0x44,0xd4,0xfc,0x2e,0x04,0xeb,0xa7,0xed,0xde,0xea,0x19,0xf8,0x7b,0x33,0x8b,0x1f,0x12,0x5f,0x14,0x5e,0x22,0xf4,0x75,0x8d,0x30,0x21,0xbb,0xb9,0x0b,0x35,0x3b,0x70,0x53,0xcb,0x7e,0x45,0x93,0x0d,0xaf,0x9d,0x21,0x2f,0x25,0x91,0xb0,0x0a,0x85 }, { 0xf1,0x43,0xe9,0x48,0x1f,0xbf,0xe6,0x73,0x64,0x3b,0x25,0xe1,0xfd,0x1c,0xfd,0xa0,0x05,0x09,0x71,0x0e,0xcb,0x78,0xa9,0x4a,0x9c,0x53,0x29,0xda,0xb8,0xed,0x86,0x2d,0x5a,0xe1,0x16,0x80,0xd7,0x21,0x8b,0xd5,0xe6,0xf9,0xd1,0x40,0x23,0x03,0x47,0xe1,0x4d,0xe0,0x43,0x7a,0xdd,0xd5,0x14,0x5e,0x78,0x1d,0x3a,0xea,0xed,0x13,0x21,0x28 }, { 0xfc,0x1d,0x6f,0x42,0xb0,0x5d,0x00,0xe6,0xae,0xda,0x82,0xdf,0x28,0x6e,0xb6,0xe2,0x57,0x80,0x42,0xf6,0xca,0xeb,0xe7,0x21,0x44,0x34,0x24,0x66,0x11,0x3b,0xd8,0x1e,0x6d,0x2c,0xdf,0x43,0xac,0x02,0x38,0x2a,0x93,0xd7,0x4b,0xd9,0x7f,0xd7,0x6c,0xe6,0x39,0x76,0xb5,0x31,0x54,0x6d,0xc8,0xdc,0x41,0xe3,0xd4,0x41,0x5d,0x7e,0xe1,0xea }, { 0x11,0x9a,0xd9,0x0d,0x1c,0x9c,0x3e,0x36,0x07,0x7f,0xfa,0x19,0x59,0xec,0x37,0x3c,0xfd,0x0c,0xdc,0xbe,0xf6,0x60,0x09,0x05,0x79,0x46,0xf7,0x56,0x5c,0x36,0xc1,0x8d,0x03,0x39,0x28,0x89,0xbb,0x6d,0xca,0x4b,0x39,0x4e,0x72,0x55,0x09,0x7c,0x5e,0xf4,0x48,0x34,0xe0,0x82,0x9c,0xbc,0xd2,0x3e,0x64,0x2d,0x78,0x7b,0xd9,0x1a,0xcf,0xf3 }, { 0xb1,0x2f,0xad,0xf5,0x29,0x43,0xdf,0xa5,0x49,0x43,0xfc,0xcb,0x3b,0x78,0x93,0xe7,0x96,0x35,0x76,0x86,0xc1,0x03,0x19,0xe3,0x1e,0xad,0x32,0x33,0x44,0x4c,0x04,0x48,0x02,0xe2,0x45,0x95,0x99,0xb0,0xf4,0xac,0xe9,0x6f,0x8f,0x66,0x77,0xb2,0xa6,0xa7,0x1d,0x05,0xe7,0x03,0x32,0xfc,0x4d,0xf2,0x96,0x57,0x5e,0x76,0xb3,0x69,0xde,0x57 }, { 0xcc,0x64,0xba,0x04,0xf0,0xcf,0x89,0x09,0x8d,0x2e,0x67,0xcf,0x30,0xc8,0x22,0x4b,0xb7,0xfa,0xed,0xaf,0x2e,0x02,0xd6,0x0f,0x98,0xf4,0x8d,0x2a,0x4f,0x79,0xca,0x4b,0xfe,0x31,0xed,0x7f,0x3d,0x26,0x7b,0x8f,0x9b,0x38,0xcb,0x05,0x2c,0xe5,0x86,0xc2,0x3e,0xb1,0xd1,0x83,0xd4,0x4b,0x01,0x29,0xbe,0x35,0x39,0x92,0xc8,0x8b,0x21,0xe5 }, { 0x60,0x54,0xb2,0x22,0x5e,0x75,0xb6,0xa4,0xbe,0x2d,0xf2,0x9f,0x6c,0xea,0x3b,0x79,0x3b,0xf2,0xd8,0x2d,0x8d,0x98,0xb3,0x68,0x58,0x62,0x7e,0x5e,0x8b,0x47,0xe2,0x7b,0x6e,0x71,0x06,0xf3,0xb1,0x90,0xd8,0xed,0xb0,0x76,0x0c,0xd1,0xf5,0x74,0xe0,0xf8,0x1d,0x78,0x9c,0xf5,0xaf,0xad,0x19,0x87,0x00,0x18,0x29,0xe7,0x64,0xae,0x4b,0x62 }, { 0x11,0xfd,0x00,0xae,0xc4,0x09,0xa9,0x5f,0x9a,0x5c,0xe4,0x1d,0xe3,0x00,0x71,0x0f,0xe0,0x73,0x27,0xc6,0x65,0xd6,0xd0,0xec,0xc3,0xd7,0xbb,0x13,0x6f,0x65,0x72,0xf4,0x6c,0xbf,0x95,0x44,0xa5,0x8c,0x96,0x96,0xf4,0x1f,0xce,0x45,0x09,0x99,0xfb,0x83,0x9f,0x81,0x1e,0xbb,0x0f,0xe7,0xb6,0x71,0xc0,0x77,0x5f,0x75,0x01,0x0e,0x71,0x46 }, { 0x01,0xee,0x7f,0xc2,0x02,0x70,0x8c,0xfe,0xb0,0xc2,0xbf,0x93,0x0b,0xf3,0x3a,0x68,0xad,0x08,0x6d,0x4c,0xe9,0x9a,0x11,0xe3,0x8d,0x93,0xca,0x69,0x8e,0xb9,0x98,0x05,0x96,0x55,0xce,0xf0,0x1b,0x02,0x48,0x82,0x12,0x4b,0xe0,0x2e,0xf3,0x45,0x57,0x11,0x81,0x18,0x36,0xea,0x35,0xbe,0x79,0x9b,0x09,0xfd,0x5f,0x4e,0x10,0xee,0xcc,0xaf }, { 0xc1,0xd1,0x72,0x69,0xe4,0x6e,0x38,0x7a,0xcb,0xe2,0x99,0xec,0x2c,0xc9,0xcc,0x2d,0xad,0xa3,0xf0,0x5e,0x4c,0xf4,0x12,0xf2,0xad,0x94,0x6b,0x70,0x0a,0xa2,0x61,0x3a,0xed,0xb7,0x74,0x4f,0x37,0x0c,0x13,0xa4,0xf4,0x99,0x57,0xd5,0x4f,0xf7,0x98,0x11,0x9d,0x11,0x1f,0x69,0x12,0x9c,0x24,0xdb,0x5f,0x5f,0xb8,0x41,0x62,0x90,0x9d,0xbb }, { 0x77,0xb2,0x0a,0x91,0x2e,0x6b,0x23,0x13,0x50,0x66,0xe9,0x11,0x89,0x15,0x24,0xbc,0x4e,0xfe,0x35,0x60,0xe3,0xe9,0x23,0x50,0xb5,0x2d,0xec,0x8f,0x37,0x5f,0x2b,0x54,0xa3,0xdc,0x29,0x18,0x25,0xce,0xa3,0xf7,0xf7,0xb1,0x0b,0xfc,0xdd,0x03,0x8a,0x72,0xdf,0x62,0x3d,0xa1,0xe8,0x50,0xe0,0xf1,0xca,0xa8,0x01,0xfc,0xd6,0xcc,0x67,0xff }, { 0x5c,0xfe,0xf2,0x13,0xfe,0x03,0x00,0x8d,0xca,0x1b,0x9e,0xc0,0x3c,0xbf,0x88,0x22,0xea,0x22,0xc1,0x2f,0x74,0x25,0xab,0xf9,0x98,0x09,0xbd,0x15,0x36,0x0a,0x21,0x95,0xa8,0x7b,0xce,0x16,0x67,0x59,0x88,0x3b,0x3b,0xa3,0xb2,0xe2,0x06,0x66,0x2d,0xcf,0x33,0x77,0x86,0x8a,0x75,0xb0,0xa0,0x9b,0xf7,0xf3,0x29,0x73,0x7f,0x76,0xec,0x9d }, { 0x51,0x08,0x69,0xf6,0x62,0x98,0xa7,0xcf,0x0c,0xd8,0x44,0x89,0xc6,0x8f,0x7b,0x4b,0xd1,0xd9,0x83,0xea,0x87,0xc3,0xea,0x8f,0xe5,0x1c,0xdf,0x4f,0xed,0x67,0x41,0xcb,0xce,0xe1,0xab,0x93,0xa5,0xb4,0x0c,0xc2,0xba,0x41,0x24,0x33,0xbb,0xa6,0x3c,0xe9,0x30,0x38,0x0a,0x05,0xe0,0xa5,0xc2,0x78,0x57,0x25,0x2b,0x04,0x6f,0xc4,0xac,0x9d }, { 0x70,0x6e,0x45,0xfc,0x41,0x62,0xe8,0xcd,0x79,0x9b,0x23,0xbd,0x32,0x2f,0x0c,0xdf,0x60,0x19,0x41,0x70,0x9f,0x49,0xdb,0x21,0x78,0x83,0xb3,0xda,0xb7,0xd4,0xf9,0x3b,0x3b,0xef,0x1c,0x13,0x4e,0xed,0x7a,0xa7,0x4c,0x04,0x2a,0xcc,0x68,0x51,0xae,0xae,0x8e,0x14,0x23,0x3b,0x73,0x90,0xff,0x9a,0xda,0xa9,0x05,0x60,0xdb,0x69,0x65,0x04 }, { 0x6e,0x83,0xc3,0xa6,0xb4,0x3f,0xdc,0xd3,0x00,0xe4,0x19,0xe6,0xf7,0x8d,0xca,0xe1,0x14,0x55,0xea,0x63,0x8f,0x8f,0xf5,0xda,0x5c,0x0c,0x0e,0x3d,0xf0,0x0d,0x26,0x4c,0xcd,0x3d,0xa4,0xcf,0x02,0x28,0xe5,0x6c,0xb2,0x57,0x11,0x0a,0x49,0xaf,0x64,0x12,0x5b,0xc0,0xdb,0xf6,0x91,0x5f,0xe8,0x49,0x8e,0x70,0xf5,0xa4,0x00,0x60,0x37,0x14 }, { 0x66,0xb7,0x1d,0x0b,0xd4,0x73,0x44,0x19,0x7c,0xcf,0xb0,0xc9,0x57,0x8e,0xaf,0x0a,0xdb,0x60,0x9e,0x05,0xbb,0x4e,0x8f,0x87,0xd5,0x6b,0xd3,0x4f,0x24,0xee,0x7c,0x47,0x14,0xa0,0xec,0xb7,0xf7,0x08,0xc0,0x2b,0x2b,0xae,0x23,0x8d,0x2c,0x46,0x07,0xbb,0x9d,0x04,0xfc,0xe6,0x4e,0x10,0xa4,0x28,0xc9,0x11,0xd6,0xfa,0x25,0xb2,0xf0,0xfd }, { 0x03,0x31,0x2d,0xb9,0x42,0xa8,0x65,0xb8,0x9a,0xf4,0x1a,0x5c,0xe5,0x8f,0xa0,0x03,0x39,0x90,0x2e,0x0c,0x0a,0x9f,0x9b,0x84,0x64,0x14,0xd6,0x5d,0x3c,0x11,0x9e,0xff,0x6e,0x3e,0xda,0x64,0x6b,0x37,0x24,0xdf,0x10,0x4e,0xea,0x31,0x78,0x09,0xe8,0x6f,0x0a,0xec,0x59,0xdb,0x5f,0x51,0x55,0x85,0xfe,0x95,0xa3,0xa9,0xf8,0xb1,0xb9,0x50 }, { 0x0c,0x0f,0xc2,0x71,0x19,0xea,0x88,0x06,0x2a,0xad,0x57,0xe3,0x83,0x8c,0xcb,0xd9,0xf9,0x62,0x5a,0xda,0x62,0xa0,0x56,0x30,0x21,0x6d,0x35,0x68,0x1c,0xd7,0x31,0x0d,0x81,0x8f,0xc9,0x14,0x5f,0xe4,0x6e,0xf3,0x9d,0x2c,0xac,0x60,0xa3,0x0a,0x87,0x94,0x32,0x7b,0x23,0x37,0x55,0x9e,0x29,0xbc,0xb9,0x3e,0xfb,0xe3,0x45,0x10,0xe1,0x35 }, { 0x39,0x64,0x76,0xe8,0x5a,0x9a,0x22,0xc6,0x20,0x26,0x27,0x1d,0x18,0xee,0x3a,0xc1,0xbf,0xd1,0x80,0x03,0xc2,0x96,0x7c,0x8e,0xea,0x7c,0x20,0x7c,0x6e,0x7e,0x22,0x1c,0xd0,0xe7,0xd7,0x54,0xcf,0x5a,0x86,0xa6,0x77,0xba,0x9d,0x9a,0x15,0xa5,0xff,0x27,0x87,0x74,0x19,0x9c,0x2b,0x1f,0xba,0x18,0x43,0x36,0x29,0x87,0xb2,0x6a,0x70,0xbd }, { 0x9e,0xff,0x2e,0x63,0x2b,0x11,0xdb,0x4a,0x3d,0x8a,0xd3,0x9f,0xe3,0xe2,0x44,0xd8,0xf4,0xd2,0xa5,0x3d,0xff,0x16,0x38,0x15,0xee,0x43,0x7a,0x23,0x31,0x83,0x88,0x4f,0x66,0xda,0x54,0x79,0x18,0x66,0x88,0x12,0xbd,0x31,0x0c,0x8e,0x33,0x9d,0xcd,0x07,0xb3,0xd5,0x08,0xbc,0xd6,0x23,0xa0,0xbd,0x86,0x84,0x7a,0xfe,0xfd,0x3c,0x30,0x6a }, { 0x70,0x0a,0xc2,0x97,0x4f,0x5e,0x65,0x7c,0x16,0xce,0x35,0x61,0xac,0xa1,0x1f,0x4e,0x03,0xa9,0x23,0xf0,0xb6,0xb1,0xed,0x93,0xe3,0x26,0x15,0x41,0xab,0x17,0xdc,0xd2,0x4b,0x22,0x24,0xd8,0xa2,0x19,0x6c,0x0a,0x3a,0x90,0xc9,0xd7,0xce,0x96,0x5e,0xa9,0xe9,0x6d,0xa9,0xd9,0x01,0x30,0x6e,0xdd,0x46,0x30,0x0d,0x4a,0xdb,0x50,0xee,0x0b }, { 0x0b,0x68,0x87,0x6a,0xfb,0xd4,0xf4,0xe6,0x20,0x66,0x30,0x0c,0x77,0x46,0x38,0x86,0xed,0x9a,0x74,0xea,0x15,0x04,0x71,0x42,0xc7,0x90,0x65,0x25,0x5e,0xef,0x13,0x0e,0xb1,0xf1,0xa2,0xb1,0x82,0xfa,0xaa,0x7e,0xb0,0x44,0x6f,0xae,0x32,0xf4,0xd2,0x78,0x41,0xab,0x7a,0xad,0x6c,0x69,0xee,0x3b,0xdc,0xce,0x75,0x23,0x66,0x19,0x12,0x90 }, { 0x4f,0xf0,0x33,0x43,0x09,0x2d,0x86,0x53,0xac,0x73,0x87,0xb0,0xca,0xae,0xf5,0x1d,0x4c,0x8c,0x7f,0x56,0x10,0xb4,0x60,0x44,0xee,0x37,0xab,0x54,0x73,0x56,0x16,0x61,0x1c,0x70,0x29,0x01,0x57,0x5b,0x1f,0x28,0x16,0x2d,0xfa,0xaa,0xf7,0x59,0x97,0xa9,0xcb,0x64,0xff,0x6f,0x21,0x0b,0xe3,0xf8,0x96,0x5c,0x0e,0xee,0x29,0x47,0x29,0xd9 }, { 0xbe,0x6e,0xea,0x45,0xba,0x37,0x35,0xe5,0x07,0x72,0xde,0x7d,0xf6,0xf1,0x29,0x9c,0xf3,0xb5,0xb0,0x4e,0xd0,0xee,0x5e,0xde,0x75,0xb2,0x0c,0x06,0xdf,0x59,0x80,0x7f,0x47,0x73,0x4e,0x39,0x54,0x19,0x57,0xad,0xc1,0x71,0x48,0x84,0x19,0x09,0xef,0x7e,0xcf,0xfa,0xcb,0xb4,0x25,0xfc,0xea,0x1a,0x18,0x6a,0x03,0x69,0xaa,0xc9,0x1f,0x2f }, { 0xe1,0xb2,0x24,0x61,0xa5,0xc4,0x24,0xf3,0xa6,0x7d,0x44,0x79,0x9a,0x68,0x55,0x92,0xcd,0x9f,0xdc,0xf9,0xfc,0x91,0xcb,0xa2,0x65,0x82,0x50,0xda,0x9c,0xfc,0xdb,0x4e,0xf5,0x62,0x9a,0xa2,0x21,0x52,0xe2,0x6d,0xfb,0xb0,0x92,0xe0,0xdc,0xeb,0x5c,0x56,0x73,0x40,0x4d,0xc4,0xc0,0x42,0x34,0xc9,0xa0,0xa2,0x7e,0xe2,0x45,0x40,0xfc,0x78 }, { 0x24,0x83,0x9a,0x30,0x25,0x18,0xeb,0x58,0x00,0x16,0x4c,0x0e,0x65,0xa7,0x2d,0x48,0x01,0x76,0xf9,0x7c,0x28,0xbb,0x7f,0x5a,0xb4,0xef,0x7e,0x10,0xde,0xe2,0x83,0xb8,0x88,0xc3,0xde,0x39,0x91,0xd0,0xb6,0x09,0x1c,0xfe,0xae,0x64,0x7c,0x7f,0x2c,0xbe,0xe3,0x8e,0xe8,0x9c,0x29,0x4f,0xdc,0x4a,0x60,0x5d,0xdc,0xf7,0x29,0x1d,0x2e,0xc4 }, { 0x84,0x79,0x83,0x95,0x3a,0xe8,0xbe,0xbb,0x13,0x3f,0x17,0x90,0x17,0x5e,0x90,0xf3,0x9b,0x5f,0xfd,0xde,0x2b,0x27,0xfb,0xd0,0x5e,0xc1,0xa1,0x58,0x9a,0x12,0x53,0x5d,0x30,0x9c,0xd4,0x49,0x56,0xd6,0x2f,0xae,0x3b,0x16,0xef,0xfa,0x4c,0x59,0xa9,0x68,0x9d,0x2a,0x68,0x26,0x04,0x88,0xda,0x75,0x4f,0x21,0x31,0x9f,0x1b,0x97,0x6d,0x40 }, { 0x38,0xcc,0x45,0x58,0x14,0xe7,0xdd,0x44,0xc4,0x07,0xca,0x42,0xe7,0x1e,0x7d,0x50,0x1f,0x01,0x05,0x93,0xd1,0x7a,0x26,0xf4,0x25,0x1b,0x2d,0x1a,0x24,0xd3,0xe5,0xaa,0xae,0xac,0xe9,0x12,0x0c,0x3e,0xaf,0x48,0x03,0xee,0x79,0x06,0xe2,0x74,0x6e,0xd1,0xf9,0xfa,0xd0,0x93,0x82,0xa8,0xc2,0x52,0xd1,0xff,0x3c,0x2d,0xd5,0x25,0x26,0x34 }, { 0x0f,0x40,0x50,0xd2,0xe5,0x85,0x12,0xa0,0xa9,0xd9,0xda,0xf6,0x12,0x0f,0x9e,0x93,0x7f,0x6e,0xf4,0x2e,0x78,0xdc,0x72,0xb5,0x14,0x1e,0x1a,0xff,0x9f,0x32,0x88,0x3b,0x89,0xc7,0x0e,0x03,0xa1,0x58,0xef,0xa5,0x51,0x64,0x36,0xc1,0xca,0xc3,0xcc,0xba,0xbd,0x20,0xa2,0xd3,0x5e,0x83,0xc8,0xe8,0xbf,0xa4,0xba,0x8d,0xe4,0xe8,0x7d,0x56 }, { 0xa8,0x74,0x2e,0xca,0x68,0x0d,0x75,0x19,0x7d,0xa7,0x8c,0x2c,0x33,0x2f,0x9f,0x81,0xa8,0x8b,0xa0,0xc2,0x50,0xcd,0xf2,0xd4,0xa6,0xa3,0x0d,0x82,0x34,0xf4,0xf8,0x3b,0x5e,0x02,0xd4,0x7f,0xcc,0x1b,0x17,0x23,0x40,0xe8,0x20,0x5f,0x93,0xe6,0xdd,0xcd,0x55,0xa4,0xbf,0xf2,0x0c,0x86,0x80,0x8f,0x11,0x3e,0x3b,0x50,0x2f,0x9e,0xdb,0x8b }, { 0x86,0xc4,0x0a,0x2d,0xb9,0x8c,0x7a,0x3d,0x7a,0xed,0x26,0x03,0x1a,0xed,0x6d,0x69,0x96,0xfb,0x0f,0x12,0xc2,0x7c,0x1c,0x74,0x61,0x2d,0x67,0xb5,0xc2,0x71,0x9a,0xfc,0x51,0x8d,0x22,0xf4,0xb2,0xee,0x3a,0x02,0xc9,0x8e,0x4f,0xe9,0x02,0x2e,0xec,0x1a,0xc7,0x1c,0xad,0x2d,0xb2,0xe6,0x88,0xf6,0x89,0x5f,0x6a,0x26,0xde,0xf5,0x69,0xfa }, { 0x7f,0xbd,0x52,0x58,0x46,0xdd,0xe7,0xde,0x36,0x59,0xa7,0x81,0xc3,0xdd,0x10,0x6a,0x2b,0x28,0xe9,0xc7,0xe2,0x07,0x0a,0x53,0x29,0x46,0xbc,0xd5,0x80,0x6d,0x81,0x12,0x98,0x7f,0x47,0x79,0x6b,0x29,0x55,0x7a,0xab,0xf2,0x78,0x1d,0xce,0x37,0x1e,0x31,0x4f,0xa2,0x44,0x16,0x79,0xc8,0xf4,0xa5,0xe7,0xfe,0xfe,0x27,0xf9,0x3a,0x25,0xfe }, { 0x68,0xc8,0x2a,0x75,0xb9,0xf1,0x29,0xf2,0x57,0xe1,0xa5,0xf3,0xc6,0xe5,0x91,0x30,0xfe,0x09,0x41,0x04,0x61,0xef,0x0f,0x4f,0xd8,0x9c,0x84,0x6c,0xf4,0xef,0x33,0xc8,0x4c,0x64,0x08,0x71,0xcb,0x79,0x8f,0xc9,0x61,0x93,0xaa,0xdf,0x46,0x55,0x25,0x52,0xd5,0xa8,0xbb,0xf4,0x92,0xca,0xe0,0x9c,0xd1,0x7e,0xd7,0x2a,0x57,0x78,0xfc,0x64 }, { 0xd6,0x03,0x43,0x1e,0x52,0xc5,0x28,0x4a,0xb0,0x8d,0x7b,0x96,0xff,0x60,0x36,0x36,0x4e,0x96,0x11,0xf0,0x94,0xf7,0x93,0xed,0x6a,0x58,0xd3,0x30,0xef,0x91,0x5d,0x4a,0x61,0x7f,0x38,0x88,0x6c,0x4e,0xb4,0xf7,0x5b,0xe5,0x43,0xb3,0x70,0xcc,0x1f,0x8f,0x3e,0xc6,0x11,0x37,0x49,0xb1,0x97,0xf6,0x75,0xe2,0x15,0x06,0x81,0x0f,0x81,0x39 }, { 0x5e,0x4a,0x73,0xcc,0x21,0x89,0x32,0xfd,0xc3,0x3c,0x4f,0xa8,0xd9,0x10,0xaf,0x6d,0x46,0x77,0x03,0x87,0x07,0x9c,0x1f,0x96,0x38,0x24,0xd1,0xe5,0x57,0x71,0x5f,0x84,0xd6,0xab,0xd2,0x9e,0x3d,0x5d,0xc3,0xe5,0xab,0x63,0x45,0xb9,0x84,0x8b,0x6d,0xb7,0xa2,0x34,0x34,0x97,0xba,0x53,0x93,0x68,0x66,0x8c,0xe7,0xc7,0x24,0x03,0xc4,0x17 }, { 0xba,0x17,0xe7,0x58,0xb0,0xdf,0xb3,0xdf,0x04,0xde,0xa0,0xea,0x3c,0x83,0xb6,0xef,0x1a,0xb1,0x6f,0x39,0xab,0x64,0x39,0xa5,0x76,0x56,0xf4,0xaf,0x2b,0xe5,0xf9,0x8a,0x5c,0x77,0x53,0xea,0xa8,0x58,0xd8,0x55,0x67,0x9e,0x97,0xe6,0xeb,0x1a,0x46,0xfb,0x93,0x16,0x72,0x2c,0x78,0x3e,0x0a,0x73,0xee,0x6d,0x7a,0x31,0xc7,0x75,0xed,0x0c }, { 0xe6,0x00,0x80,0x35,0xf2,0x90,0xd4,0x8a,0x47,0x5d,0x8f,0xb3,0x90,0x29,0x6a,0xe0,0xef,0x4a,0xde,0x09,0x9c,0x5f,0x70,0xce,0xff,0x8c,0x08,0x50,0xfe,0xd2,0xe4,0xb5,0x93,0x2e,0x91,0x2a,0x57,0xfe,0xb4,0x28,0x9f,0xb4,0x2e,0x5a,0x43,0x19,0x97,0xa2,0xf0,0x1f,0xb3,0x31,0x7f,0xdc,0x7f,0xfb,0x0f,0x45,0x01,0x21,0x9b,0x42,0x95,0x59 }, { 0x93,0x29,0xc1,0xe0,0x40,0xe1,0x5a,0x5d,0xa4,0xcd,0x31,0xf8,0xaf,0x11,0x49,0xeb,0xaa,0x3f,0x59,0x69,0x34,0x34,0x08,0xb9,0x92,0x38,0xd8,0xf8,0xce,0x2d,0xe0,0x41,0x57,0x05,0x8b,0x9c,0xce,0x26,0x21,0x57,0x0d,0x53,0x1f,0x8c,0x3b,0x07,0x6a,0x68,0xfd,0x55,0x4a,0x8f,0x45,0xe4,0x2b,0x6d,0x2c,0x67,0xc6,0x64,0x0a,0x56,0xd7,0x1f }, { 0xf1,0xf6,0x30,0x9a,0x15,0xe9,0x04,0xd5,0xa8,0x0f,0xe6,0x8d,0x70,0x10,0xf0,0xa5,0x98,0xfd,0x57,0x2e,0x3c,0x1f,0x30,0xbb,0x1e,0xc4,0xa0,0x92,0x78,0x3d,0xd8,0x5c,0xfc,0xf7,0x8f,0x95,0xb4,0x06,0x1a,0x09,0x99,0xcb,0x43,0x89,0x0c,0x13,0xc1,0x1c,0x44,0x29,0xb0,0x1a,0x0c,0xaf,0x85,0x6a,0xce,0x8f,0xca,0x44,0x58,0x71,0xa9,0x74 }, { 0x08,0x13,0xa1,0x54,0x5c,0xf2,0x92,0x3c,0xfa,0xdb,0xdf,0xb6,0x64,0x0c,0xa8,0x5f,0x2b,0x1e,0x28,0x8f,0x6a,0xca,0x49,0xe7,0x35,0x14,0x49,0x59,0x70,0xa1,0x7d,0x4c,0xa4,0x59,0xfe,0xa5,0x8f,0x07,0xa7,0x24,0xa8,0x5d,0x5e,0xf5,0xe7,0xd2,0xca,0xef,0x42,0xd3,0x59,0xcf,0x9a,0xc7,0xc1,0xd0,0xc3,0xbe,0xd2,0xec,0x81,0x4a,0xca,0xdc }, { 0xbb,0xb8,0x8b,0xae,0x19,0xc3,0x9d,0x9d,0x46,0x1c,0xd2,0xc9,0x18,0x42,0x81,0x4a,0xb3,0xdf,0xd3,0x11,0xcb,0xf8,0xc0,0x0e,0xba,0x43,0x39,0x0c,0x2c,0xd5,0x0d,0x42,0xf0,0x62,0xdd,0x34,0xd1,0x97,0xf2,0x57,0x56,0x32,0x27,0x57,0x68,0x6f,0x98,0x76,0xb4,0xa3,0x00,0x07,0x52,0x6d,0xe1,0x89,0x02,0xa4,0xed,0x86,0xd7,0x13,0x9a,0xd3 }, { 0x22,0x10,0xb8,0xed,0x74,0xfc,0xf5,0x08,0x02,0xe1,0x5a,0x6b,0x0f,0x84,0xe7,0x7a,0x21,0x34,0xce,0x2c,0xa1,0xfd,0xeb,0x30,0x3f,0xbf,0x41,0xeb,0x3a,0x11,0x37,0x0e,0xc3,0x8a,0xa6,0xf7,0x21,0xfd,0x0a,0xb7,0xb5,0xb3,0x1c,0xbc,0x6e,0xdd,0xf7,0x59,0xcd,0xd4,0x62,0xe8,0x92,0x0a,0x99,0x9e,0x01,0x6d,0x8b,0x87,0x55,0xb9,0x9a,0x7e }, { 0x9a,0xcb,0x52,0xc2,0x94,0x4e,0x01,0x5f,0x73,0xed,0xfe,0x25,0x97,0x07,0xc5,0x85,0xb0,0x5c,0xbd,0x52,0xa4,0x56,0xd1,0x43,0xbd,0x8e,0x5e,0x4f,0x69,0x6b,0xef,0x8b,0xee,0xc8,0x14,0x32,0xa2,0xb7,0x32,0x77,0x11,0x5a,0x8b,0x91,0x66,0x30,0x89,0x8b,0x40,0x35,0xa8,0x4e,0xd4,0x43,0x26,0x61,0x18,0x5d,0x0b,0x4e,0x3b,0xd1,0xaa,0x7f }, { 0x64,0x23,0xdd,0x70,0x26,0x5c,0x18,0x13,0x51,0x69,0x70,0xac,0x17,0xc8,0x94,0x1e,0x71,0xfc,0x0a,0x81,0x7e,0x0a,0x8b,0x19,0x1d,0x0d,0x31,0x4f,0x9e,0x22,0x67,0xd0,0x10,0xb9,0x90,0x80,0x9a,0xd1,0xcd,0x16,0x13,0x02,0x9d,0xac,0x5a,0x3c,0x4d,0x70,0x35,0x5f,0x45,0x7c,0x4e,0xcd,0xf7,0x14,0xe8,0xb1,0xd2,0xc1,0x43,0x68,0x5f,0x3a }, { 0x88,0xbc,0x66,0x5b,0x5a,0x9d,0xd2,0x9c,0x43,0xce,0x23,0xef,0x38,0xfa,0x4d,0x41,0x51,0xf9,0x70,0x98,0xed,0x5c,0xd8,0x37,0xd7,0x1b,0xe4,0x0c,0x4b,0xb3,0xd2,0xb4,0x56,0xeb,0x51,0xdc,0xa7,0xf3,0xc6,0x2f,0xc7,0x52,0x94,0xc2,0xf0,0x60,0x32,0x84,0xde,0x32,0x1c,0xd4,0xd6,0x4a,0xe0,0xd3,0x43,0xfd,0x2f,0xd8,0x33,0x5e,0xa4,0xc4 }, { 0x2f,0xfb,0x10,0x9f,0xe1,0xdd,0x57,0x8e,0x2a,0x2f,0x77,0xf8,0x0f,0x62,0xcb,0xb6,0x0b,0x95,0x53,0x62,0xf0,0x35,0x0e,0x46,0xc5,0x3e,0x66,0x0e,0x41,0x3b,0xef,0x27,0xc1,0x2c,0xa7,0x83,0x91,0xc0,0x72,0x96,0x30,0x14,0xfd,0x40,0x3c,0x56,0x1b,0x4f,0x05,0x97,0xae,0x42,0xc1,0xc5,0x55,0x4f,0xaa,0xdd,0xa4,0x84,0xae,0x57,0xbd,0x5f }, { 0xd3,0x8e,0xc5,0xa3,0x43,0x95,0x8d,0x2d,0x80,0x88,0x42,0x45,0x5b,0x9e,0xdd,0x41,0x5b,0x45,0xe2,0x22,0xd7,0x4e,0x93,0x1b,0x0d,0x33,0xb1,0xf2,0x59,0x16,0x28,0x2c,0x75,0xa6,0x2a,0xd2,0x44,0x84,0x56,0x3d,0xe4,0xec,0xe5,0x31,0x0d,0xd2,0x9d,0x69,0xb5,0x6a,0xe2,0x33,0x78,0x2b,0x71,0xc9,0x72,0xc3,0x01,0x27,0xa9,0xaa,0xce,0x4c }, { 0x84,0xc6,0xfb,0xff,0x51,0x71,0x1e,0xe2,0xb9,0x28,0xca,0x90,0x52,0x72,0x45,0xc7,0xa2,0xf3,0x63,0xc9,0xb9,0x65,0x61,0x28,0x10,0x9e,0x67,0xe7,0x42,0xc2,0x82,0x88,0xe6,0x35,0xce,0xe9,0xd5,0xbd,0xea,0xcd,0x11,0xb9,0xca,0xc3,0xf1,0x45,0xe3,0x3f,0x02,0xf4,0x33,0xfb,0x25,0xa5,0x15,0xf3,0xa3,0xaf,0xb7,0x05,0xac,0xe7,0xad,0x15 }, { 0x67,0xad,0x62,0x0b,0x4c,0xb1,0x24,0x4f,0xc5,0xde,0xa7,0x6e,0x2f,0x9a,0xac,0x32,0xb4,0xeb,0x00,0xcf,0x65,0xd6,0x07,0x36,0x58,0xb9,0xe0,0x98,0x3b,0x24,0x91,0x98,0x2e,0x69,0x32,0xdd,0x12,0x03,0xa7,0x13,0xc3,0x16,0xa6,0xa1,0xf4,0xfa,0x20,0x8d,0xf2,0x51,0x94,0x1b,0x38,0x75,0x4d,0x83,0xb1,0x93,0xf5,0xbc,0xd5,0x1b,0xde,0xcd }, { 0x89,0xc5,0xa8,0xb7,0xf9,0x66,0xd6,0xc0,0xa1,0x70,0xd7,0x2c,0xe8,0xd1,0x87,0xbc,0x61,0x66,0x3d,0xff,0xa6,0x24,0xc3,0xa8,0x09,0x98,0xb8,0x53,0x66,0xfe,0x89,0x18,0xd2,0x6f,0xe7,0x9f,0xf8,0xb3,0xfa,0xd1,0xa7,0x41,0x6c,0x9a,0x70,0x15,0xaf,0x92,0xc6,0x21,0x5c,0x30,0xc3,0xa7,0xe8,0x52,0xb8,0x37,0x2b,0x1a,0xf7,0xfb,0x4d,0x4d }, { 0xa7,0x85,0x62,0xa9,0xaf,0xe5,0xa9,0x4d,0xc2,0xeb,0x33,0xb6,0x82,0xa2,0xcc,0x16,0xc8,0xd5,0xdf,0xc2,0xc7,0xf9,0x13,0x2d,0xe4,0x13,0x12,0x56,0x98,0x70,0xbb,0x59,0x69,0x1f,0x3f,0x60,0x3a,0x1d,0xf5,0x4c,0x4d,0xa7,0x9d,0xd5,0x76,0xa3,0x5e,0x01,0x94,0x12,0x07,0x23,0x23,0x5d,0xfd,0xb8,0x81,0xf9,0x3c,0x5f,0xdf,0x6b,0xef,0x03 }, { 0x49,0xd0,0xae,0x45,0x48,0xc5,0x27,0x8f,0x6e,0xc0,0xd3,0xd5,0x1e,0x9f,0xde,0x18,0xde,0xa9,0xf2,0xc0,0x3a,0xaa,0x0b,0x33,0x77,0x5d,0xd0,0x2a,0x1a,0x4a,0xd5,0x8c,0xcc,0xd6,0xd2,0x4b,0x1e,0x6b,0xe1,0x89,0xee,0x7f,0x40,0x34,0x42,0x42,0x97,0x1d,0x23,0x98,0xcd,0xdb,0xfc,0x79,0x9f,0x08,0x8d,0x1e,0x49,0x6d,0x8e,0x03,0x2a,0x54 }, { 0x91,0x84,0x6f,0x34,0x40,0xbf,0x88,0xa1,0xfd,0x08,0x99,0xe2,0x55,0x44,0xc6,0x62,0xed,0xbc,0xf7,0xad,0xfd,0xb4,0x43,0x18,0x5e,0x3b,0x0b,0xed,0xfc,0x20,0x4c,0x95,0xd9,0x74,0x9b,0xc9,0x97,0x20,0xa3,0x3a,0xf6,0x5d,0xe7,0x00,0x1e,0x39,0x0d,0xdd,0xb7,0xd8,0x6d,0x1d,0x82,0x54,0x54,0x28,0xc7,0xd5,0x5f,0x81,0xb7,0x1d,0x50,0xf5 }, { 0x90,0x15,0x27,0x00,0x50,0xde,0x7f,0x2e,0x1c,0x88,0x79,0xb8,0xc5,0x2d,0x58,0x92,0x99,0x4e,0x1c,0xa0,0xf7,0xe3,0x9d,0x5c,0xdb,0xc4,0x8e,0x86,0x86,0x3c,0xc2,0x55,0xb7,0x88,0xd3,0x9b,0x06,0x30,0xad,0x86,0x2d,0xd6,0xfd,0x42,0x67,0xbc,0x19,0x7f,0xd4,0x94,0x9a,0x4d,0x4c,0x84,0x9b,0xd9,0x4f,0x13,0x06,0xeb,0x2b,0xd7,0xa7,0x53 }, { 0xb6,0x01,0xdc,0x08,0xfa,0x7b,0xc0,0xea,0x7c,0x6b,0xc1,0x36,0x99,0xe7,0x31,0xbf,0xd3,0x00,0xf3,0x34,0x20,0xbc,0xfc,0xd6,0x33,0x96,0x4a,0xef,0x94,0xde,0x95,0x23,0xd1,0xd7,0xf4,0x3c,0x21,0xe6,0xca,0xea,0x5f,0x8b,0x40,0x3a,0x07,0x0f,0x24,0x7a,0x6a,0x81,0x81,0x29,0xf0,0x6d,0x37,0xd8,0xc7,0xb6,0x19,0x5a,0x71,0x59,0xbd,0xcd }, { 0xc8,0x09,0x17,0xc7,0xf2,0x99,0x6e,0xe4,0xcc,0x05,0x0d,0x3a,0x08,0x30,0xd6,0xd9,0xf4,0x01,0x28,0xfc,0x5a,0xcf,0xee,0x64,0x90,0xde,0x97,0xb7,0xe4,0x52,0x92,0x6a,0xe6,0x09,0xec,0xc8,0xc1,0xdb,0xa0,0x8b,0x24,0x15,0xd1,0x74,0xcd,0xb7,0x65,0xce,0x75,0x82,0xe8,0x63,0x32,0x49,0x06,0xf3,0x66,0x20,0x71,0x3f,0xcb,0x94,0x63,0x24 }, { 0xff,0xea,0x49,0x4c,0x03,0xe7,0xf3,0x97,0x63,0x3a,0x57,0xd3,0x0b,0x5b,0x5f,0x1b,0x1a,0x35,0x58,0x9d,0x71,0x81,0xb5,0x5b,0x00,0x7c,0x3b,0x55,0xd8,0xad,0x31,0x01,0x04,0x77,0xdd,0x7c,0x3a,0x53,0x26,0xde,0x84,0x2c,0x83,0xc2,0xd0,0x08,0xfd,0x64,0x01,0x82,0x66,0x3c,0xa4,0xb5,0x1b,0xd0,0x6d,0xf7,0x4f,0x4e,0x4f,0x4a,0xb5,0xa9 }, { 0x59,0xca,0x1f,0xd4,0xc8,0xfb,0xbd,0xfc,0xc8,0x26,0xf2,0x6f,0xd5,0x51,0xaa,0xab,0xe7,0x8b,0xf2,0x5b,0x79,0x4a,0x47,0x02,0x84,0xf7,0xe3,0x4b,0xac,0x1f,0x8f,0x3a,0xb5,0xdd,0x8d,0x59,0x32,0xb8,0x96,0x29,0x3d,0x32,0x54,0x89,0x73,0xd3,0x88,0xf9,0x6a,0x2a,0xe7,0x0d,0x3f,0x83,0x9f,0xb1,0x7c,0xcb,0xb6,0x88,0x5d,0xc6,0x5a,0x18 }, { 0x5f,0xb1,0x18,0x7b,0x28,0x02,0xa8,0xa4,0x3f,0xba,0x97,0x96,0x87,0x9b,0x21,0x8d,0xb7,0x95,0x6d,0x9b,0x90,0xd3,0xe2,0xcd,0x75,0x93,0x1f,0xc0,0xe8,0x2b,0xda,0x7e,0xcd,0x2e,0x7a,0xce,0xa4,0x0a,0xab,0x9a,0x80,0xea,0x03,0x08,0x12,0xbe,0x61,0x20,0x4e,0xcd,0xd7,0x77,0x26,0xac,0x19,0xf1,0xd3,0xb9,0xe8,0x11,0xbe,0x6a,0x15,0x9a }, { 0xaf,0x3a,0xd9,0x3d,0x1c,0x6e,0x1d,0xa1,0x0b,0xd0,0x19,0x05,0x9c,0xb1,0x44,0xf3,0xdd,0x36,0xde,0x60,0x27,0x8f,0xb5,0x96,0x9e,0x02,0x5d,0xeb,0x30,0x8c,0x25,0x8b,0xfa,0xb3,0xea,0x05,0x7e,0xaf,0x86,0xfb,0x97,0x8a,0xa0,0xde,0x80,0x1e,0xff,0xdf,0x09,0xd1,0x82,0xd0,0xf1,0x6a,0x14,0x96,0x6f,0xe0,0x5f,0x6c,0xba,0x75,0x12,0x6d }, { 0xb0,0x4c,0xa0,0xa1,0x02,0xd2,0xb7,0xc4,0x1e,0x0b,0x0c,0x95,0x81,0x77,0x4b,0xb1,0xe7,0x40,0xd4,0x74,0x1d,0xae,0xe3,0xc1,0x00,0x6d,0x7c,0x39,0xf8,0xf3,0xf2,0xdd,0x0b,0x74,0xfb,0x26,0xe3,0x03,0x30,0x5f,0x90,0xd8,0x46,0x50,0xa6,0x2d,0xe4,0x25,0x08,0x1e,0x0f,0x85,0x71,0xe5,0x3f,0xa6,0xe1,0x8a,0x41,0x16,0xe9,0xa2,0x6e,0xcd }, { 0xe5,0x0e,0x51,0xff,0x5f,0xf0,0xb2,0xd5,0xc3,0x33,0x25,0xac,0x3b,0x60,0x60,0xfd,0x49,0x63,0x7a,0x8f,0x75,0x7d,0x86,0x68,0xf2,0xf5,0xda,0xe8,0xf8,0xdb,0x6d,0xd5,0xeb,0xae,0x60,0xbd,0xd5,0x3a,0x54,0x22,0x1d,0x34,0x25,0x75,0xe9,0x2d,0x4b,0x93,0xad,0xf8,0x81,0xfc,0x67,0x2e,0x64,0x46,0x77,0x77,0x12,0x96,0x9f,0x25,0x5d,0x70 }, { 0x07,0xa5,0x03,0x43,0xfa,0x01,0x45,0x78,0x83,0xcc,0x6c,0xa3,0xf3,0x77,0xb8,0xfa,0xea,0x61,0x1f,0x40,0xa7,0x3f,0x04,0xd3,0x5e,0x74,0xc0,0x23,0xf3,0xb2,0xc4,0xb2,0x0a,0xc3,0x90,0x76,0xff,0x2b,0x70,0x7c,0x34,0xc7,0x75,0xc1,0xb0,0xa3,0x92,0xcc,0x6f,0xc1,0x23,0x13,0x8e,0x28,0xa0,0x53,0x96,0xd6,0x62,0xb1,0xbf,0x39,0x69,0xb9 }, { 0x3a,0x29,0x10,0x0f,0x3a,0xa9,0x80,0x3d,0x4e,0x70,0xe2,0x95,0xb5,0xa4,0x54,0xa0,0x05,0x07,0xb3,0x6e,0x29,0x26,0x97,0x2b,0xcf,0x48,0x47,0x98,0x9e,0xfd,0xc2,0x18,0x18,0x35,0x75,0x63,0x77,0xd9,0xd9,0xe2,0x6f,0x3b,0x86,0x28,0xe6,0xd0,0xb8,0xea,0x80,0x74,0xb3,0x7e,0x7f,0x94,0xa3,0x66,0xb9,0x01,0xfc,0x56,0xb3,0x5d,0xa6,0xb1 }, { 0x7d,0x84,0x30,0x95,0x42,0x6c,0xa7,0x50,0x09,0x3d,0x0e,0x36,0x65,0x27,0x99,0x6c,0x01,0x9c,0x6f,0x43,0x8f,0x86,0x3b,0xad,0x8e,0xfc,0x01,0x4a,0x6b,0xc2,0xa3,0xba,0x3c,0xac,0x8d,0x80,0xe5,0x0c,0xf7,0x05,0x39,0x86,0x6d,0x9a,0x78,0x8b,0xd0,0xbc,0x76,0xc5,0x6f,0xf6,0x9f,0x6c,0xd3,0x11,0x7a,0x5a,0x53,0x4d,0x37,0x4e,0x77,0x1d }, { 0xb2,0xb9,0x73,0x92,0x67,0xe5,0x49,0xf2,0x5a,0xdd,0x18,0xff,0x08,0x0e,0x0b,0x2e,0xa6,0x2b,0x35,0xf2,0x43,0x00,0x47,0x62,0x09,0xb2,0x45,0x09,0xb3,0x9c,0x71,0xe6,0x56,0xfa,0x9d,0x57,0xcd,0x81,0x7f,0x85,0xba,0xae,0x6e,0xbc,0xf6,0xc2,0x3c,0xb3,0x81,0x5e,0xf7,0x7e,0xfc,0xdc,0x9a,0x80,0x05,0x83,0x26,0xe4,0x34,0x79,0xf1,0x4d }, { 0xb6,0xf7,0x17,0x92,0x54,0x7b,0x5a,0x46,0x34,0x00,0x4b,0x44,0x45,0xed,0x64,0xa3,0x0a,0x34,0x08,0x08,0x25,0x6a,0x78,0x9c,0xfd,0xa2,0x08,0x41,0x9d,0xb2,0xda,0xcb,0x1c,0x59,0x03,0x74,0xd8,0x2c,0x4e,0x28,0x0c,0xfc,0xe8,0x4b,0x76,0xe2,0x09,0xc0,0xee,0x5b,0xd7,0xba,0x28,0x10,0x62,0x28,0xf9,0x70,0xbf,0xe8,0x13,0xff,0x94,0x03 }, { 0x78,0xee,0xa9,0xec,0x3a,0x4f,0x58,0xfc,0xb4,0x88,0xb2,0xc6,0x5d,0x16,0xdd,0xc6,0x0a,0xa0,0x6e,0x6a,0x65,0xd6,0x4f,0x8a,0x63,0x78,0xf5,0x8e,0x62,0xfb,0x91,0xec,0x47,0x1a,0x9f,0xa2,0xab,0x43,0x38,0xd7,0x5a,0x04,0x22,0x0d,0x1a,0xfe,0x07,0xc4,0x98,0x22,0xea,0x5d,0xe1,0x86,0x2b,0x33,0xb9,0xa2,0xbf,0x2f,0x48,0x39,0x35,0xab }, { 0x4f,0x22,0x0a,0x92,0x74,0xce,0x6f,0x17,0x68,0xa5,0x4a,0x11,0xec,0x32,0x84,0x58,0xde,0x89,0x67,0xb1,0xd1,0x59,0xd7,0x49,0xdd,0x44,0x98,0xab,0x9f,0xe8,0xcd,0x6f,0x64,0x62,0x00,0x0c,0xeb,0x70,0x34,0x41,0xc3,0x19,0x76,0x93,0x55,0x3e,0xde,0x19,0x6a,0xbc,0xa3,0xc5,0xd8,0xda,0x5a,0x91,0x58,0x32,0x4e,0xa4,0x88,0xbb,0x39,0x0c }, { 0x55,0x6e,0xcb,0x7b,0xc2,0x5a,0x47,0x5a,0xb7,0xdb,0xa7,0xfa,0x6f,0x8b,0xcc,0x35,0xe1,0x37,0x33,0x88,0x73,0x16,0x90,0xff,0x00,0xe6,0xcd,0x54,0x2c,0xc9,0x9d,0xbc,0x6a,0x0f,0x1f,0x48,0x4b,0xcc,0x98,0x56,0x91,0x67,0x73,0x7d,0x8a,0x02,0x5e,0xbb,0x87,0xbe,0x2f,0xec,0x0a,0x0f,0xad,0x57,0x4e,0x5f,0x5b,0x5e,0xfa,0x0c,0x0a,0x66 }, { 0x1e,0x2b,0xb5,0x07,0x9a,0x59,0x5f,0x90,0xdd,0x21,0xaf,0xb3,0x27,0x38,0x40,0xb6,0x15,0x33,0x1b,0x08,0xea,0xb1,0x50,0xb0,0xad,0x76,0xb5,0xa7,0x62,0x85,0x7c,0x5a,0x85,0x76,0xc7,0x50,0x6b,0xe2,0xb4,0xd9,0xdd,0x42,0x7c,0x66,0x33,0xf4,0xd0,0x85,0x0d,0x68,0xae,0x1f,0xc4,0x8c,0x8b,0x85,0x20,0x3f,0x37,0x69,0x7e,0x79,0x2a,0x17 }, { 0xa0,0xc5,0x33,0xb3,0x77,0x1e,0xfa,0xa6,0x33,0xa4,0x67,0xa3,0xd2,0xd6,0xf9,0x9b,0xb8,0x89,0x28,0x4e,0x3b,0x68,0x2e,0x6d,0xec,0x22,0x34,0xbe,0x0a,0x35,0x38,0x79,0xe7,0xd6,0xd5,0x7a,0x1d,0xdc,0x45,0x35,0xaf,0x7c,0xa7,0xd9,0x31,0x83,0x30,0x14,0xa6,0x4c,0x8f,0x85,0x48,0x5c,0xb3,0x4e,0x76,0x4d,0x3e,0x6e,0xb2,0xaa,0xa6,0x5f }, { 0x2c,0xcf,0xc4,0xeb,0x14,0xe8,0x3e,0xba,0x2f,0x9d,0xc2,0xba,0xa9,0x2f,0xb2,0x02,0x94,0xd1,0xc5,0x4d,0xce,0xb6,0x98,0x41,0x30,0x57,0x52,0x87,0xe0,0xd2,0x2c,0x21,0xf4,0x81,0x9d,0x74,0xfa,0xc6,0xeb,0xad,0x0b,0xdb,0xbe,0x49,0x10,0x4b,0x5b,0x91,0xd9,0x45,0xa2,0x6c,0x22,0x7e,0x3a,0x67,0x25,0xdb,0x3e,0xf1,0xfd,0xaf,0x5c,0x3a }, { 0xc7,0x3d,0x44,0xb5,0x7c,0x00,0x68,0x48,0xa1,0x51,0xc0,0x8f,0xe2,0x4b,0x6a,0x62,0x53,0xe9,0xf6,0xe9,0xe3,0x3e,0xed,0xb5,0x1c,0xaf,0xdc,0x87,0x9f,0xfd,0x9d,0x2a,0xc2,0xec,0x47,0x24,0x1d,0xc5,0xbe,0xce,0xbf,0x29,0xa7,0x0e,0x62,0xd6,0xbe,0xb8,0x20,0x71,0xb6,0xcf,0x81,0x1d,0x1a,0x20,0x85,0xb8,0x9e,0xe7,0x9e,0xce,0x97,0x7b }, { 0x55,0x88,0x3a,0xad,0x16,0x87,0x02,0x67,0x55,0xcc,0x13,0xa0,0xf1,0xc9,0xb9,0x39,0xd7,0x20,0x90,0xc9,0xe6,0x4c,0x8e,0x69,0x72,0x09,0xca,0xdf,0x1d,0xda,0x15,0xdc,0x79,0xfa,0x2f,0x50,0x64,0xf3,0x70,0x01,0x71,0x27,0x61,0xdd,0xa6,0xfa,0x65,0x3b,0x4f,0xfc,0xb4,0x4e,0x0a,0xfa,0x7c,0xc0,0x25,0x08,0x1e,0xd5,0x22,0xda,0x1d,0xa3 }, { 0x26,0x79,0xe9,0x30,0x72,0x2d,0x55,0xbc,0x75,0x2f,0x27,0x83,0x1b,0x23,0x33,0x22,0x7b,0x5f,0x36,0x30,0xde,0xe8,0xaa,0xc0,0x6c,0xc6,0xd0,0xaa,0x11,0x0b,0xbd,0x77,0xa3,0x24,0x44,0x7f,0xac,0x14,0x25,0xe0,0x81,0xe4,0xef,0x64,0x0a,0xf1,0x11,0x9e,0x10,0x46,0x7d,0xf2,0x0c,0xb9,0xb8,0x90,0x6a,0x9e,0x09,0xff,0x0d,0xa6,0x37,0x6e }, { 0x60,0x8c,0x48,0xed,0x1a,0x40,0xae,0x02,0xfe,0x03,0xc4,0x2b,0x68,0x99,0x4a,0x80,0x64,0x42,0x73,0x09,0x50,0x55,0x2f,0xbc,0xfd,0xe2,0x62,0x29,0x38,0x0f,0x25,0x2b,0xd1,0x24,0xfa,0x39,0x4f,0x0d,0x29,0x42,0x97,0x1e,0xb5,0xbd,0x63,0xa7,0x44,0xf0,0xa2,0x02,0xd7,0x01,0xfa,0xa5,0xcb,0x31,0xc3,0x88,0x9f,0x2f,0x6d,0x4f,0x7a,0xa5 }, { 0x76,0x2f,0x05,0x08,0x23,0x1f,0xed,0x8d,0x9a,0x9d,0x31,0x81,0xb2,0x5a,0x18,0xcb,0x38,0x81,0x5a,0xec,0x46,0xde,0x8f,0xa1,0xc0,0x93,0xa7,0xaa,0x81,0x9d,0xa1,0x5d,0xa4,0xb8,0x64,0xa6,0x8c,0xa3,0x05,0x40,0x3a,0x95,0x39,0x1d,0xb7,0xae,0xe0,0xe8,0xcb,0xba,0xe3,0x52,0xaf,0xca,0x46,0xa6,0x5c,0x06,0x33,0x03,0xf8,0xfe,0x05,0x4c }, { 0x4a,0x96,0xfa,0x08,0x5f,0x49,0xe0,0x91,0xfb,0xfd,0x34,0x1a,0x02,0x0d,0x57,0x2d,0x35,0x3c,0x65,0x3f,0x6a,0x29,0x2e,0x1d,0xa3,0x59,0xaf,0x98,0x17,0x11,0x41,0xb5,0xe0,0x6f,0x1a,0xd7,0x98,0xfc,0xc9,0xb8,0x5c,0xd6,0xaa,0x6a,0xc5,0x6b,0x9e,0x81,0x29,0x2e,0xfa,0x8b,0x54,0xd0,0xb6,0x4d,0xee,0x3d,0x87,0xde,0xf1,0x98,0x50,0x1f }, { 0x8f,0x05,0x23,0xd3,0xa3,0x60,0xae,0xb3,0xa3,0xf5,0x37,0x7b,0xbd,0xd7,0xa4,0x35,0x1d,0x7a,0x98,0x57,0x75,0x86,0x90,0x45,0xf1,0x06,0xb6,0xa0,0x00,0x28,0x90,0xe8,0xae,0x50,0x75,0x1a,0x65,0x5f,0xaa,0x7d,0x1b,0x3b,0x4c,0x62,0x6c,0x20,0xa2,0x4b,0x02,0xe7,0x39,0x07,0x42,0x9c,0x9e,0xbb,0x64,0xfd,0x00,0xce,0xc6,0x10,0xff,0x9c }, { 0xb3,0xe4,0xeb,0xbe,0xe7,0x75,0x23,0x75,0x9c,0x97,0x2d,0x86,0x2d,0xa8,0x07,0x6c,0x87,0x27,0x63,0x95,0x1b,0x3c,0xd3,0xb6,0xa3,0x57,0xdc,0xa2,0x89,0x2e,0xde,0x27,0x4e,0xc2,0x3a,0x35,0x52,0x3f,0xff,0x7d,0x61,0xfd,0x14,0xd6,0xaf,0x0e,0x69,0xe2,0xc5,0xf7,0xdd,0xe2,0x03,0xdc,0x62,0x1a,0xab,0xa0,0x1f,0x1c,0x08,0x30,0x42,0x61 }, { 0xa8,0xc6,0xb3,0x81,0x70,0x4d,0xee,0x6d,0x2d,0x4c,0xef,0x72,0xdd,0xb2,0x5f,0x46,0x18,0x24,0x0e,0xd2,0x70,0x77,0x85,0xec,0x01,0xcc,0xac,0xd7,0xb3,0x94,0x4b,0x36,0xfb,0x66,0x69,0x3f,0x7e,0x8d,0xcb,0x5a,0x2b,0x34,0x4a,0x68,0xb2,0x89,0x7a,0xdf,0x5d,0x8e,0x32,0xca,0xd0,0x4b,0xfb,0xfb,0xd8,0x28,0x8c,0xf6,0x4a,0x2d,0x69,0xf3 }, { 0x38,0x80,0xbd,0x00,0xc0,0xab,0xb7,0x3d,0x39,0x61,0x50,0x91,0x9b,0x54,0xa0,0xfc,0x19,0xc4,0x95,0xe5,0xe6,0xf7,0xeb,0x40,0xf5,0x8a,0x17,0x1c,0x4c,0x59,0xbe,0x26,0x47,0xfc,0x48,0xc8,0xdd,0x78,0xad,0xd2,0x73,0x3b,0xb3,0x6a,0x13,0x05,0xe9,0x4f,0xc2,0x7d,0xd6,0xe5,0x98,0x00,0xce,0x33,0xf0,0xbd,0xdd,0x62,0x79,0x44,0x19,0x24 }, { 0xd7,0xb4,0xb5,0xa7,0xbb,0x34,0x1a,0xea,0xef,0x41,0x8e,0xa9,0x00,0x7b,0xb6,0xe0,0x02,0x23,0x68,0xf0,0xd6,0x86,0xf6,0xb4,0x83,0xcd,0xdd,0xa6,0x82,0xce,0x21,0x24,0x32,0xb1,0x04,0x2f,0x29,0xce,0x85,0x12,0x46,0xb2,0x66,0xa7,0x38,0xf1,0x83,0x86,0x4a,0xb5,0x36,0x9d,0xbf,0x4a,0x9c,0xc1,0xcc,0xfe,0xc9,0xfa,0x07,0x2e,0x74,0x52 }, { 0x2b,0x02,0xa6,0x7c,0xd3,0x32,0xae,0x04,0x69,0x91,0x0d,0xd9,0x51,0xb8,0xee,0x6a,0x65,0x62,0x36,0xe1,0x57,0x79,0x1b,0x96,0xd4,0x03,0x00,0x24,0x81,0x41,0xb8,0x31,0xb5,0xdf,0x14,0xb4,0x5c,0xbb,0x9b,0xa7,0x70,0xcd,0xf7,0xd6,0x6f,0xcd,0x3d,0xfb,0x52,0x90,0x3a,0x48,0xe6,0x8d,0x4a,0x72,0x4e,0x4d,0x51,0x4a,0x8a,0x5b,0x8b,0x90 }, { 0x96,0xa6,0x98,0x3f,0xcd,0xd8,0x9b,0xa8,0xe9,0x98,0x85,0xee,0xf2,0x1c,0x3a,0x19,0xfd,0xfd,0x03,0x15,0xac,0xf5,0xa0,0x7e,0x60,0xa5,0x3c,0xb0,0xe0,0x65,0xa5,0x9a,0x99,0x0e,0x85,0x19,0xb9,0x7b,0x83,0x69,0xc7,0x3c,0x55,0x28,0xc0,0xe1,0x28,0x69,0xef,0xda,0xde,0xea,0x55,0x4a,0x15,0x13,0x08,0xe3,0x53,0x20,0xb0,0xdf,0x7c,0x82 }, { 0x10,0x52,0x05,0x28,0x6f,0xb4,0xff,0x92,0x8e,0xf7,0x9a,0x84,0xb2,0x51,0xf1,0xe2,0xa5,0xcf,0x6c,0x30,0x11,0x20,0xc5,0x61,0x3c,0xca,0xc5,0x6e,0xa7,0x3f,0x96,0xb0,0xa9,0xc9,0xef,0xdd,0x84,0xab,0xd3,0x8e,0x40,0xa1,0x75,0xbb,0x72,0xfd,0x97,0xee,0x4e,0xe7,0x9f,0x58,0x92,0xdf,0x5b,0xa6,0x7c,0x8b,0x8f,0x56,0xdc,0x4d,0x5f,0x94 }, { 0xf8,0xee,0xe6,0x48,0xf1,0x89,0xb9,0x67,0xbe,0x1a,0x9b,0xf7,0x10,0xa7,0xdb,0xdd,0x2b,0x82,0x67,0x64,0xbf,0x75,0x62,0xd5,0xe9,0xdd,0xec,0xd5,0xcc,0xf0,0x1c,0xce,0xf9,0x64,0xb1,0xb4,0xb7,0x58,0x85,0x04,0x9d,0xb5,0xc7,0x5f,0x79,0xd1,0xbc,0xe3,0xc5,0xe7,0x2a,0xc4,0x6d,0x00,0x78,0xa9,0xd7,0x4d,0x73,0x56,0x81,0xd8,0xd9,0x56 }, { 0x8e,0x7c,0x26,0x33,0xf7,0xab,0xd6,0x67,0xec,0x7a,0xf0,0xaa,0xec,0xf4,0x88,0x01,0xcc,0x9e,0xdc,0x0b,0xd5,0xcf,0x4a,0x65,0x62,0x91,0x40,0xa3,0x74,0xa5,0x15,0xd6,0x87,0x33,0x66,0x6b,0x5a,0x7f,0x7e,0xad,0x88,0xd7,0x32,0x11,0xe4,0x6c,0x88,0x1b,0xb3,0x55,0xd1,0x40,0xf8,0x62,0x3a,0x92,0x0b,0xa5,0xa9,0xc3,0x3f,0xfb,0x07,0x3f }, { 0x61,0xf8,0xf2,0xcd,0x4d,0x74,0x79,0xb1,0x5d,0x5a,0x95,0x86,0xa5,0xfb,0x6e,0xa2,0xbc,0xf5,0x0a,0x39,0x66,0xcb,0x4c,0x52,0x82,0x7d,0x8f,0xc5,0x9b,0x82,0x71,0xcc,0x1c,0x21,0xaa,0xb3,0x89,0x17,0x98,0x77,0x57,0xbd,0x28,0xb4,0x49,0xa4,0xb1,0xc8,0xdd,0xbc,0x23,0x87,0x5a,0xb8,0xce,0xd2,0x9a,0xae,0xb0,0xc9,0x64,0x5a,0x4b,0x91 }, { 0xba,0x29,0xe6,0x74,0x2a,0xd9,0xa4,0xc0,0xb8,0x7f,0x48,0x49,0xad,0xfc,0xf3,0x0e,0xbd,0x9b,0x8f,0x97,0x66,0xb1,0x8e,0xda,0x68,0xa2,0x7a,0xf5,0x4d,0x7f,0xe8,0xf5,0xfe,0x23,0xbb,0x77,0xa8,0x95,0xf6,0xc4,0xcd,0xa4,0xdc,0x40,0x22,0x75,0x4f,0xd6,0x31,0x13,0xd4,0x35,0xce,0x20,0xb2,0x15,0x00,0x77,0x0d,0xb3,0xc7,0x5d,0x23,0x6d }, { 0x89,0x05,0xe1,0xcd,0xcc,0xbb,0x86,0xf6,0x8f,0xac,0x39,0x71,0x90,0x53,0x51,0x17,0xe2,0xb9,0xa3,0xb3,0xd1,0x1a,0x21,0xff,0x46,0x04,0xaf,0xf7,0x0b,0xac,0x05,0xe2,0x8e,0x60,0x1f,0xf0,0x16,0x8c,0x07,0x08,0x07,0x89,0x52,0x4b,0x0a,0x9d,0xed,0x40,0x6a,0x40,0x2e,0x0d,0x42,0xf8,0x50,0x9e,0xe3,0x6d,0x32,0x79,0xf6,0xb9,0xf3,0xdc }, { 0x54,0x16,0xe5,0x39,0xf7,0x8a,0x10,0xe1,0x41,0x8e,0x8a,0xb1,0x45,0x19,0x36,0xe7,0x2d,0xb5,0x05,0x54,0x74,0x42,0x81,0x0f,0xa9,0xe0,0xa8,0xf8,0x2f,0x5d,0xbd,0x4e,0x69,0xa8,0xa9,0xc8,0x7e,0xe6,0xce,0x20,0xdf,0x62,0x47,0x50,0x57,0xcd,0xf5,0xda,0xda,0xc1,0x62,0xe8,0x22,0x87,0x4b,0xc3,0x6b,0x96,0x5f,0xf5,0x44,0x03,0x4c,0x79 }, { 0x8a,0xb2,0x5a,0xaa,0x65,0x03,0x13,0x81,0x53,0xd4,0x01,0x6c,0xa2,0xb6,0xe9,0x75,0x47,0xd7,0x2f,0x34,0xa3,0x47,0x70,0x43,0x95,0xdb,0x9d,0xf9,0x22,0x23,0xf3,0xc1,0xe1,0xd2,0x5a,0x6b,0xcc,0x0f,0xa8,0x86,0x2c,0xc6,0xae,0xaa,0xbc,0x1f,0x93,0x5a,0xbb,0xa7,0xc0,0x91,0x2c,0x25,0x4c,0x3f,0xdd,0x4f,0x4b,0xec,0x80,0x7e,0x32,0xd0 }, { 0x4f,0xe1,0x45,0xba,0x34,0xb9,0x94,0xa2,0x03,0x28,0xd1,0x71,0x16,0xb5,0xe4,0x35,0x9e,0x19,0xf2,0x3c,0x66,0x45,0xfc,0x0f,0x87,0x44,0x55,0x02,0xcd,0xc5,0x45,0x85,0x03,0x65,0x36,0xf4,0x28,0x67,0xe6,0x07,0x95,0x1d,0x60,0xca,0x33,0x57,0x9a,0x77,0x47,0xbe,0x97,0x87,0x84,0x13,0x53,0x88,0xee,0x60,0x30,0x5f,0x33,0x47,0x10,0x95 }, { 0x92,0x45,0xec,0xca,0x72,0xb4,0x4c,0x08,0x46,0xb0,0x9e,0xeb,0x57,0x24,0xf8,0xa7,0x75,0x0b,0x34,0xfe,0x24,0x4f,0x89,0x2b,0x48,0x77,0x28,0xdf,0x23,0x0f,0x1c,0xc5,0x47,0x72,0x7e,0x51,0xb8,0x3b,0xcd,0xd5,0x58,0xf8,0xdb,0x6d,0x29,0xdc,0xed,0xde,0x76,0x52,0x7b,0xd5,0xf0,0x4f,0x1c,0x1e,0x4c,0x98,0x79,0x4a,0xe3,0xce,0x04,0xeb }, { 0xc8,0x77,0x60,0xfb,0x4f,0x70,0xc2,0x42,0x8f,0xaf,0xf9,0xd6,0x75,0x1b,0xe3,0x80,0xd4,0xf6,0xda,0xd8,0x6f,0x7d,0x49,0x1f,0x13,0x50,0x92,0x6a,0x09,0x69,0x2f,0x38,0xf9,0xc5,0xd7,0x7a,0x7a,0x24,0x43,0xea,0xe5,0x51,0x38,0x60,0x61,0x89,0x90,0xaf,0x28,0x64,0xc8,0x8a,0xcb,0x29,0x47,0x60,0xd9,0x28,0xa4,0xb9,0xad,0x48,0x5a,0x0f }, { 0xe3,0x2d,0x1b,0x8f,0x53,0xd0,0xe6,0xdb,0x48,0xcc,0xf9,0x88,0xe5,0xf7,0x6e,0x78,0x71,0xc4,0x89,0x8f,0xe1,0xa6,0xc1,0x93,0x0b,0x5e,0x01,0x10,0xd8,0x72,0x7e,0x8c,0xe2,0xa1,0xf7,0xaa,0xe6,0xf2,0x8a,0xa3,0xa7,0xd5,0x82,0x14,0x60,0xb2,0x86,0xaa,0xd0,0x46,0x51,0x99,0x6b,0xa9,0xc0,0x69,0xef,0x39,0x96,0x8c,0x96,0xd9,0x1f,0xc5 }, { 0x7d,0xa9,0x9a,0x15,0x3c,0x1d,0xf0,0xdc,0x17,0x94,0x7c,0x41,0xaf,0x1c,0xd9,0x05,0x3a,0xac,0xbd,0x95,0xb2,0xfa,0xef,0x2e,0x6b,0xb6,0x23,0xe8,0x1f,0xc4,0x1d,0x4c,0x25,0xca,0xc6,0xe3,0xac,0x1e,0x1c,0x02,0x60,0xfb,0x3c,0xdf,0x7e,0x83,0x25,0x3f,0x5d,0xf0,0x15,0xe6,0x99,0x1a,0x38,0xc9,0x1f,0x61,0xd9,0x3b,0x5e,0x71,0xb4,0x18 }, { 0xf6,0xfb,0xc8,0x54,0xf3,0xdb,0x45,0x9e,0x8f,0x8d,0xfa,0x4c,0x95,0x9f,0xb2,0x03,0x75,0xbe,0x44,0x37,0x50,0xda,0x64,0xa8,0xc8,0xd4,0x6b,0x9b,0x35,0xa3,0x86,0xa2,0xd3,0x37,0x3a,0x55,0x91,0xbe,0xe9,0x4c,0x34,0x2c,0x5a,0x4e,0x26,0x50,0xeb,0x8f,0x1e,0x99,0xcf,0xc1,0xfb,0x81,0x06,0xf2,0xbc,0x86,0x91,0xdc,0x4a,0x41,0x6a,0xd2 }, { 0x5f,0xff,0x74,0xef,0x5b,0x61,0x85,0xc1,0x22,0x54,0x03,0xc2,0x61,0x31,0x71,0x99,0xe2,0x59,0x94,0x45,0xcd,0x75,0x7b,0xf9,0xa8,0x66,0x37,0xc6,0xe5,0x4f,0x9f,0x75,0x8a,0xbe,0xfa,0x4c,0x04,0xb6,0x23,0x42,0xcf,0x96,0x41,0x08,0xdc,0x39,0xc0,0x50,0x22,0xf9,0x35,0xd9,0x3c,0xb1,0x50,0x70,0xa8,0x3c,0xf1,0xef,0x4e,0xa5,0x68,0x82 }, { 0xd0,0xbd,0xa4,0xd9,0xc2,0xf2,0x8c,0xbb,0xbc,0x56,0x27,0x3d,0xd4,0xe9,0xc5,0x92,0x6c,0x46,0x17,0x3e,0xb8,0x2d,0x5e,0xf0,0xa2,0x5e,0x61,0x12,0xf9,0xe1,0x31,0x34,0x5a,0x38,0xf2,0x81,0x30,0x94,0x86,0x8d,0xba,0xd5,0x64,0xe9,0x00,0x54,0x46,0x03,0x30,0x8b,0xb9,0x63,0x0a,0x86,0xea,0x42,0x51,0xa1,0xaa,0xbe,0x27,0x37,0x27,0xf4 }, { 0xe8,0xd9,0xbe,0x9c,0x76,0xcd,0x1b,0xa1,0xcd,0x46,0xa1,0x3c,0xc7,0xa3,0x8e,0x4a,0xa3,0xa5,0x78,0xdd,0x74,0xa2,0xa4,0x4e,0x97,0xd4,0x39,0x35,0x51,0xbf,0xde,0x30,0x87,0x7d,0x47,0x92,0xfc,0x13,0xca,0xae,0xd4,0x59,0xe9,0x45,0xbc,0x17,0xe6,0x50,0xcd,0xc7,0xad,0x4f,0x48,0x18,0xd3,0x58,0xf7,0xc6,0xbd,0xe5,0x32,0xb8,0x28,0x67 }, { 0x03,0x02,0xb5,0x91,0x38,0xce,0x7e,0xf4,0x66,0x5f,0xf7,0x54,0x4f,0xce,0x12,0xfc,0xf4,0x18,0x9f,0x72,0x66,0xab,0xea,0xd2,0x31,0x1a,0xbf,0x04,0xb5,0x82,0xa0,0x3a,0x3d,0x73,0x03,0xe6,0xd9,0x9d,0x89,0x93,0xcd,0x4e,0x1a,0x5a,0xbf,0x16,0x9a,0x89,0xf0,0xd5,0x8c,0x71,0x4a,0x38,0x0f,0x8f,0xf6,0x57,0x32,0x42,0xff,0xd9,0x90,0xfb }, { 0x80,0x8d,0x0a,0x93,0xa4,0x21,0x22,0xb9,0x81,0xfa,0x13,0xdd,0x76,0x4a,0x93,0x91,0x84,0xb9,0xca,0x8f,0x2e,0xac,0x3b,0x7c,0x9c,0x56,0x5f,0xd8,0x11,0xa6,0x55,0x41,0xd2,0xc4,0x54,0x07,0xf5,0x81,0x58,0xa1,0x0d,0xe0,0x56,0xae,0x0e,0xdd,0x0c,0x1e,0xe8,0xa7,0x11,0x47,0x61,0xaa,0x3d,0xec,0xc1,0xe3,0x5e,0x6a,0xb9,0x92,0x33,0x40 }, { 0x81,0x80,0x70,0xea,0x84,0x60,0x66,0x28,0x17,0xf2,0x60,0xe5,0x4c,0xd6,0x72,0x12,0x7d,0xdb,0xa8,0xe8,0xf1,0x69,0x79,0x4a,0xbd,0x7b,0xf3,0xc8,0x9a,0x5a,0xa0,0x8c,0xb1,0x1b,0x0e,0x92,0x74,0x34,0xa2,0x77,0xa0,0xf3,0x6a,0xd6,0x16,0x05,0x39,0x87,0xdd,0x5d,0xef,0x38,0x72,0x5e,0x1c,0xee,0x69,0x35,0x22,0xfd,0x7c,0x38,0x31,0x83 }, { 0xb4,0xa2,0x63,0x6f,0xd6,0x42,0x4a,0x44,0x29,0xde,0x22,0xdc,0xe2,0x48,0x14,0x22,0xb5,0x3e,0x09,0xdb,0x17,0xb2,0xc6,0x9b,0x16,0x08,0x97,0xef,0x60,0x04,0xa4,0x9c,0xfd,0xe5,0xe3,0xc1,0x50,0x22,0xa8,0xff,0x13,0xb7,0x23,0xda,0x2f,0x3f,0x67,0x67,0xa0,0x13,0xce,0x8c,0xb1,0xf6,0xa8,0x51,0x17,0x84,0x49,0xb2,0x7f,0xf9,0x29,0x53 }, { 0x2e,0x1a,0xad,0xf3,0x0d,0x88,0x1c,0xef,0x3c,0x94,0xea,0x4a,0xf6,0x14,0xfa,0x2f,0xe4,0xd3,0x09,0xf5,0xb4,0xa2,0xd0,0xd2,0x6c,0x46,0x2d,0x29,0x91,0x1b,0x77,0x75,0x21,0xf8,0x97,0xad,0x73,0xfb,0x77,0x14,0xf5,0x2f,0x83,0x4c,0xc1,0xd9,0x86,0x7c,0x38,0x75,0xef,0x20,0x5a,0xb8,0x9f,0x3c,0xc6,0x81,0x4a,0x1c,0xb6,0x62,0x86,0xcb }, { 0xe8,0x6e,0xdb,0x4f,0x84,0x8f,0x04,0x0e,0xdc,0x98,0x01,0x00,0x76,0xff,0x35,0x31,0xd2,0xd1,0xb3,0xae,0x00,0x6f,0xad,0x2b,0x31,0xdc,0xc3,0x04,0x11,0xe2,0x76,0x02,0x87,0x49,0xc4,0x2d,0x47,0xdc,0x8d,0x70,0x6e,0x21,0x19,0xbc,0x59,0x3f,0x18,0x7a,0xf9,0x56,0xee,0x42,0x4c,0xd4,0x4d,0x27,0xc8,0x0b,0xb4,0x12,0x4e,0xcb,0xec,0xb1 }, { 0x44,0x2a,0xe1,0xb9,0xc4,0x3f,0x9d,0xba,0xa9,0x55,0x7e,0x39,0xf1,0x28,0x31,0xbd,0x38,0xbb,0x61,0x33,0xb9,0xde,0xda,0x56,0x3c,0xe2,0xb0,0x7e,0x9a,0xa1,0x17,0xb2,0x26,0x8e,0xb0,0x60,0x4a,0xe9,0xe6,0xb7,0xb6,0x76,0x81,0x61,0x99,0xa2,0xd3,0xc5,0xb5,0x5a,0x6d,0x6d,0x01,0x01,0xc3,0x02,0x1e,0x91,0xb7,0x19,0x4e,0xc7,0xa3,0x41 }, { 0x0c,0x4f,0xb8,0xbb,0x73,0x97,0x24,0x09,0xdd,0xa2,0xda,0x0e,0x8f,0xb9,0x00,0x33,0x40,0x6d,0xb1,0xc4,0x43,0x6a,0x0f,0x25,0x12,0x3b,0x40,0x71,0xb1,0x03,0x3c,0x74,0xb1,0x26,0xe6,0xd0,0x1e,0xe5,0xe8,0x0c,0xcf,0x3f,0xa7,0xa2,0x5c,0x5f,0x4d,0x14,0x69,0x67,0x66,0x68,0x4a,0x86,0x98,0x8c,0x09,0x8a,0xb4,0xc9,0x0b,0xe6,0x77,0x06 }, { 0xf7,0x85,0x06,0x39,0x0b,0x3c,0x8f,0xaf,0x9d,0x20,0xc1,0x0e,0xd4,0x7c,0xcf,0x2e,0xb6,0x06,0xfa,0xc3,0x8f,0x50,0xa5,0x34,0x33,0xab,0x85,0x91,0x21,0x76,0xf0,0x15,0x6d,0x3f,0x65,0x3c,0xcd,0x28,0xd5,0x49,0x64,0x1e,0x3d,0xf2,0x99,0x3f,0x20,0x31,0xe9,0x1f,0x45,0x7b,0x0f,0x59,0x72,0x7d,0xcb,0xda,0x63,0xdb,0x56,0xce,0x54,0x0c }, { 0xe6,0xae,0xce,0x52,0x48,0x62,0x5e,0x65,0x43,0x5e,0x88,0x9e,0x28,0xcc,0x6b,0xcd,0x3b,0x1e,0x5f,0x7d,0x3f,0xbd,0xec,0xff,0xf0,0x5c,0x3b,0x9c,0x04,0x69,0xa4,0xdf,0x68,0x1c,0x75,0x90,0x43,0x29,0x4d,0xa8,0xaa,0xcf,0xec,0xcb,0x43,0x20,0x3a,0x83,0x14,0x49,0xc7,0x7c,0x21,0x88,0x53,0x11,0x0c,0x80,0xf1,0xdb,0x1b,0x89,0xab,0x8e }, { 0xa8,0xa6,0xc8,0x5e,0xbd,0x44,0xd5,0x80,0xf0,0x68,0x9a,0xa1,0xf1,0x1c,0x4e,0x40,0x05,0x1f,0x7b,0x03,0x4f,0xb6,0xcc,0x21,0x2b,0x11,0x2c,0xb0,0x20,0x66,0xc4,0x7c,0x3f,0x62,0xce,0x19,0x81,0x0d,0xe5,0x1d,0xf4,0xcf,0x39,0x06,0x59,0xe8,0xb2,0x65,0x18,0x2d,0x7a,0x26,0xef,0x76,0x34,0x3c,0xa6,0xa4,0x06,0x62,0xf3,0xf5,0x55,0x0e }, { 0x11,0x5d,0xcb,0x65,0x67,0x93,0xaa,0xa0,0x9d,0x6c,0x1e,0x5b,0x53,0xe2,0xc4,0x75,0xa9,0x3d,0xc4,0x47,0xca,0x8a,0xfa,0x08,0x86,0xee,0x9e,0x04,0xcb,0x60,0x85,0xd6,0xf8,0x80,0x07,0x00,0x5f,0xd0,0xb7,0x7f,0x2f,0x1c,0x9e,0x00,0x54,0xba,0xe9,0x07,0x52,0x69,0x7a,0xb1,0x51,0xf2,0x47,0x30,0x60,0xd1,0x29,0x89,0x37,0x19,0xbf,0xc9 }, { 0x4b,0x6b,0xdd,0xe8,0x0c,0xca,0x4e,0x3e,0xc3,0x94,0xd8,0xa4,0xb3,0x40,0xc6,0x81,0x79,0x40,0x0a,0x55,0x01,0x86,0xfa,0x39,0xfc,0xbd,0x3a,0x3c,0xff,0x58,0x35,0x72,0xb9,0xcc,0x92,0x52,0x23,0x3d,0x02,0xb7,0x79,0x79,0xbb,0xbc,0x42,0xc8,0x5c,0xea,0xbd,0xb4,0x55,0xa0,0xb1,0x6d,0x29,0x3f,0x16,0x2f,0x4a,0x68,0x4a,0xc1,0x46,0xb6 }, { 0xba,0x54,0x2b,0x09,0xb3,0x68,0xee,0x5a,0xed,0xdc,0x7a,0x09,0x88,0xce,0x0a,0xeb,0x12,0xa1,0x7c,0x5d,0x79,0xb8,0x50,0x82,0xcb,0x76,0xbd,0x89,0x11,0xc5,0x21,0xd3,0x67,0x33,0x98,0xc1,0xd9,0x15,0xf3,0x54,0xba,0x50,0xe7,0x95,0x77,0xf2,0x73,0x37,0x7c,0x7a,0x13,0x38,0xef,0x30,0x55,0xc6,0x40,0xba,0x4a,0x50,0x88,0xbb,0x11,0x4c }, { 0x6e,0xe3,0xd9,0x51,0x53,0x40,0xff,0x8f,0xf8,0xf5,0x65,0xa9,0x5d,0x0e,0x7e,0x58,0x44,0x17,0x09,0x57,0x9b,0x06,0xc9,0x57,0x46,0xd6,0xb1,0x3a,0xb8,0xfa,0x85,0x2f,0x58,0x3b,0xb2,0xed,0x18,0x5b,0x7c,0x22,0xe3,0xab,0x08,0x76,0xbb,0x01,0x1a,0xc2,0xd8,0x61,0xde,0xdf,0xac,0x98,0x35,0x23,0x47,0xe9,0xe0,0x3a,0xd7,0xe0,0xc0,0x12 }, { 0xb0,0x74,0x89,0xfb,0x69,0x75,0x03,0x69,0x1f,0xa6,0x7d,0x9f,0x24,0xad,0x40,0xce,0xbf,0x54,0xda,0xe5,0xe3,0x97,0x81,0x98,0x8a,0x99,0x14,0xd8,0x75,0x13,0x8e,0xdb,0x2d,0x6b,0xa5,0xf6,0x89,0x32,0x4b,0xb7,0xc4,0x5a,0x5c,0x2f,0x6c,0x4c,0xea,0xf9,0x2e,0x37,0x7e,0x62,0xa9,0x0e,0x0a,0xf3,0xae,0x61,0xcb,0x91,0xcc,0x8c,0x86,0x18 }, { 0x1e,0x8e,0x28,0xb4,0x63,0x38,0x99,0x10,0x55,0xa7,0xb9,0xec,0x1d,0xb4,0x98,0xb0,0xcb,0x37,0x03,0xef,0x6a,0x0e,0xbf,0x6b,0x71,0x89,0xdb,0x81,0x5a,0x7d,0x58,0xc5,0x1d,0x3f,0xed,0x33,0x1e,0x26,0xaa,0xbd,0x93,0x08,0x31,0x9c,0x0f,0xec,0x95,0x3c,0x68,0x23,0x59,0x6f,0x97,0xc4,0x81,0xef,0x48,0x1d,0x7d,0x42,0x41,0x5e,0x42,0xec }, { 0xfe,0xc1,0xfe,0x0f,0x35,0xc7,0x94,0x55,0xb9,0x97,0xf8,0xf0,0x12,0xb5,0xe6,0xf8,0x7a,0x65,0xd3,0xe1,0x91,0xc9,0x7e,0x78,0x90,0x97,0x5c,0xef,0x92,0x55,0xee,0x57,0x8e,0x5f,0xae,0x18,0x9d,0xdd,0xce,0x75,0x5f,0x98,0xea,0x69,0xea,0x20,0x8c,0x5f,0xb5,0xc7,0xa4,0x0e,0xcf,0xd7,0xae,0x47,0x51,0x40,0x45,0x96,0x1d,0xd2,0x57,0xd2 }, { 0x2f,0xb7,0x9e,0x26,0xe1,0xfc,0x03,0xac,0x8b,0x86,0xd7,0x4d,0xc8,0x25,0x4d,0x10,0x23,0xa9,0xaf,0xc9,0x34,0x4b,0x58,0xd9,0x7c,0x0b,0x78,0xe2,0x31,0x46,0x2e,0x61,0xca,0x10,0xce,0x30,0xed,0xc0,0x83,0x83,0xf3,0xce,0x5e,0x04,0x78,0x8b,0xbc,0x60,0xc1,0x7d,0x51,0xa3,0x85,0x9e,0x24,0x91,0xe0,0x54,0xd8,0x03,0xd1,0x0e,0x1f,0x0d }, { 0xc9,0x2a,0xad,0x5d,0x33,0x42,0x32,0xab,0xf8,0x09,0x84,0x03,0x07,0xff,0xff,0x7a,0x30,0x09,0xca,0xdb,0x61,0x9a,0x59,0xee,0xfa,0x43,0x99,0x4c,0xbf,0xf9,0x05,0x81,0x48,0x91,0x02,0xaa,0x2a,0xa4,0x3e,0xe1,0x12,0xa7,0x9d,0xf8,0xee,0xcd,0x75,0xcc,0xe8,0xa5,0x00,0x34,0x88,0x72,0x30,0xb8,0x36,0x18,0x94,0x93,0xc8,0x09,0xb3,0xfe }, { 0x66,0x0a,0xef,0x00,0xd7,0xd4,0xc6,0x62,0x4e,0xad,0x73,0xb5,0x78,0xd9,0xd9,0xf3,0x00,0x62,0xac,0x5a,0x6d,0x62,0x9b,0xf7,0xae,0xc4,0x3c,0xc0,0x0c,0xd3,0x6e,0x2f,0x83,0xad,0x6b,0x36,0x71,0x39,0x83,0xb6,0x64,0x4a,0xbc,0xc7,0x1a,0xdc,0xb3,0xcc,0x8f,0xe0,0xfb,0x5f,0xa5,0xb4,0x3a,0xc8,0x0b,0x12,0x4a,0x2c,0x1a,0xa1,0xba,0xf4 }, { 0x2b,0x07,0xa5,0x2c,0xbd,0x6d,0xb2,0x4c,0x42,0x71,0x15,0x2c,0xc9,0xfe,0x01,0x3b,0x54,0xd8,0x4f,0x0f,0x38,0x25,0xf6,0xdf,0x59,0xe5,0xba,0x0c,0x7b,0xb3,0x17,0x4e,0xde,0x1d,0x90,0x92,0xcb,0x01,0xbf,0x5f,0xbf,0x08,0xf7,0xa0,0x55,0x58,0xe0,0x5c,0xa5,0x9d,0xf8,0x24,0x77,0xac,0x79,0x38,0x55,0xdc,0x0e,0x84,0xb1,0xc6,0x0e,0x19 }, { 0x73,0xdc,0xc3,0x92,0xc2,0x03,0xb8,0xb6,0x80,0x53,0x73,0xd1,0xdb,0xb2,0xd1,0xc1,0xb2,0xa8,0xd8,0xad,0x21,0x58,0xfe,0x7c,0xe0,0x58,0x7b,0x7c,0x6d,0xec,0x0b,0xe4,0x74,0xc6,0xe0,0xd8,0x25,0xec,0xaa,0x1b,0xa2,0xb3,0x2b,0x5c,0x0c,0x38,0x92,0x5d,0x1a,0xe2,0x42,0x9e,0x15,0xa7,0x23,0x77,0xc7,0x88,0x98,0xd6,0xd7,0x87,0xa0,0xc2 }, { 0x68,0x8a,0x43,0x84,0x40,0x30,0xf4,0x07,0x70,0x4f,0x3e,0xde,0xbc,0x73,0x8f,0xec,0x85,0x42,0xc9,0xaa,0x84,0xbd,0x72,0x17,0x48,0x4a,0x46,0xd9,0xc2,0xce,0xbb,0x28,0x60,0x80,0xf3,0x91,0x1d,0xfc,0x71,0x4a,0xd4,0xf6,0xae,0x70,0x4f,0x9f,0xca,0xce,0xec,0x3c,0xb4,0x23,0xc3,0x5f,0xdc,0x38,0x94,0x8f,0x95,0x06,0x7c,0x06,0xab,0xc0 }, { 0xee,0x28,0x9b,0x4c,0xc9,0x89,0x37,0x4f,0x96,0xf2,0x3d,0x4f,0xbc,0x99,0x3b,0x12,0x27,0x24,0xa5,0x8c,0x79,0x64,0xfc,0xe6,0xd2,0xc4,0x9c,0x44,0x68,0xba,0x97,0xd8,0xed,0xb3,0x9f,0x96,0x9b,0x10,0xe7,0x8e,0x73,0x94,0x3d,0x2c,0xc7,0x31,0xfb,0xeb,0x75,0x0b,0x09,0x98,0x45,0x39,0xb1,0xad,0x00,0x82,0xbc,0x9d,0x4d,0x78,0xaa,0xca }, { 0x75,0x68,0x96,0x07,0x74,0x40,0xfd,0x8d,0xcb,0x81,0x8d,0xff,0xf5,0x4a,0x09,0x57,0x43,0xb4,0x40,0x91,0x1f,0xb6,0x59,0xcb,0x53,0x45,0xe4,0x91,0x84,0x35,0x1d,0x18,0xff,0xda,0xdb,0xa5,0x51,0x6c,0x6d,0xe9,0x1a,0xe4,0x1e,0x55,0x2e,0x9f,0x2f,0x84,0x61,0xfb,0x6c,0x15,0xc4,0x2e,0xd7,0x8f,0xbf,0xd5,0xa0,0x28,0xb0,0x43,0x0e,0xd3 }, { 0x5e,0xc2,0x23,0xe5,0xe6,0xbe,0xcf,0xbb,0x3e,0xb9,0xb7,0x51,0x5d,0xba,0x2e,0x9f,0xbb,0xc3,0xef,0xfe,0x5b,0xca,0x09,0x5e,0x49,0xf5,0xf1,0x51,0xdd,0x35,0x3e,0x63,0xd1,0x26,0xe3,0x0d,0x60,0x70,0x6e,0x96,0x90,0x92,0xb8,0x10,0xa0,0x02,0xd0,0xc0,0x28,0xeb,0xd0,0xf7,0x8e,0x6d,0xed,0xfd,0xfd,0x1e,0x16,0x77,0x03,0x77,0xf2,0x0b }, { 0xb5,0xea,0xe6,0xf3,0x14,0x03,0x85,0x56,0x27,0xe2,0xf6,0x9e,0x61,0xb1,0xd4,0x14,0xe4,0x5e,0xcc,0x7d,0xac,0x5f,0xcf,0x4a,0xdc,0xd5,0xae,0xfb,0x01,0x44,0x3f,0x85,0xaa,0xd4,0xec,0x18,0x32,0xb0,0x3f,0xef,0x58,0x4b,0x2b,0x4f,0x74,0x09,0x4c,0x90,0x1d,0x21,0x5c,0xb9,0x43,0x35,0xf4,0x7e,0xdf,0xc2,0x7a,0xbb,0xfe,0xa4,0x64,0xf0 }, { 0xd0,0x5f,0x0a,0x8c,0xf3,0x79,0xc9,0x55,0xed,0x22,0x75,0x29,0x6a,0xa7,0xc0,0x33,0x24,0x0e,0x28,0xe5,0xc3,0x87,0x8d,0x29,0xe5,0x21,0xf7,0x92,0x80,0x19,0x40,0xc4,0x33,0x95,0x84,0x78,0x50,0x2e,0xa0,0x84,0xdc,0xae,0xec,0xf7,0x24,0x70,0xf4,0x15,0x79,0x7d,0x4c,0x62,0x73,0x0d,0x4e,0x98,0xf7,0x20,0x49,0x89,0xc2,0xce,0xb6,0xde }, { 0xc3,0xc3,0xb8,0xa3,0xb7,0xae,0xde,0x43,0x93,0xf9,0x04,0x76,0x5f,0x27,0xc6,0x20,0xdc,0xfb,0x37,0x95,0x5a,0x03,0x23,0xc4,0xb0,0xd5,0x00,0xb9,0xd8,0x24,0x64,0x94,0xce,0xe8,0xf9,0x69,0x61,0xf0,0x9c,0xf5,0x6e,0x6d,0xe0,0xdf,0x14,0x73,0x5e,0xb6,0x43,0xe9,0xf8,0x83,0x4b,0x6b,0x89,0x34,0xd5,0x50,0x78,0x43,0x23,0x11,0x7f,0x32 }, { 0x27,0x12,0xc7,0x6a,0x98,0xc5,0xe1,0x20,0xe5,0xad,0x98,0x51,0xd7,0x2d,0x22,0x21,0xfe,0xb3,0x4f,0xcb,0x68,0x76,0xe4,0x4c,0x47,0x53,0x3e,0xf7,0x3c,0x09,0x38,0x0c,0xee,0xef,0x5e,0x60,0x75,0x33,0x14,0x6c,0xe0,0x5a,0xb3,0x03,0xf1,0x18,0xb4,0x82,0x63,0x50,0xda,0xb2,0xc8,0xfa,0xb3,0x8d,0xbe,0x76,0x28,0x54,0xec,0xb3,0x63,0x6a }, { 0x33,0xd8,0x48,0x18,0x7d,0x1a,0x69,0x86,0x03,0xad,0x07,0xc1,0x4e,0x90,0x72,0x35,0x1e,0xcf,0x31,0x25,0x47,0x30,0xac,0xfa,0x14,0xa1,0xec,0x53,0xc7,0xd3,0x6f,0x19,0xb6,0x6c,0xaa,0xf4,0x0e,0x4e,0x33,0x48,0x5f,0xf0,0x79,0xd3,0xa4,0xa7,0xb0,0xaf,0x49,0xb3,0x8e,0xff,0x48,0xd5,0xcc,0xe5,0x61,0x1f,0xd4,0x1e,0x5e,0x44,0x05,0x88 }, { 0x91,0x0e,0xff,0xe8,0x4d,0xd3,0xae,0xa4,0xcf,0xfb,0x0e,0x8b,0x78,0xc4,0x1f,0x73,0x5a,0x10,0x37,0xdf,0x18,0x2d,0x1f,0x79,0x8e,0xf5,0xaa,0x09,0xc5,0xba,0xb6,0xb3,0x23,0x5a,0xdb,0x9e,0x73,0xd1,0xdb,0x80,0x30,0x5d,0xd5,0x6d,0x98,0x4b,0xe3,0x67,0x9d,0xee,0xa9,0xd7,0x6f,0x31,0x7c,0x54,0x47,0x38,0x8e,0x79,0xb9,0xaf,0x87,0x99 }, { 0xd6,0x1b,0x1f,0xca,0x26,0x87,0x37,0x38,0x3b,0x49,0xe3,0xc0,0x39,0x96,0xe2,0x68,0xf8,0xff,0xf2,0x51,0xc0,0x65,0xed,0xf2,0x31,0xde,0x83,0xac,0x8c,0x73,0x0d,0x9c,0x06,0xe9,0xfc,0x67,0x2d,0x79,0x27,0x10,0x9e,0xf0,0x2a,0xe5,0x3b,0x23,0xbb,0xc6,0xb6,0xef,0x36,0xb2,0xee,0x45,0xb5,0x05,0x1c,0xfd,0x9a,0x84,0x2d,0xd2,0x37,0x27 }, { 0x02,0x86,0x58,0xcb,0xec,0x40,0x86,0x4a,0xb3,0x9a,0x95,0xa0,0xfb,0xa1,0x31,0x33,0xfe,0xb8,0x17,0xa6,0xe5,0x84,0x07,0x8c,0x7f,0xb9,0xaf,0x5b,0xb6,0x5d,0x37,0x18,0xa7,0xca,0xa5,0xa3,0xde,0xfd,0x6e,0xd5,0x25,0xff,0x44,0xc5,0xaa,0x16,0xad,0xd0,0xa8,0x2f,0xf3,0x8f,0xce,0x5c,0x17,0x8a,0x09,0x57,0xbe,0x4b,0x8d,0x45,0x4a,0x3a }, { 0x9c,0xdd,0xaa,0xc9,0x44,0x14,0xd6,0x01,0xd0,0xa8,0x7f,0xb0,0xe4,0x54,0x60,0xa8,0xa1,0x8f,0x78,0x0f,0x24,0xd4,0x26,0x88,0x59,0xe7,0xb7,0x66,0x03,0xf2,0x71,0x0a,0x13,0xdb,0x88,0x56,0xd1,0x34,0x72,0x79,0xce,0xf8,0xe6,0xbd,0x57,0x55,0x9d,0x39,0x1e,0xf2,0x42,0xed,0x03,0xb6,0x56,0x83,0x54,0x7d,0x5f,0x73,0x64,0x9a,0x83,0x69 }, { 0x5c,0x10,0x98,0xd7,0xf6,0xb5,0xc0,0xee,0x40,0x8f,0x81,0x8a,0xbc,0xdd,0x59,0xc1,0xfb,0xc6,0xf9,0xf4,0xf5,0xb8,0xbe,0x69,0x6f,0x22,0x44,0xde,0x7d,0x2b,0xba,0x6a,0xe6,0xde,0x21,0x63,0x1e,0xd5,0xae,0xed,0x38,0xbd,0x3c,0x4e,0x42,0x07,0xba,0x9c,0x1b,0x65,0x55,0x59,0xd8,0xad,0xe8,0x2e,0xf7,0x49,0x91,0x5f,0x55,0xa6,0x88,0x92 }, { 0x79,0x4c,0x57,0x63,0xbb,0x4d,0x90,0x51,0xfb,0xf4,0xff,0x85,0x2a,0x57,0x9c,0xe2,0xb0,0x6e,0x4f,0x8e,0xe5,0x58,0xe1,0xdc,0x54,0xf8,0x90,0xa4,0x63,0x44,0x02,0x2a,0x7d,0x32,0xcd,0x38,0x98,0xbf,0x5e,0x31,0x3f,0x8b,0x9a,0x33,0x7d,0x80,0x90,0xcb,0x21,0x9b,0xee,0x13,0x81,0xe2,0xa2,0xe5,0xfe,0x58,0xb8,0x7a,0xad,0xb3,0x9e,0xab }, { 0xf1,0x27,0x4d,0x2c,0xbd,0xb9,0xe8,0x49,0xf1,0x76,0x74,0x28,0x8c,0x75,0xfa,0xef,0x31,0xa7,0xed,0x03,0x96,0x1e,0xde,0xf3,0xa4,0x5b,0x7d,0xdc,0x74,0x29,0xba,0xf1,0x3a,0x30,0x13,0x95,0x84,0x83,0xc6,0x64,0x1f,0xbb,0x89,0x68,0x63,0x6f,0xa0,0xe9,0x10,0xf7,0xf2,0x1a,0xad,0x9d,0xd2,0x8a,0xcf,0x54,0x7d,0x9a,0x84,0xdd,0xea,0x64 }, { 0x17,0xf7,0xb7,0x36,0xd5,0xc6,0xf0,0x9a,0x24,0x43,0x68,0xd0,0x90,0x4f,0xd2,0x8f,0xd8,0x96,0x19,0x58,0x03,0x14,0xe0,0x3c,0xe7,0x6f,0x51,0x1a,0x49,0xdd,0xda,0xb4,0x0b,0xb7,0x51,0xb8,0x50,0xa6,0x04,0xdd,0x94,0x88,0x00,0xb5,0x31,0xd9,0x00,0x8e,0xc4,0x86,0x2a,0xe3,0x0c,0x7a,0x44,0x43,0x2e,0x55,0xe3,0x85,0xc4,0x82,0x6b,0x89 }, { 0xdf,0xc9,0xf5,0x73,0x65,0xb1,0x6f,0x23,0x83,0xf1,0x74,0x73,0x33,0x10,0xfc,0xd4,0xb7,0x7b,0xa1,0x70,0xe1,0x59,0x8e,0xa0,0x40,0xa6,0x55,0x1c,0x21,0x08,0xb8,0xf8,0x0d,0xec,0x12,0x08,0x56,0x28,0x5e,0x57,0xb5,0xea,0xf7,0x65,0xc2,0xc7,0xa5,0xb0,0x54,0x4e,0x72,0xc9,0x33,0xe5,0x71,0x7a,0x20,0xbd,0x38,0x03,0x12,0x9e,0x82,0xd8 }, { 0x47,0xfc,0xda,0xc7,0xfe,0xd1,0x48,0xa6,0xcd,0x20,0xd6,0x43,0x7c,0x3e,0x28,0xf0,0x2b,0x4e,0x9c,0xa7,0x68,0x91,0xa3,0x5a,0xc3,0x42,0x43,0xd4,0xd1,0xb1,0x73,0xf5,0xd0,0x76,0xd6,0xa6,0x26,0xc3,0x93,0xa0,0xe2,0xf3,0x74,0xa9,0x5e,0x7e,0xda,0x97,0xac,0x44,0x1a,0x00,0xde,0xc9,0x6f,0x18,0x7a,0xb7,0xd1,0x50,0xdf,0x1c,0x3c,0x6c }, { 0xb1,0x99,0xf3,0xf6,0x1d,0x5e,0xa3,0x01,0x3c,0x21,0xde,0x8f,0x93,0x67,0x35,0x48,0x00,0x56,0xe2,0x82,0xce,0x9e,0x69,0x0d,0x2b,0x41,0x81,0xa2,0x5a,0xab,0x4d,0xd3,0xfc,0xab,0x8f,0x52,0x10,0xb9,0x28,0x50,0xa2,0xbb,0x14,0xc6,0xbc,0xea,0xd1,0x31,0x05,0x5e,0xe7,0x96,0xd9,0x59,0xd0,0x25,0x33,0xd9,0x19,0x4b,0x14,0x63,0x72,0x71 }, { 0x23,0x45,0x03,0x28,0x6e,0x3d,0x08,0xdf,0x74,0xe8,0x15,0x65,0xb6,0xc5,0x80,0x3d,0x87,0x79,0xf9,0x6d,0x20,0x9f,0x01,0xf8,0x90,0xc8,0x6e,0xea,0xdd,0xac,0x03,0x82,0x66,0x74,0x99,0x7a,0x01,0xf6,0x0b,0x62,0x79,0x3f,0xea,0x01,0xcd,0xbd,0x0a,0xe4,0x4e,0x14,0xfb,0xa7,0xa1,0x18,0xcf,0x90,0xe1,0x3a,0x45,0x92,0x7e,0xfe,0x9f,0x85 }, { 0xdd,0x40,0x1b,0xf0,0x44,0x8b,0x9f,0xe6,0xdc,0x29,0x90,0x2a,0x89,0xad,0x1b,0x56,0x15,0x3d,0x80,0xb6,0x7b,0x0e,0x74,0x75,0xa4,0x71,0x5c,0x2c,0x45,0x24,0x15,0xdd,0xe2,0x77,0xaa,0x52,0xfa,0xed,0x71,0x2f,0x35,0xa5,0xbd,0x7f,0xbf,0xc9,0x4f,0x4b,0x50,0xe7,0x98,0x0d,0x11,0x9c,0x41,0xb6,0x26,0xdb,0xba,0x3e,0x69,0x9e,0x3f,0x26 }, { 0x08,0x31,0xbd,0xdc,0x44,0x8c,0x12,0xc6,0xe8,0x6d,0x82,0x6b,0xe1,0x9d,0x2c,0x3f,0x72,0xf5,0x76,0x5f,0x77,0x7c,0x25,0xb8,0x42,0x51,0x1f,0x0f,0x03,0xb9,0x73,0x45,0x43,0x19,0x64,0x5c,0x2a,0xaa,0xfc,0x59,0x97,0x23,0xfd,0x95,0x94,0xd7,0x25,0x37,0xb6,0x03,0x81,0x05,0x3e,0xa0,0x59,0xe3,0x6c,0x34,0x38,0x80,0x90,0x14,0x71,0xaa }, { 0x49,0x4d,0xc3,0x9c,0xb9,0x6e,0x7a,0x68,0x25,0xe4,0xa4,0x98,0x78,0x6b,0xd3,0x05,0x8e,0xc5,0x5b,0x8d,0x3b,0xc8,0xc6,0x7d,0x7d,0x37,0xc7,0x91,0x70,0x65,0xa9,0x66,0x3f,0x4b,0xca,0x7f,0x78,0xb9,0xd5,0x2a,0xa9,0xcc,0x6c,0x66,0x88,0x7e,0x21,0xef,0x7e,0x84,0x3b,0xd6,0xb0,0x7b,0x36,0x22,0xa7,0x9d,0x4f,0x41,0xa2,0x4c,0xbe,0xb1 }, { 0x80,0x44,0xbc,0xee,0x57,0x69,0x26,0x19,0x7f,0x11,0x37,0xb5,0xa3,0xd3,0x91,0xfc,0xb6,0x65,0xdc,0xc5,0xa4,0xd4,0x2f,0x36,0xa9,0xe1,0x89,0xc3,0x96,0xc9,0x13,0xf6,0xe3,0x19,0xbc,0x1e,0xf4,0xe7,0x03,0x65,0xd5,0xd9,0xe5,0xcc,0x9d,0x92,0x05,0xf6,0x15,0x66,0x54,0x6c,0x9f,0x02,0x40,0xfc,0xa7,0xf7,0x8d,0x90,0x2d,0x19,0x7c,0xba }, { 0x68,0xd1,0x7e,0xb4,0x52,0xc7,0x70,0xce,0xb3,0x92,0x64,0x40,0x39,0xfe,0x48,0xeb,0x02,0xe0,0x36,0x27,0x85,0xaa,0x6d,0x16,0x1a,0xe8,0x6b,0x5e,0xe5,0x73,0xfe,0x6f,0xd4,0xeb,0x01,0xf6,0x8e,0x06,0x4c,0xd9,0x27,0x43,0x00,0x70,0x94,0x20,0x7e,0x0a,0xe9,0xa2,0x2b,0xc6,0x66,0x87,0x5b,0xa0,0x22,0x14,0x05,0x30,0x7f,0x68,0x55,0xdb }, { 0xa9,0xf7,0x57,0x11,0x91,0x12,0xdd,0xa2,0x54,0x07,0x9f,0x57,0x66,0x7a,0xf6,0xe1,0xd2,0x13,0xf6,0xa6,0x8f,0xa6,0x8f,0xc3,0xfb,0x8a,0xcf,0x73,0x54,0x40,0xfb,0x00,0x6b,0xd8,0xbb,0xc7,0x52,0xf1,0xe6,0xfe,0x06,0x80,0x40,0x0b,0x09,0xe9,0x4b,0x6e,0x00,0x4b,0x21,0x13,0x64,0xc9,0x29,0x9a,0x0c,0x4e,0xae,0x97,0x8b,0x66,0x63,0x4f }, { 0x76,0x56,0x71,0x84,0x70,0x63,0xec,0x35,0x96,0x36,0x6c,0x4e,0xf3,0xfe,0x9e,0xd8,0xe3,0x8a,0x1a,0x28,0x5d,0xef,0x76,0x83,0xa0,0x9d,0x5e,0x2f,0x5c,0xb5,0x6d,0x99,0x5e,0x3b,0x60,0x49,0xa3,0xaf,0xc4,0xb2,0xd4,0x23,0xea,0xf9,0x0d,0x6e,0x05,0xd3,0xc5,0x46,0xba,0xe2,0xa6,0x06,0x18,0x2d,0xa3,0x7f,0x9c,0x99,0x41,0x89,0xc5,0x07 }, { 0x17,0x57,0xf1,0x80,0xa4,0xc9,0xda,0x0c,0x53,0xda,0x52,0x5b,0xf6,0xe8,0x2c,0xf8,0xf3,0x94,0x66,0x43,0x7f,0x7c,0xd4,0xdb,0x36,0xc0,0xb5,0xd3,0xee,0x72,0x6c,0x56,0xa7,0x7e,0x56,0x26,0x8c,0x77,0xee,0x19,0xdf,0x53,0x7c,0x5e,0x3c,0xb5,0x36,0x71,0x40,0x4a,0x7b,0x7d,0x1b,0x4f,0xe4,0xd7,0xd5,0xcb,0x7f,0x80,0xdd,0x6a,0x2e,0xd8 }, { 0xf9,0x7b,0x42,0x24,0x20,0xe5,0x40,0xb3,0x5d,0xe2,0x0d,0xb0,0x29,0x86,0x12,0xbd,0x09,0x49,0x1b,0x23,0x3a,0xb2,0x3e,0x5c,0x76,0x0d,0x94,0xc9,0x96,0x70,0x5f,0x69,0xd6,0xf5,0x0b,0x4a,0x89,0xf1,0xa1,0x22,0x4f,0x27,0x54,0x12,0x02,0xee,0x4c,0xf5,0xdb,0x9f,0x50,0xfb,0xab,0x0d,0xae,0xcd,0x77,0x0b,0x21,0x88,0x70,0xb6,0x6c,0xf7 }, { 0xf5,0xaf,0x3c,0x2e,0x7f,0x11,0xc2,0x72,0xfb,0x4f,0x3e,0x13,0x09,0xc7,0x69,0x53,0x7e,0x53,0x4e,0x6f,0xe7,0xb0,0xe9,0x13,0x7d,0x5c,0x94,0x75,0xe7,0xc1,0x2f,0x42,0x8e,0x9c,0x3b,0xdb,0xaf,0x4a,0xe7,0x0d,0xf5,0xb4,0x68,0xa1,0x1b,0x82,0xb8,0x2f,0x2c,0xd6,0x43,0xe3,0x37,0x9c,0x0c,0x3e,0x26,0x10,0xce,0x72,0xd6,0xb0,0x11,0x66 }, { 0x00,0xdd,0x81,0xdc,0xc1,0x57,0x10,0x7f,0x95,0x2a,0x74,0x34,0x4f,0x31,0xda,0x30,0x7a,0x16,0x76,0xf3,0x6d,0xfc,0x24,0xd1,0x9b,0xaa,0xcf,0x18,0x7a,0x3d,0xea,0x8c,0xc7,0xc4,0xd5,0x82,0xa2,0xa3,0x61,0x57,0x64,0xda,0x31,0x7b,0xcf,0xb9,0x3f,0x9d,0xc3,0xf3,0x6c,0x83,0x32,0xb2,0x75,0x73,0x8a,0x48,0x81,0x2b,0x8a,0x70,0x63,0x5f }, { 0x53,0xa4,0x24,0x37,0x2f,0x94,0x6f,0x6e,0xfb,0x97,0xda,0x6f,0x73,0xa4,0xca,0xc6,0xcb,0xe6,0x2f,0x71,0xe4,0x44,0xed,0x26,0x66,0x95,0x5f,0x86,0x26,0x03,0x5f,0x35,0x7e,0xeb,0xeb,0xeb,0x5f,0x7a,0xc2,0x0e,0x00,0xdc,0x6a,0xc5,0x63,0x44,0x23,0x54,0xd1,0x19,0x65,0xe4,0x8e,0x46,0xa4,0x3a,0x47,0xfd,0x08,0x77,0x73,0x5a,0xdc,0x39 }, { 0xce,0xfa,0x5f,0x9a,0x69,0x27,0xe0,0x83,0x34,0x3a,0xa7,0x11,0xd9,0xe2,0xf5,0x44,0xe5,0x4e,0x96,0xcd,0x74,0x54,0x59,0xa8,0xa8,0x05,0x25,0x55,0xd0,0x1b,0x82,0x8b,0x61,0x51,0x4d,0xf7,0x04,0x79,0x6d,0xaf,0xb7,0x09,0x55,0x4c,0x34,0x70,0x2f,0xb7,0x5f,0xa5,0xa1,0x90,0x08,0x25,0x31,0xb2,0x51,0x72,0xa1,0x3c,0x4c,0xdb,0x19,0x63 }, { 0xff,0x87,0x8f,0x47,0x05,0x23,0x3f,0x8f,0x18,0xad,0xd8,0x46,0x4b,0xbc,0xe4,0x68,0x1e,0xdd,0x3d,0xc8,0x6a,0x77,0x6a,0x82,0xe1,0xc5,0xcc,0x19,0xd4,0xf9,0xf5,0xde,0x9e,0x89,0xcc,0x09,0x2f,0x66,0x15,0x95,0xe9,0xb8,0xeb,0x61,0xbf,0x29,0xd0,0xa4,0x60,0x9b,0xe3,0x9a,0x6b,0xf2,0x1f,0xb5,0x77,0x70,0x99,0x49,0x69,0x32,0x28,0x99 }, { 0xfb,0xae,0xef,0x36,0x14,0x57,0x00,0xe9,0xb1,0x77,0x10,0xaf,0x6d,0x07,0xa0,0x0c,0x95,0x06,0xc2,0x14,0x17,0xed,0x56,0x5a,0x2b,0x6f,0x7d,0xac,0x40,0xe1,0xca,0xa6,0x73,0x29,0xbd,0xd1,0x4b,0x47,0xd6,0xee,0xe7,0x3e,0x28,0x88,0x6b,0xe8,0xce,0x72,0x01,0x99,0x8a,0x96,0x1f,0x58,0x55,0xdd,0x74,0x6f,0x76,0x45,0x31,0x2a,0x62,0x31 }, { 0xd3,0xe6,0x83,0x70,0xb5,0xdb,0x4a,0x6d,0xbb,0x49,0xf8,0xb0,0xf6,0xb7,0xeb,0x62,0x3c,0x46,0xd5,0xac,0x6c,0x18,0x10,0x21,0x1d,0x04,0xe7,0x39,0x59,0xbe,0x98,0x36,0x32,0x25,0x8c,0x1a,0x08,0xb3,0x64,0xae,0xa8,0x6e,0x75,0x6f,0x20,0xed,0x9f,0xb7,0x2f,0xfd,0xb0,0xb1,0x46,0xe3,0xe0,0x5f,0x20,0xbf,0x79,0x24,0x2d,0xde,0xeb,0x32 }, { 0x1b,0x27,0x00,0x19,0x4d,0x2e,0xbc,0x8d,0x9f,0xe0,0x15,0x89,0xc2,0x54,0x03,0xa4,0x3f,0xa1,0xb4,0xa2,0x26,0x34,0x87,0xd4,0xda,0x54,0x87,0x95,0xa3,0x38,0xbb,0x17,0x1f,0x5a,0x6b,0x49,0x9a,0x2e,0x1f,0x08,0x06,0x6f,0xe9,0x6a,0x43,0xfe,0xbd,0xd0,0x43,0x94,0xaa,0x99,0x59,0x4d,0x75,0xf8,0xf4,0xcd,0x78,0xe7,0x90,0xba,0x01,0xa3 }, { 0x04,0x2f,0x69,0xfa,0x07,0x61,0x56,0x00,0xe8,0x18,0xf5,0x0f,0x3c,0x13,0x0c,0x78,0x3d,0x0e,0xc8,0x0c,0xdf,0xaf,0xbf,0xb8,0x15,0x98,0xa6,0x0b,0xfa,0xb2,0xe3,0x1f,0xb4,0xce,0x67,0x49,0x33,0x43,0x90,0xbd,0x34,0xb9,0x90,0x3b,0x1a,0x68,0x2c,0xbb,0x2c,0xd4,0xb3,0xce,0x18,0x28,0xa2,0x3d,0xb6,0x37,0x6d,0x18,0x80,0x48,0xb1,0x4c }, { 0xf2,0x08,0xf4,0x3f,0x90,0xab,0x1e,0x3e,0xe4,0x3b,0x85,0x76,0x9b,0xa3,0x2a,0x75,0x7e,0x92,0xbc,0x3f,0x68,0x84,0xe1,0xb6,0x39,0x1d,0x13,0xcc,0x82,0xcd,0xc8,0x0e,0xb9,0x72,0x62,0x61,0x45,0xc3,0xbb,0xbb,0xae,0x62,0x72,0x4f,0x6d,0x5d,0x03,0xa9,0x02,0x38,0x9a,0x8e,0xac,0x64,0xa7,0x74,0x13,0xe0,0x66,0xd5,0x59,0x73,0x51,0x47 }, { 0x44,0xbb,0xf9,0xd2,0x8a,0xe5,0xa3,0x95,0x1c,0xee,0xbd,0x30,0xab,0xdf,0xea,0x4c,0x47,0x44,0xa4,0xa1,0xce,0x92,0x8b,0x4e,0x8c,0xc0,0xb2,0x7d,0xde,0x00,0xed,0x90,0x52,0xbe,0xf5,0x14,0xf0,0xf3,0xdf,0xe9,0x0d,0xdf,0xa5,0xab,0x29,0xcd,0x7e,0x0a,0x3e,0x27,0xc9,0x37,0x3f,0x7f,0x3b,0x86,0x0c,0x39,0x9f,0xec,0xdb,0x40,0x4b,0x68 }, { 0x05,0x0d,0xa8,0x3e,0xb1,0x35,0x1f,0x6c,0xe0,0x9b,0xaa,0x33,0xe4,0x66,0xe7,0x02,0x9b,0xbd,0x7a,0x6b,0x0a,0xfb,0xae,0xa0,0x02,0xed,0x18,0x73,0x63,0x19,0x11,0xa4,0x47,0xea,0xf2,0xaa,0xc3,0x17,0x32,0x9b,0x7f,0x6b,0x24,0x6c,0x77,0xc9,0x91,0xc1,0xf7,0x71,0xc4,0x10,0xef,0x44,0x86,0xcf,0xea,0x26,0x6c,0xf6,0x0a,0xf1,0x71,0x58 }, { 0x29,0xd0,0x1b,0xf0,0x4d,0xb3,0x4a,0xa0,0x6e,0xb5,0x05,0x51,0x78,0x07,0x60,0x63,0x92,0xaa,0x11,0xb0,0x5a,0xe4,0x50,0xf5,0x81,0x3f,0x6c,0x59,0x92,0x02,0x57,0x05,0xc1,0x8f,0x1a,0x82,0x71,0xc4,0xec,0x09,0x88,0x1e,0xb6,0x59,0x89,0x1b,0x1b,0xde,0x9e,0x85,0x40,0x44,0x80,0xda,0x4a,0xac,0x73,0x2f,0xf3,0x5d,0x0c,0x24,0x37,0xbf }, { 0x5f,0xde,0xb6,0x85,0x02,0x37,0xc0,0x75,0x7c,0x8f,0x46,0xbd,0x57,0x7f,0x7c,0x92,0x13,0xcb,0x21,0x92,0xea,0x73,0xa0,0xc4,0x5c,0x18,0xea,0xb4,0x61,0x41,0x1e,0x00,0x47,0x24,0x06,0x45,0xe8,0x8e,0xb0,0x2b,0xdb,0x20,0xad,0xa1,0x40,0xcc,0x09,0x97,0xfa,0x4c,0x02,0x12,0xec,0xd0,0x11,0x37,0x2a,0x8c,0x36,0x7e,0x77,0x65,0x3a,0xe9 }, { 0x97,0x53,0xbb,0xb2,0xae,0x5e,0x0a,0x22,0xaa,0x46,0x93,0xea,0x94,0xad,0x2a,0x94,0xc4,0x42,0x24,0xd9,0x0d,0x05,0x91,0x22,0x4e,0x9d,0xab,0xa9,0xb8,0xdf,0xb8,0xb3,0x7c,0xf2,0x8a,0x83,0x12,0x51,0x30,0x82,0x96,0xcc,0x50,0x6e,0x40,0x51,0xa8,0x43,0x7f,0x4c,0x6d,0x80,0x60,0xb1,0x92,0xe0,0x3b,0x5d,0xb8,0x98,0x86,0x59,0x79,0x64 }, { 0x07,0x71,0xc6,0x43,0x9c,0x78,0xfc,0x47,0xf5,0x62,0x54,0xe6,0x92,0x6c,0x31,0xe6,0xb2,0x15,0x5a,0x81,0x30,0x40,0x61,0x01,0x87,0xd4,0xd4,0x42,0x71,0x7e,0xfe,0xa0,0xc3,0xc3,0xd8,0x6f,0x95,0x10,0xb9,0x69,0x64,0x9b,0xde,0x0a,0x1c,0x8e,0x06,0x7d,0xd2,0x15,0xdb,0xaa,0x85,0xde,0xe1,0x95,0xfb,0x9b,0x94,0x96,0x76,0x9e,0x41,0x74 }, { 0xc1,0x6f,0x65,0x3d,0x9f,0xc4,0xa4,0x66,0x4f,0x1c,0x10,0x24,0xef,0x7f,0x1f,0x97,0xb8,0xdf,0xff,0xc4,0xd8,0xac,0xe0,0x9f,0x7e,0x75,0xbe,0x1f,0x82,0x3e,0x61,0x97,0xf9,0x58,0xf4,0xa0,0xf5,0x57,0xbe,0xbf,0x9a,0xdd,0x64,0xcd,0xd6,0xe9,0x16,0xb7,0xd2,0x25,0x6d,0x32,0x9c,0xda,0xba,0xa2,0xaf,0x01,0xc4,0x0f,0x6e,0xb9,0xf9,0xad }, { 0xcc,0x52,0xc3,0x97,0x0c,0x1a,0x96,0x4f,0x8d,0x09,0x72,0x26,0x71,0x60,0xf9,0x67,0x97,0x4d,0xc8,0x54,0x37,0xfc,0x97,0x4b,0x8e,0x78,0x9b,0xf3,0xf6,0x39,0x01,0x98,0x9b,0x18,0x8c,0xef,0x19,0xd6,0xb2,0x22,0x8c,0xe5,0x7a,0xa2,0x5d,0xb2,0x67,0x2f,0x8d,0xcb,0x61,0x16,0x3c,0x49,0x39,0x66,0xc1,0x79,0xda,0x69,0x06,0xc4,0x17,0x1b }, { 0xb7,0x2e,0xcd,0x05,0x7b,0x6c,0x13,0x62,0xab,0x66,0x89,0x87,0xfb,0x76,0x67,0xcb,0x1b,0xb8,0x5a,0xb4,0x9e,0xdb,0x84,0xac,0xbb,0xe5,0x9e,0x13,0x49,0xe0,0x79,0x32,0x74,0x94,0x0a,0x4f,0x6c,0x09,0xf7,0xe9,0xb0,0x17,0xfd,0xd4,0x82,0xe6,0x34,0x42,0x76,0xda,0xf8,0x4f,0xa1,0x6b,0x14,0xfd,0xe0,0x12,0x80,0x08,0x7d,0x0e,0x82,0xdc }, { 0x0e,0x58,0x40,0x05,0x50,0xc9,0xc2,0x66,0xab,0xcf,0x3f,0xa9,0x64,0x02,0x60,0xbf,0xcd,0xba,0xfe,0x1c,0x0a,0xe2,0xc8,0xcb,0x87,0x07,0x8d,0xb7,0x0d,0xd5,0x74,0xcd,0x0e,0x7d,0x92,0x28,0x55,0x89,0x31,0x90,0x8a,0x2f,0x36,0x1c,0x5f,0x5d,0x39,0x5e,0xb7,0x14,0x19,0x96,0x2d,0xab,0xc9,0x73,0x68,0xe0,0x47,0xb1,0x15,0xd0,0xf3,0xdf }, { 0x14,0xa2,0x3f,0xd5,0x15,0x96,0xfc,0xde,0x85,0x87,0xba,0xec,0xc8,0xb8,0x28,0x36,0xc4,0x81,0xa2,0x44,0x9c,0x4e,0xeb,0x87,0x46,0xe8,0xae,0xf0,0x24,0xca,0xe0,0xad,0x83,0x77,0xca,0x4f,0x1a,0x8b,0xfb,0xe5,0x97,0x28,0xe1,0xe1,0xa2,0x2c,0x2e,0x6f,0x1e,0x44,0xce,0xcd,0x6e,0xd1,0x07,0x31,0x59,0x86,0x54,0xfc,0x86,0x8e,0xee,0xe4 }, { 0x3d,0x50,0x20,0xc0,0xe1,0x05,0xaf,0x36,0xfd,0x35,0x77,0x83,0x6d,0x9d,0x76,0x61,0x51,0xbe,0x45,0xa3,0xd5,0xab,0x8a,0xaa,0x02,0xab,0xef,0x41,0xeb,0x85,0x23,0x6e,0x39,0x9a,0xea,0xa8,0xdf,0x0e,0x32,0x9d,0x26,0xe2,0x17,0xa8,0x8f,0x74,0x63,0xb7,0xa9,0xe0,0x26,0xf3,0xc9,0x7f,0xbf,0x3e,0xc6,0x9f,0xe7,0x4c,0xfb,0x08,0xc0,0xd2 }, { 0x09,0x19,0x06,0x29,0x23,0x57,0x85,0x20,0xb3,0xef,0x08,0x17,0xc9,0x39,0x84,0xf2,0x47,0x2e,0x25,0x2d,0x55,0xd8,0xf3,0x26,0x98,0x12,0x91,0x40,0xdc,0x72,0x68,0xf9,0x8c,0x38,0x17,0x24,0x39,0x76,0x4b,0xb1,0xbd,0x8b,0xaf,0x70,0x22,0x3d,0xeb,0xe4,0xb2,0xaa,0x85,0x35,0x08,0xfa,0xbe,0x64,0x28,0x7d,0x96,0x67,0x71,0x3c,0xf9,0x85 }, { 0xdf,0xe2,0x47,0x0f,0x70,0xea,0xce,0xc5,0x48,0x74,0x95,0x8f,0xe9,0xe0,0xad,0xa8,0x58,0x6b,0x4b,0x0c,0xcc,0x9e,0xb4,0xcd,0x07,0x72,0x80,0xaf,0x2b,0x4b,0x2c,0xf0,0x13,0xf0,0x5c,0x11,0xbf,0x2f,0x05,0x03,0x17,0x5a,0x75,0x2c,0x78,0x99,0x15,0xc6,0x0f,0x89,0x2d,0x58,0x15,0x1c,0x34,0x74,0xd7,0x7c,0x5a,0x0e,0x30,0x79,0x2a,0xa8 }, { 0xe3,0x09,0x95,0x38,0xe0,0x97,0xa6,0x19,0xa0,0x88,0x65,0x98,0xa7,0xf0,0xac,0x1f,0xaf,0x95,0xaa,0xf3,0xd4,0x15,0xb2,0x52,0xd8,0x8d,0x35,0x23,0x67,0x5f,0xe8,0x0a,0x31,0xcd,0xc4,0xad,0xc5,0xf8,0xfb,0xd9,0x01,0x16,0x41,0x9c,0xd4,0xad,0x7e,0x98,0xbe,0xe6,0x5b,0xc0,0x0c,0xdc,0x21,0x62,0x15,0xc6,0x6c,0x01,0xa0,0xe3,0xdd,0x4c }, { 0xf4,0x67,0x32,0xd4,0xde,0xa1,0xbb,0x17,0x3a,0xe8,0xa6,0xf0,0xd8,0x96,0xbc,0x89,0x44,0x74,0xdc,0x9f,0x48,0xc0,0x1c,0xc8,0x6d,0x35,0x45,0x3c,0xd8,0xd8,0xe3,0x68,0x49,0xd8,0x13,0xa3,0x0c,0x00,0x02,0x42,0xc8,0x3e,0xa0,0x39,0x15,0x88,0x42,0x24,0xdd,0xda,0x1b,0x24,0xf3,0x64,0xe5,0xd9,0x87,0x84,0xbb,0xc4,0xc7,0xea,0xac,0x41 }, { 0xda,0xb3,0xb3,0x6b,0xc6,0x2c,0xf1,0xc9,0xef,0xa7,0x34,0xca,0x12,0x10,0x39,0x0f,0x33,0x6f,0xaa,0x4b,0x2d,0x08,0x8b,0x9b,0xb4,0xce,0xe8,0x3b,0x45,0x22,0x74,0xed,0xf7,0x8f,0x8a,0x87,0xf4,0x4b,0x45,0xd4,0x33,0x5f,0xa0,0x46,0x81,0x10,0x47,0x14,0x3e,0xc8,0x31,0x27,0x3a,0x30,0xc3,0xb3,0x6b,0x22,0x6d,0x99,0x18,0x85,0x6d,0x86 }, { 0xe1,0x4e,0xdb,0x00,0x96,0x14,0xad,0xeb,0x1b,0x2c,0x93,0x0e,0x8f,0x7a,0xd3,0xe7,0xec,0xa6,0x47,0x9b,0x13,0xcc,0x69,0x8b,0x76,0x0d,0x44,0xf0,0x23,0x10,0x2e,0xf8,0x6d,0x49,0x8a,0x3d,0x5f,0x07,0x46,0x20,0xe1,0x04,0xee,0xc3,0xb2,0x33,0xa0,0x52,0x52,0x95,0x2d,0x7d,0xb9,0x06,0x01,0x15,0x63,0xce,0xa2,0x21,0x11,0xa9,0xa2,0xa3 }, { 0x5a,0x05,0x8a,0x61,0x7d,0xe0,0xe2,0x5f,0x82,0xad,0x7b,0xf5,0x27,0x9e,0x83,0x4b,0x8a,0xa2,0x02,0x84,0x32,0x4c,0x35,0x7f,0xb7,0x85,0x6d,0x09,0xe0,0x48,0x1b,0xe2,0x4b,0xa7,0x83,0x8b,0x05,0x01,0x59,0x92,0xa7,0x42,0xa5,0x8a,0x02,0x7d,0x02,0x96,0xe6,0x68,0x78,0x34,0x2a,0xdc,0x7b,0x8f,0xe9,0xe3,0xfe,0xaf,0x1f,0x0e,0x8b,0x5e }, { 0x27,0xc9,0xe1,0x09,0xf7,0x48,0xc1,0x46,0xaf,0x9d,0xaf,0xf1,0x40,0xa9,0x73,0x0c,0x0e,0x2a,0x8a,0x52,0xea,0xe2,0xce,0x2d,0xec,0x10,0x0a,0xad,0x66,0x94,0xfc,0x36,0xb2,0xb1,0xb6,0x3d,0xda,0xeb,0x53,0x5b,0x0b,0xd1,0x8f,0xb7,0xfa,0x1a,0xb9,0x44,0x14,0xf6,0xf2,0x40,0x61,0xf4,0xae,0xb0,0x39,0x1d,0xc0,0xcc,0x07,0x82,0x9e,0x04 }, { 0xdd,0x95,0x1e,0xc4,0x81,0xed,0x54,0x06,0xed,0x87,0x4f,0x61,0xe9,0xf1,0xf1,0xf8,0x3a,0x59,0x22,0x62,0xcd,0xab,0x25,0x96,0x9b,0x90,0xaa,0x6d,0xec,0x27,0xc2,0x35,0x10,0xa3,0xa2,0x16,0x4c,0x2f,0x66,0xdd,0xab,0x99,0x97,0x28,0xaf,0x20,0x15,0x21,0xbd,0xe1,0xbc,0x2a,0xac,0x2a,0x24,0x5a,0x17,0xed,0x59,0x65,0x1f,0x4e,0x53,0xa3 }, { 0x40,0xf2,0xfe,0xc7,0xef,0x02,0xeb,0x34,0x81,0xd7,0xcc,0x3e,0x5f,0x41,0xa0,0x39,0xf1,0x08,0x74,0x4e,0xad,0x7e,0x31,0x97,0x23,0x26,0x45,0x52,0xb0,0x9f,0xfd,0x9a,0xdd,0x2a,0x3d,0xc7,0x75,0xee,0x12,0x3c,0x7d,0x8c,0xeb,0xc5,0xb0,0xe8,0xf9,0xf0,0x12,0xbc,0xfa,0xb4,0x24,0x35,0xa5,0x24,0x88,0x37,0x3f,0xf1,0x60,0xc4,0x33,0x04 }, { 0x1c,0xb5,0x65,0x73,0x98,0xa5,0x98,0xa6,0x98,0x5b,0x05,0x7a,0x94,0xe3,0x71,0x53,0x1d,0x1a,0xa4,0x84,0xef,0xe5,0x1d,0x42,0x93,0x77,0xa4,0xbc,0x22,0xea,0x6a,0x0f,0x61,0x84,0xe7,0xb7,0x30,0xf6,0xf4,0x04,0xd0,0x15,0x24,0x1d,0x04,0x26,0x55,0x64,0x39,0x60,0xb3,0x82,0xe9,0xd3,0xd0,0x1e,0x41,0xa9,0x4a,0xc0,0x22,0x24,0x92,0x81 }, { 0xca,0x97,0xa0,0x77,0x30,0x10,0xd4,0x58,0xf7,0xfb,0x15,0xe3,0x32,0x34,0xff,0x17,0xc4,0x2e,0x29,0x71,0xdf,0x95,0x5f,0x10,0xc4,0xdc,0x18,0x74,0xa7,0x31,0x8a,0xd5,0x0f,0xf1,0x73,0xf2,0x7a,0x02,0xb7,0x0d,0xcc,0xd6,0x6a,0x22,0xa0,0xe7,0x01,0xfb,0xe1,0xdd,0x70,0xb0,0x32,0x9e,0xa8,0x25,0x5a,0x9d,0x25,0x14,0x61,0xc5,0x29,0x11 }, { 0x4f,0x02,0x9e,0x05,0xe2,0x07,0x6c,0x58,0x34,0x41,0x67,0xc3,0x98,0x7e,0xf6,0xb6,0x56,0xb3,0x18,0x7f,0x70,0x84,0x74,0x2e,0xcb,0x6b,0xf5,0xac,0xe2,0xd7,0x36,0xba,0x25,0xbb,0xfa,0x76,0x2c,0x70,0x3c,0x61,0xb0,0x8c,0x3b,0x07,0x9b,0xb6,0xd3,0xed,0x5f,0xa0,0xbc,0x9d,0x4a,0xd3,0x77,0x3d,0xad,0x8f,0xab,0x9c,0xcf,0x47,0x49,0x3a }, { 0x94,0xb8,0x06,0x66,0x76,0x5d,0xcd,0x50,0x70,0xc4,0xb6,0x54,0x75,0xab,0xc4,0x47,0xdd,0xc9,0x0d,0x2b,0xc5,0x7a,0x53,0x54,0x17,0x93,0xef,0xf7,0x70,0x7d,0x7f,0xf5,0x39,0xc8,0xab,0xb8,0xc7,0x95,0x46,0xad,0x95,0xb4,0x23,0x94,0x3a,0xef,0x8a,0x8d,0xbc,0xcc,0xd4,0xba,0x51,0x62,0xf2,0xbe,0x32,0x0b,0x2f,0x5a,0x72,0xdd,0x52,0x91 }, { 0x3c,0x0a,0xe2,0x2c,0x70,0xf0,0x4b,0xbd,0x6e,0xe6,0xd3,0x5e,0xc7,0x04,0x9e,0x82,0x3c,0x86,0x80,0xfa,0xa4,0x60,0xdf,0xc2,0xbc,0x74,0x1f,0xc6,0x2f,0xe8,0x3c,0x80,0xad,0xcf,0x8f,0xcb,0xd1,0xdb,0x0c,0xbd,0xb0,0x33,0xdf,0x6f,0x82,0x2e,0x7c,0x5b,0x49,0x47,0x7c,0xf2,0xcc,0x52,0x9c,0x44,0xf8,0xf2,0x85,0x16,0x43,0x75,0xa8,0xdd }, { 0x9c,0x62,0x92,0xf3,0x32,0xfb,0xe6,0x43,0x58,0x21,0x28,0x79,0xab,0x41,0x34,0xa6,0x4d,0x91,0xee,0x07,0x5a,0x3e,0xac,0xdf,0x5e,0xb2,0xa5,0xce,0xbd,0xc1,0x0c,0xc8,0x21,0x7b,0xea,0x4b,0x79,0x93,0xdb,0xfa,0x0d,0x1d,0x16,0x88,0x75,0x9b,0x21,0x45,0xa6,0xfb,0x9b,0x9e,0xc3,0x76,0xe3,0x05,0xc5,0x2a,0xf7,0xa0,0x93,0x79,0x4e,0x15 }, { 0xd5,0x48,0xea,0x1c,0x5c,0xee,0x83,0x57,0xc8,0xdd,0x71,0x30,0x7f,0x3e,0x26,0xc4,0x32,0xea,0xa0,0xb1,0x16,0x63,0xbc,0xa8,0x03,0x3f,0x55,0xda,0x5a,0x3a,0xa3,0x22,0xc7,0x57,0x6f,0xc8,0x9f,0x6a,0x3b,0x19,0x89,0x03,0x17,0x7e,0x7c,0x31,0xc8,0xc8,0x47,0xca,0x83,0x09,0xdb,0x86,0x0f,0x6c,0x70,0xec,0xe2,0x2b,0xbe,0x23,0xc7,0x25 }, { 0xa0,0x46,0x2c,0x1f,0xf6,0x44,0xa2,0xe3,0x92,0x20,0x5c,0x01,0x6f,0xe6,0xdb,0x14,0x9c,0xdd,0x33,0xc0,0x87,0xa3,0x48,0xae,0x88,0x53,0xfa,0x9b,0x51,0xca,0x1d,0xca,0xfa,0x37,0x30,0xbd,0x36,0x40,0x4f,0x12,0xb2,0xc2,0xce,0x54,0x97,0x78,0x20,0xd5,0xaf,0x6d,0xc2,0xca,0x1c,0x5b,0x94,0x58,0xb4,0x95,0xd7,0x4f,0xdd,0xb4,0x57,0x49 }, { 0xc2,0x74,0x9a,0xe2,0xcf,0xdf,0xff,0x43,0x92,0x9c,0x5a,0x34,0xd8,0x56,0xe4,0x0e,0xff,0xaa,0xfc,0x9b,0x55,0xe6,0xa2,0x2a,0xff,0x10,0x4b,0x74,0xb3,0xae,0x00,0xbf,0x5e,0xc9,0xc9,0x04,0x78,0x54,0x3d,0xbf,0x73,0x7d,0xf7,0x1b,0xc8,0x4f,0x68,0xf1,0xd2,0x02,0x5a,0xd3,0x6a,0xa1,0x1f,0x87,0x17,0x4f,0x45,0x15,0xca,0x6c,0x77,0x54 }, { 0x45,0x4b,0xfc,0x6e,0x3e,0x11,0xb4,0x6f,0x26,0xc7,0x48,0xfa,0xe5,0x27,0xee,0xfe,0x7a,0xae,0xdc,0x5a,0xec,0x5f,0x48,0xf6,0xaa,0xbe,0x6b,0x7d,0xcd,0x70,0xbf,0x24,0x59,0x99,0xa1,0x44,0xb6,0x07,0xc5,0xfb,0x74,0x1a,0x11,0x3a,0x16,0x03,0xd0,0xc4,0x57,0x2b,0x93,0xaa,0x1b,0xa0,0xff,0x71,0x9b,0xe8,0x36,0x8e,0x60,0x16,0xcb,0xa0 }, { 0x0d,0xc1,0xdb,0x93,0x5c,0xe6,0x21,0xbb,0x75,0x9b,0x4b,0x79,0xe0,0x83,0x59,0x0c,0x4c,0x6c,0x93,0x5b,0xbc,0xbc,0x63,0x8e,0x81,0xc0,0x8a,0xbb,0x32,0x90,0x41,0x2a,0xa3,0x30,0x32,0xbf,0x6c,0x96,0x27,0x0c,0xa7,0x26,0x30,0xfa,0xad,0x4b,0xfb,0x3d,0x95,0xe2,0xe7,0xe3,0xae,0x2a,0x05,0x81,0x78,0x99,0x52,0x10,0xcc,0xf4,0x4a,0xca }, { 0xff,0xf2,0x93,0xc5,0x85,0x0b,0xba,0x38,0x53,0xba,0x1d,0x18,0xfb,0x26,0xe0,0x00,0x14,0xff,0xbe,0x15,0x5f,0x29,0xf2,0xb2,0x18,0x50,0x35,0x17,0xe9,0x5d,0xb0,0x26,0x45,0x3c,0xdd,0x14,0x80,0x9d,0xca,0x53,0x72,0x88,0x6f,0x69,0x91,0xd3,0x1a,0x37,0x07,0x24,0x12,0x24,0x09,0xaf,0x52,0xce,0x20,0x30,0x30,0xbf,0xa4,0xfe,0xd5,0xa7 }, { 0xfe,0x54,0x22,0xbb,0x36,0x26,0xe9,0xe2,0x25,0xeb,0x0a,0x2d,0x15,0x2a,0x2d,0x84,0x3d,0xaf,0xb4,0x29,0x15,0x9a,0x3b,0x75,0x02,0xb6,0x43,0x0a,0xc9,0xbf,0x08,0x2d,0xe9,0xd3,0x57,0xc2,0x91,0xf3,0x86,0x28,0xad,0x0a,0x2b,0x28,0xa3,0xba,0xc8,0xcb,0xe3,0x5a,0x71,0x5b,0x22,0x60,0xe5,0x9d,0x65,0x94,0x6e,0x15,0xbf,0x02,0x50,0x02 }, { 0x52,0x11,0x5e,0xa8,0x90,0x6b,0xd4,0x43,0xe9,0x09,0xee,0xa1,0x78,0x32,0xe8,0xc9,0x78,0x8a,0x0f,0x6e,0xd2,0xdd,0xef,0x10,0xf9,0x52,0xd3,0x50,0xe1,0x74,0x71,0xf1,0xad,0x1b,0xa8,0xe3,0x1f,0xc2,0xbe,0x57,0x0f,0xf5,0xe3,0x9c,0x2c,0xb3,0x82,0x67,0x06,0x55,0xcc,0x64,0xc5,0x09,0x73,0x79,0x77,0xe6,0x33,0xce,0xdd,0x9f,0xc0,0xa2 }, { 0x91,0x88,0x00,0x12,0x11,0x36,0xc8,0xe0,0x15,0x8e,0xe0,0x3d,0x2a,0x3d,0x6c,0x71,0x26,0x88,0xf2,0xf0,0xf6,0x63,0x2d,0x79,0x70,0x6c,0x35,0x2a,0xdd,0xc9,0x17,0x2c,0xfa,0xe9,0x36,0xc8,0xaa,0xc7,0x74,0x3a,0xfc,0x1e,0x0d,0x21,0x02,0x28,0xce,0x2b,0x7c,0x2c,0x6c,0x7e,0x29,0xc1,0x3f,0x3d,0xaf,0x1b,0x9f,0x8a,0x97,0xfa,0x81,0x1b }, { 0xab,0x97,0xd1,0xbd,0x7c,0xbc,0x6f,0x7d,0xae,0x7c,0x18,0x9d,0x09,0x87,0x7e,0x70,0x52,0x77,0x43,0x0c,0x28,0x40,0x62,0x2f,0x0b,0x4b,0x22,0xad,0xd5,0x8c,0xf4,0x9d,0x20,0xdf,0x10,0x43,0x74,0x2a,0xb0,0xd5,0x21,0x40,0xfc,0x8b,0xcd,0x91,0xf3,0x83,0x12,0x10,0xe8,0x67,0xaf,0x57,0xe9,0xa1,0x27,0x92,0x21,0x36,0x07,0x98,0x5c,0x33 }, { 0xdd,0x86,0x02,0xfd,0x25,0x2d,0x3c,0xbf,0x4c,0x1e,0xa5,0xe5,0x91,0xac,0x2d,0x91,0xb1,0xde,0x4b,0xb7,0x4a,0x0f,0xd3,0xab,0x7d,0xec,0x92,0x6f,0x80,0x6e,0x8a,0x6a,0x37,0x9c,0x25,0xf1,0x0d,0xef,0x8a,0x41,0x83,0xfc,0x75,0x88,0x5d,0xa0,0xf0,0x2e,0x88,0x44,0x84,0x24,0xc3,0x87,0x78,0x69,0x5d,0x45,0xcc,0x99,0x00,0x45,0x11,0x12 }, { 0x27,0xbf,0x66,0xa3,0xbd,0xe4,0xb1,0xbb,0x18,0x6e,0xaa,0xa7,0xe6,0xfa,0x3d,0x5e,0x62,0x06,0x4c,0x6c,0x10,0x2d,0x63,0xcb,0x51,0x26,0x7f,0xb6,0x3f,0x9e,0x25,0x92,0x2d,0x4c,0x47,0x02,0x36,0xdd,0x5d,0xa3,0x77,0x2a,0x5d,0xc5,0x07,0x8a,0x7a,0x81,0x2c,0x4b,0x5b,0xcc,0x4b,0x84,0x34,0x8c,0xd4,0x14,0xb7,0x9d,0x37,0x13,0xc9,0x13 }, { 0x3c,0x6f,0x5e,0xe0,0xcd,0xcb,0xb0,0x22,0x29,0xe8,0xaa,0x53,0x73,0x19,0x8d,0x76,0xca,0x3c,0x32,0x92,0x27,0xa3,0xbf,0x41,0xe9,0x6b,0xcc,0x53,0x9f,0x46,0x40,0x70,0x60,0xc7,0xaf,0xb4,0xd1,0x12,0xcf,0x56,0xaf,0x88,0x05,0xc6,0xec,0x62,0x09,0x2d,0x43,0x9b,0x1d,0xd7,0xda,0x3b,0xb8,0x32,0xf5,0x59,0xc9,0xfc,0x91,0x42,0xd0,0xe7 }, { 0x3d,0x69,0xa0,0x17,0x38,0x8f,0x8d,0xdd,0xb1,0x53,0xa2,0xbd,0x2e,0x95,0x3f,0x9f,0x3b,0x79,0xf6,0x3e,0x8d,0x95,0xf3,0xbf,0xfb,0x71,0x3a,0xbd,0xfd,0x52,0xc1,0xa6,0xe6,0x76,0x0a,0x76,0x34,0x0c,0x0c,0x9f,0x40,0xcb,0x84,0xf4,0xfb,0x63,0xe4,0xc7,0x07,0xc9,0x1b,0xc8,0x36,0x44,0xdc,0xf3,0x51,0xff,0xfd,0xb8,0x68,0x5f,0x50,0x8b }, { 0xdd,0x37,0xd3,0x32,0x6f,0x41,0xaa,0xb3,0xdf,0x8c,0x94,0x8c,0x03,0x8b,0xbb,0x0f,0xdc,0xbe,0x01,0xfd,0x57,0x25,0x63,0x64,0x1a,0x68,0x32,0xa0,0x3e,0xec,0xaa,0x86,0xde,0x1e,0x32,0x72,0x1e,0x29,0xfc,0x1d,0x73,0x1e,0xde,0x68,0x2c,0xf8,0xfb,0x59,0xf4,0x53,0xc2,0xed,0xee,0x5f,0xd7,0x76,0xa2,0x61,0x17,0xe8,0x1c,0x7c,0xc3,0x87 }, { 0xeb,0x2b,0xa6,0xd5,0x00,0x91,0x50,0x7c,0x22,0xaf,0x63,0xf1,0x12,0xda,0xa3,0xbc,0xce,0xaa,0xdf,0xff,0xcc,0x2a,0xea,0xd2,0xb6,0xa9,0x05,0xd8,0x7b,0x6d,0x46,0x0a,0xca,0x3a,0x2b,0x39,0x26,0x02,0xf3,0x2d,0xfa,0xd0,0x97,0x5c,0x54,0xc9,0xaf,0x61,0x1e,0xd1,0x8c,0x33,0xb2,0xce,0x4d,0xa6,0xd3,0xdb,0xc4,0xfc,0xf3,0x3f,0x4f,0xcd }, { 0x0e,0x08,0x19,0xd8,0xa6,0xb2,0x75,0x16,0x83,0x02,0xa4,0x50,0xf8,0xd9,0x9d,0x91,0x4f,0x19,0xe1,0x48,0xf2,0xe5,0xd9,0xe8,0x35,0x23,0x5c,0xbb,0xfd,0xc2,0xf5,0xeb,0x19,0x77,0x26,0xd7,0xd9,0xec,0xbe,0x79,0x89,0x16,0xbe,0xca,0xb4,0x75,0x62,0x75,0x61,0x77,0x7e,0x50,0xa0,0x30,0xc8,0xe9,0xc2,0x9f,0x77,0x9e,0xd2,0x9a,0x0b,0x30 }, { 0x2e,0x21,0x25,0xa8,0x35,0xaa,0xb1,0x74,0x51,0xf9,0x8b,0x43,0xa9,0xb8,0xb1,0xf9,0x75,0xde,0x21,0xc6,0x01,0xd8,0xbb,0xd7,0x9a,0xa4,0x32,0x55,0x21,0x2d,0x8e,0xfe,0x54,0x2a,0xa1,0xeb,0xba,0xe4,0x6a,0x89,0x1d,0x70,0x7d,0x4d,0x77,0x6f,0xb3,0xcb,0xd6,0xef,0xa6,0x03,0x63,0x8f,0xe9,0xf8,0x76,0x15,0xd0,0xaa,0x4f,0x95,0x62,0x9e }, { 0xee,0x8c,0x78,0xfd,0xb4,0x71,0x22,0xce,0x19,0xe0,0xfd,0xc0,0xfe,0x48,0x42,0x03,0x02,0x60,0x58,0x16,0x01,0x81,0x8e,0x0d,0x2c,0xef,0xfa,0x03,0xf4,0xba,0xcc,0xff,0xf5,0x48,0x2f,0x0c,0xc1,0xa7,0x93,0xc2,0x31,0x6b,0x01,0x65,0x43,0x5c,0xe9,0x58,0x82,0x2a,0x51,0x07,0xb9,0x3d,0x75,0x43,0xd2,0x39,0xd1,0x19,0xc3,0x80,0x61,0x7b }, { 0x1b,0xa8,0x11,0x57,0x0c,0x96,0x7d,0x50,0x49,0x40,0xb6,0x66,0x3b,0xd8,0x28,0x2f,0x55,0x17,0xa9,0x3e,0xc7,0x4b,0x29,0x07,0xef,0xa8,0x27,0x90,0x2f,0xd3,0x5c,0x67,0x2b,0xc3,0x61,0x24,0x6b,0x89,0x72,0x87,0xcf,0x1b,0xfe,0x23,0xd3,0x59,0x48,0x13,0x87,0x24,0x5b,0xf4,0x8d,0x3b,0x0d,0xf4,0xcc,0x78,0x19,0x07,0xb7,0x29,0xe4,0x5c }, { 0x77,0x65,0x77,0xe2,0x09,0xf4,0x90,0x28,0x50,0x0e,0xfa,0x1e,0x54,0x9d,0x67,0xd9,0x68,0x6e,0x53,0x5f,0x55,0xdd,0x07,0xa5,0x3d,0xf2,0xf2,0xe3,0xda,0x11,0x6c,0xdb,0xce,0x8b,0x3f,0x70,0x94,0xc1,0x63,0xb3,0xb6,0xc7,0x8d,0x68,0xa8,0xd1,0xe9,0x89,0x99,0xab,0x5c,0xc1,0xb9,0xce,0x69,0xf6,0xc9,0xd4,0xd4,0xe6,0x77,0x15,0xd5,0xd1 }, { 0xd4,0xa6,0xbe,0x83,0xb8,0xcf,0x7d,0x6e,0xef,0x3c,0x92,0xb4,0x70,0xb7,0xfd,0x5d,0x11,0x64,0x34,0xce,0x3a,0xd8,0x23,0xeb,0x53,0x73,0xc3,0x75,0xc5,0x26,0x5c,0x5c,0x14,0xd1,0x3d,0x9e,0x94,0xd3,0x5e,0x76,0x6f,0x04,0x4e,0xff,0x1b,0x37,0x30,0x70,0xed,0x5a,0x6f,0x34,0x8c,0xc6,0x68,0x43,0x7b,0xc2,0x61,0x06,0x07,0x4f,0x06,0x7a }, { 0x96,0x61,0x3a,0x36,0xd7,0xde,0xc6,0xb3,0x82,0xfa,0xb0,0xb6,0x89,0xef,0xc7,0x58,0xbb,0x0e,0xcb,0x44,0xa7,0x6a,0x39,0x1b,0xbc,0x6d,0xb7,0x14,0x75,0xfb,0xac,0x88,0x94,0x0c,0xdb,0xb6,0xf2,0x6d,0x79,0x7f,0xb2,0x99,0xef,0xe2,0x45,0x8d,0x8d,0x70,0x5d,0x10,0xcb,0x24,0x80,0x7d,0x97,0x82,0xa7,0xa6,0xf8,0xae,0x76,0xe2,0xb7,0x71 }, { 0x0e,0x36,0xe4,0x77,0xeb,0xd0,0x21,0x08,0x0e,0x0d,0xe1,0x09,0xa4,0x95,0x87,0x10,0xca,0xbb,0xe0,0xa7,0x81,0xd2,0xc9,0x3f,0xa4,0x65,0x4e,0x1b,0x16,0x99,0x5a,0x96,0x30,0x0b,0x50,0x03,0xd7,0x51,0xd3,0x9f,0xc1,0x66,0x59,0x94,0xda,0x74,0x72,0xe4,0x0a,0xbe,0x6e,0xd7,0xc9,0x46,0x9c,0xe6,0xd5,0x13,0xaa,0xcc,0x39,0x14,0x2a,0x84 }, { 0xf2,0x32,0xb3,0x7c,0x05,0xa6,0xd2,0x9d,0xc4,0xbc,0x9c,0xb2,0xe3,0xff,0xdb,0x9f,0x20,0x60,0x88,0x38,0x46,0xe0,0x9e,0x59,0x92,0x01,0xd9,0x39,0x32,0xae,0x26,0xab,0x7c,0x74,0x1b,0x6d,0x77,0x75,0xff,0x31,0xa1,0x28,0x41,0xed,0x03,0x94,0x3d,0xff,0x84,0x80,0xfa,0x0e,0x00,0x8b,0xc0,0x36,0xbe,0x1c,0x0b,0xf2,0xee,0xe6,0xa6,0xc5 }, { 0x37,0xad,0xcd,0x9f,0x97,0xc3,0x94,0xda,0xc0,0xae,0xfc,0xcd,0x90,0xac,0x98,0x85,0xff,0x9e,0x0b,0x63,0x17,0xf6,0x5e,0x32,0x57,0x35,0xb8,0xdf,0xaf,0x56,0x72,0x13,0x83,0xc4,0xf5,0xd7,0x9e,0x9b,0x2d,0x29,0xd8,0x40,0x2f,0x29,0xc7,0x2b,0x1e,0x96,0xf7,0x2c,0xc6,0x77,0x21,0xec,0x08,0xb7,0x01,0x5e,0x3c,0x88,0x18,0x96,0xbc,0xf8 }, { 0x6c,0x65,0xb9,0x8b,0xbd,0x66,0x95,0x82,0xd8,0xec,0x04,0x18,0xb6,0x0c,0x30,0x73,0xba,0x99,0xea,0xcb,0x91,0x8b,0xcf,0xeb,0x34,0xac,0x9e,0xe7,0xa5,0xf4,0x13,0x68,0x55,0x58,0x58,0xc5,0x0f,0xdc,0x58,0x1f,0x54,0x60,0xe5,0x65,0x57,0x2d,0x41,0xf3,0x87,0x01,0x74,0xc7,0x53,0xf7,0x6a,0x2f,0x98,0x26,0x78,0xfb,0x8e,0xf6,0x59,0xd3 }, { 0x3d,0x5a,0x48,0x85,0xb2,0xfa,0x58,0x7c,0x14,0xcc,0xc7,0x31,0x2c,0x87,0xda,0xb0,0xbc,0x25,0xd1,0xf1,0x30,0xd7,0xed,0xba,0xb8,0x56,0xac,0xb0,0x69,0x6a,0x26,0xec,0x44,0x17,0x13,0xaa,0x70,0x9b,0x63,0xfa,0x98,0x01,0x69,0xbc,0xd0,0x40,0x61,0xec,0x8c,0x39,0xea,0x1d,0xa9,0xc5,0x5d,0x8c,0x11,0x0c,0x55,0x5f,0xd5,0x89,0x43,0x77 }, { 0x42,0x41,0x7f,0xfd,0xfe,0xf1,0x37,0x55,0x59,0x84,0xfa,0x5f,0xf0,0x29,0xa0,0x8d,0x25,0x41,0xe9,0x62,0xdd,0x9d,0x3f,0x9a,0xaa,0xa2,0x17,0xb3,0xc8,0x8c,0x86,0x89,0x6a,0xad,0x40,0xca,0x33,0xbc,0xac,0xd9,0xd8,0x89,0x1c,0x50,0x19,0xa8,0x2f,0xf9,0xe0,0xfb,0xf8,0xc0,0x97,0xc6,0x2b,0x6e,0xb3,0xa9,0x7d,0x39,0x39,0x13,0x92,0x35 }, { 0x8f,0x08,0x32,0xd9,0xe6,0x5e,0x5c,0x81,0x2a,0xd3,0xba,0x8e,0x0f,0xd3,0x4a,0x27,0x13,0x8a,0x76,0x67,0xb0,0x7a,0x28,0xfb,0x04,0xae,0xeb,0x05,0xec,0xc3,0x20,0x8a,0x5b,0x07,0xab,0x77,0xdc,0x6d,0x21,0xe1,0xca,0x59,0xde,0x5b,0xb5,0x3a,0xb8,0x0f,0x0d,0xa1,0x56,0x53,0x08,0xfe,0xee,0x10,0x69,0x3c,0x5b,0x11,0x90,0x1b,0x3b,0x93 }, { 0x3c,0x9a,0x5c,0xb3,0xaa,0x0c,0xfc,0xa9,0xbe,0xcb,0xc2,0x63,0x84,0x02,0xda,0xb6,0xd6,0x96,0xa7,0xc1,0x0d,0x2e,0xd4,0x6b,0x1d,0x15,0x4e,0xdb,0x83,0x2a,0x78,0x2d,0x97,0x3b,0x15,0x34,0x48,0xb0,0x5c,0x05,0x68,0xe7,0xd1,0xa8,0x66,0x87,0x3d,0x4f,0x2f,0x46,0xde,0x6c,0x89,0x89,0x25,0xb6,0x72,0x62,0xfb,0x4d,0x0f,0x1d,0xff,0xce }, { 0x53,0xb5,0x83,0x57,0x15,0xdf,0xff,0x32,0xcd,0xce,0x01,0x4c,0x73,0x68,0xbc,0xc9,0x22,0x35,0x17,0x4b,0xba,0x21,0x0f,0xeb,0x54,0xf5,0x90,0x6f,0x88,0x0a,0x24,0xb9,0x32,0x31,0xc6,0x1c,0xea,0xe9,0x18,0xc3,0xdc,0x8b,0x5e,0xb2,0x15,0x8b,0xb2,0x9e,0xd3,0x43,0x44,0xd1,0xc5,0x97,0xa7,0x8c,0x0b,0x95,0x28,0xe4,0x29,0xf9,0xb2,0xff }, { 0xb4,0xc4,0x8a,0x4a,0xde,0xa7,0x04,0xb9,0xc0,0x3a,0x01,0x8e,0x6d,0x5b,0x4c,0xd2,0x36,0xa4,0x7e,0xa0,0xfd,0x26,0x0c,0x19,0x04,0x79,0x71,0x88,0x8d,0xd2,0xc7,0x6e,0xc4,0x0f,0x50,0x71,0x7c,0x49,0xff,0x83,0x54,0x03,0x7d,0xfe,0x6e,0x38,0xed,0x0c,0xdd,0xf1,0x7f,0x4f,0x98,0x85,0x61,0xda,0xad,0x86,0x49,0x3a,0x93,0xad,0x38,0xd6 }, { 0xf9,0x92,0x93,0x1c,0xd7,0x8e,0x98,0x41,0xb8,0x4a,0xce,0x13,0x4f,0x04,0xe6,0x8a,0x1b,0xb5,0xa6,0xdf,0x86,0x68,0xb8,0x38,0x4d,0x41,0xdb,0xd1,0x73,0xfc,0x3f,0x2a,0x97,0xcc,0xec,0xe7,0xd0,0x6b,0xf0,0x42,0x41,0x7a,0x4b,0x11,0x03,0xc8,0xe7,0x52,0xe9,0xcc,0x90,0xd3,0xdb,0x67,0xae,0x0e,0x2d,0x8f,0x9e,0x74,0x0f,0x1b,0x20,0x6c }, { 0x49,0x61,0x45,0x90,0xbe,0x34,0x71,0xf4,0xb7,0x38,0x76,0x51,0xa3,0x22,0x7c,0x1a,0xcf,0xf1,0x8c,0xc9,0x0c,0x1e,0x83,0x4f,0x7f,0x18,0x78,0x0d,0x33,0xd5,0x0d,0x1e,0x56,0x5f,0x31,0xfd,0x25,0xc6,0x82,0x84,0x3e,0x8e,0xa0,0x09,0x04,0xed,0xdb,0x69,0x4c,0x1e,0x4c,0x4d,0x2b,0xf1,0x72,0x44,0x34,0x46,0x8a,0x0d,0x43,0x33,0x74,0xe5 }, { 0x80,0xa6,0xfa,0x8d,0xdc,0x6d,0xee,0x65,0xdb,0x76,0xb4,0x56,0x85,0x6d,0xd2,0x6e,0xd4,0x78,0xce,0xc3,0x7e,0x28,0x4d,0xc0,0x3b,0x70,0x2c,0x39,0x35,0x0f,0xb3,0x46,0xa0,0x9d,0xf8,0xec,0x18,0xea,0x2c,0xd1,0x6c,0x3e,0x41,0x1b,0xb8,0x91,0xc8,0x11,0x56,0x70,0xa0,0x11,0x71,0x37,0xc4,0x03,0x71,0xe9,0x68,0x40,0xfd,0x77,0x8e,0x70 }, { 0xee,0xdc,0x7c,0x99,0xdf,0x2f,0x5d,0x2a,0x4a,0xf8,0xa5,0xa0,0x08,0xd0,0xcb,0xca,0xcc,0x82,0x0a,0x57,0x63,0x90,0xc7,0x67,0xb7,0xfe,0x29,0x28,0xf3,0xf9,0xdf,0x15,0xa0,0xf4,0xe0,0xbf,0xc1,0x2d,0x8f,0x6e,0x08,0x5b,0xce,0xbc,0x0d,0xc6,0x63,0xca,0xb7,0xa1,0x1c,0x42,0x9a,0x57,0x25,0x78,0x42,0x6c,0x68,0x31,0x14,0x01,0xb0,0x9c }, { 0xd9,0xae,0xdf,0x56,0x5b,0xfc,0x22,0x88,0x1a,0x0b,0x34,0x8d,0x62,0x1f,0xc1,0x19,0xfa,0xe7,0xc3,0xfc,0x2e,0x5d,0x3d,0x84,0x35,0x84,0x0b,0x81,0xd6,0xc1,0x3f,0xa6,0x1e,0x13,0x82,0x1c,0x11,0x99,0x7c,0xc6,0xbc,0x59,0x90,0xaa,0x4d,0x49,0x2b,0x1f,0xd2,0xce,0xc3,0xfd,0x08,0x47,0x40,0xee,0x9c,0x75,0x32,0x02,0xc5,0x90,0xb6,0x23 }, { 0x7c,0xda,0x01,0x05,0x0a,0xa8,0x92,0x4d,0x09,0xa5,0xbf,0xb1,0x69,0x3a,0x44,0x6a,0x3b,0x4e,0x1a,0xe1,0x50,0x6d,0x80,0x13,0xb7,0x02,0xe5,0x22,0xa8,0xfd,0x53,0x3f,0xbd,0xcb,0x90,0xe0,0x15,0xfa,0xa0,0x46,0x35,0x54,0xab,0x98,0xce,0xe0,0x35,0x59,0xac,0xa7,0x03,0xfa,0xfe,0x8a,0x67,0x9e,0x75,0xf1,0x18,0xe0,0x9d,0x89,0xcf,0xe9 }, { 0x13,0xc4,0xbd,0x37,0x30,0x0b,0x12,0x8a,0xd8,0x7e,0x04,0x28,0x82,0xdd,0x89,0xb9,0x33,0xeb,0xf8,0x44,0xee,0xa8,0xba,0xf5,0x3e,0xad,0xa3,0x4b,0xbc,0xeb,0xaf,0x5c,0x7a,0x86,0xb6,0x74,0x5b,0xd4,0x2d,0xd3,0x53,0xd6,0xb6,0x10,0x13,0x37,0x94,0x68,0x49,0x5b,0xb5,0xee,0xd1,0xcd,0xfd,0xb0,0x33,0x94,0xa2,0xe7,0x91,0x57,0x41,0xe1 }, { 0x1c,0x95,0x2e,0xa9,0x18,0x67,0xa1,0xd2,0x05,0x8f,0x5b,0xc9,0x9b,0xa7,0xe8,0x5c,0x77,0xac,0xf3,0xaf,0x89,0x44,0x8c,0x11,0xa3,0xdd,0x90,0x82,0xb3,0x26,0x85,0xae,0xa9,0x41,0xd7,0xce,0xc8,0x04,0xcc,0xb4,0xff,0x95,0xa0,0x1d,0xcd,0x5e,0x4e,0x73,0x08,0x1b,0x22,0xc6,0x4c,0xfc,0xa2,0xa5,0x5b,0xf8,0x5e,0x4c,0x97,0xbc,0x61,0x93 }, { 0x3f,0xa2,0xfa,0x36,0x05,0x7c,0xdd,0x93,0xeb,0xef,0x5a,0x85,0x58,0x12,0x1a,0x15,0x10,0x92,0x49,0xb5,0xba,0x15,0xd7,0x5a,0xf9,0xc3,0xeb,0xb5,0x0d,0xf5,0x85,0x53,0x08,0xd4,0x15,0x99,0xe8,0xe9,0xc1,0xc7,0x51,0x39,0xe6,0x70,0x03,0x7b,0x19,0xeb,0x1c,0xd9,0x28,0x35,0x3b,0x52,0x55,0xa0,0xef,0x95,0x42,0x7d,0x63,0x92,0xc7,0x9a }, { 0x77,0x22,0x2e,0x45,0xc1,0x86,0xa1,0x5c,0xf5,0xcc,0x98,0x3d,0xd3,0x5f,0xad,0x1e,0x72,0x62,0xeb,0x1f,0x1c,0xf7,0xe1,0xcb,0x0d,0x09,0x03,0xa7,0xe8,0x0b,0x2c,0x7a,0x50,0x63,0x2d,0x0e,0xc7,0x56,0x1d,0x43,0x81,0x54,0xff,0x28,0xf5,0xf4,0x8b,0x0a,0x6d,0xf7,0x96,0x3d,0x72,0xc0,0xb4,0x1f,0x0a,0x41,0x94,0xbe,0x2f,0xf0,0xae,0x3e }, { 0x2a,0x3c,0x0a,0x21,0x1b,0x3f,0xa0,0xe4,0x41,0xab,0xec,0x71,0xa8,0x66,0xeb,0xb9,0x33,0xb2,0xab,0xc5,0x85,0xbe,0xef,0x32,0xbf,0x60,0x40,0xb7,0xef,0x97,0x09,0x39,0x14,0xc5,0x28,0x1b,0xfc,0xcf,0x65,0x7f,0xf4,0xc6,0xa0,0x3b,0xa4,0xb7,0x9d,0x6c,0x02,0x2f,0x70,0x4e,0x2d,0x41,0xd4,0x55,0xc6,0xcb,0x6a,0x59,0xd1,0x8e,0xdf,0xab }, { 0xd6,0xf9,0x49,0xb2,0x58,0x3c,0x39,0x23,0x81,0x2a,0x4d,0xb4,0x0e,0x9c,0xdf,0x46,0x11,0x0c,0x2d,0x5a,0x2a,0x17,0x1c,0x70,0x46,0x23,0x68,0xc6,0x87,0x93,0x3d,0xd8,0x27,0xd2,0x99,0x84,0x54,0x47,0x1f,0x36,0x4a,0xc6,0xd1,0x4d,0x7e,0x19,0xb1,0x6f,0x21,0x64,0xd7,0xe6,0xdd,0x7e,0x44,0x64,0xab,0x4e,0x07,0x0f,0xef,0xcd,0x75,0xee }, { 0xe2,0x88,0x22,0xd2,0x3a,0x67,0x3e,0x5d,0xa0,0x11,0xd0,0xf2,0xe5,0x0b,0xdd,0x93,0x4f,0xce,0xcd,0xd4,0xac,0x73,0x6b,0xa8,0x52,0xb7,0xe4,0xc8,0xeb,0x20,0x50,0xc8,0x7a,0x9e,0xcc,0x50,0x36,0x10,0xdf,0xbd,0xd2,0x29,0x0f,0x45,0x1a,0x75,0xe1,0x6a,0xd4,0x5c,0x08,0x2b,0xbd,0xa9,0xe0,0x9a,0x26,0xc7,0xa7,0x8b,0xf3,0x45,0x95,0x12 }, { 0x5d,0xad,0x34,0x5c,0xdf,0x02,0x6b,0x83,0x19,0x5e,0x5d,0x80,0x63,0xdd,0xb4,0xfe,0x56,0x59,0x79,0xe8,0xea,0xf8,0x64,0x82,0xf0,0x66,0x23,0x03,0x56,0xe1,0xd0,0xbe,0x48,0x3e,0x04,0x4e,0xf2,0x80,0x49,0x0d,0x6d,0x47,0x5a,0x66,0x37,0x2e,0xc4,0xda,0xaa,0x67,0xf4,0xa9,0x15,0x8b,0xca,0x6d,0x4e,0x60,0xdc,0xac,0x82,0xd3,0xd2,0x43 }, { 0x2d,0x36,0xc7,0xf7,0xb3,0x99,0x71,0xb3,0xc5,0x1f,0x23,0x18,0xca,0x51,0x27,0x16,0xa1,0x72,0x7e,0x33,0x9b,0xbe,0xd2,0x1f,0xe9,0x25,0x31,0x52,0x05,0xd0,0xb8,0x8c,0x06,0x5f,0x56,0xce,0x3a,0x14,0x59,0xa5,0x0d,0xbd,0x7d,0xd5,0x56,0xc1,0xa0,0xaf,0xab,0x33,0x05,0x3c,0x17,0xa7,0x03,0x15,0x88,0x51,0x47,0x96,0xb8,0xbb,0xf6,0x83 }, { 0xff,0x22,0x0f,0x4a,0xbb,0xa9,0xc2,0x59,0x2c,0xb2,0x1c,0x10,0x7f,0xbe,0x4b,0x57,0xcf,0x77,0xda,0x76,0x2e,0x2f,0xe0,0x96,0x4e,0xf9,0x94,0x2e,0x28,0xd6,0xe3,0x18,0x4a,0xb1,0x05,0xed,0xe5,0xbf,0x78,0xfa,0x37,0xf2,0x0a,0x1a,0xb7,0xf9,0xfa,0x86,0xba,0xb0,0x20,0xb8,0x58,0xcb,0x99,0xa8,0xbe,0x7b,0xfb,0x24,0x86,0xd7,0xbd,0xe4 }, { 0xe3,0x1a,0x5b,0x95,0x18,0x8a,0x59,0x18,0x66,0x58,0x78,0xb5,0x4b,0x1b,0xf1,0x42,0xf6,0x60,0xc9,0x1c,0xfb,0x4e,0x87,0x5e,0x1b,0x21,0x1c,0xc0,0x59,0x43,0x18,0xa6,0x0a,0x0a,0x10,0x9a,0x9a,0x12,0x95,0x53,0xaf,0xc9,0x5b,0x48,0x20,0x86,0xef,0x75,0xf4,0xef,0x70,0x1e,0x63,0x06,0xee,0x8e,0x9e,0x5b,0x8b,0x1a,0xfb,0x9f,0x1e,0xda }, { 0xb8,0x4e,0xfb,0x3f,0xc5,0xb8,0xbb,0x75,0xd7,0x2d,0xe4,0x53,0xab,0x9d,0x4b,0xef,0xbe,0x06,0xc8,0x9d,0xa9,0x82,0x70,0xeb,0xc3,0x02,0x90,0x5c,0xd3,0x4a,0xc8,0xc9,0xfa,0xdf,0x23,0xf9,0x3f,0x49,0xd0,0xef,0x9b,0xb2,0xe1,0x94,0xe9,0xac,0x7d,0xdd,0xf1,0x90,0x99,0x70,0xe7,0x20,0x88,0x27,0x0e,0x9b,0xb3,0xc0,0x74,0x75,0x82,0xa1 }, { 0x69,0x7e,0x8d,0x01,0x88,0x5b,0x69,0x54,0x97,0x2d,0x42,0xb5,0xb1,0x98,0x6b,0x19,0x41,0x59,0xe1,0x88,0x53,0x64,0x36,0xf2,0xaa,0xb6,0x6c,0x6d,0x85,0x3d,0xdb,0x6c,0xc7,0x42,0xc3,0xee,0xd0,0xd4,0x01,0x20,0xc6,0x6c,0x3b,0xac,0xb9,0x0a,0xbe,0xae,0x6d,0xb2,0x95,0xb3,0xc6,0x80,0x72,0x4c,0x99,0x39,0xb7,0x43,0x67,0x4e,0x51,0xbb }, { 0x9b,0x2b,0xc0,0x72,0x60,0xbe,0xa9,0x43,0x35,0x82,0xaa,0x03,0xb8,0xb3,0x15,0x00,0x67,0x5a,0x36,0xbf,0xdd,0xd1,0x45,0x08,0x1e,0x0d,0x46,0x8b,0xee,0x6a,0xd3,0x4b,0x3e,0xf9,0x25,0x5d,0x7c,0x36,0xa7,0x59,0xeb,0x49,0x15,0x7e,0xc0,0xd0,0x3c,0x60,0x37,0x44,0x45,0x50,0x0b,0x73,0x6a,0xd9,0xbe,0xd7,0xb0,0xa7,0x29,0x43,0x81,0xd5 }, { 0xec,0x2e,0x35,0x9f,0x21,0xcd,0xa7,0xd7,0xdd,0xcd,0x39,0xb6,0xfd,0x32,0xab,0x0a,0x6c,0xd6,0x1e,0x91,0x3f,0xc1,0xcf,0x46,0x02,0x60,0x27,0x8d,0x79,0x0f,0xab,0x0b,0x54,0xae,0xc5,0x1a,0xf5,0x18,0x1f,0xa7,0x91,0xe3,0x40,0x1f,0xd3,0x15,0x1f,0x5e,0x83,0xa4,0x08,0x3b,0x68,0x90,0x94,0xf0,0x8b,0x8d,0x22,0x02,0xc6,0x5d,0x9a,0x36 }, { 0x93,0x18,0x6d,0x16,0xb2,0x12,0xef,0x40,0xcb,0x61,0x8e,0x66,0x3d,0xf6,0x93,0xf5,0x44,0xc1,0x69,0x4b,0xc4,0x17,0x72,0xa5,0x9d,0x9d,0x1b,0x32,0xe1,0xe2,0xe6,0x41,0x70,0x31,0x30,0x99,0x17,0x04,0x29,0x77,0x1d,0x01,0x72,0x56,0xfe,0xa5,0x47,0x90,0x40,0xf3,0x9f,0x25,0xed,0xed,0xf1,0x2d,0x70,0xfe,0x70,0x80,0x92,0xc5,0xba,0x90 }, { 0xe1,0xd1,0x9d,0xe5,0xd5,0x9c,0x68,0xbd,0x72,0xd7,0x9f,0xd5,0x05,0x34,0x5f,0xaf,0xcc,0xc9,0x88,0x51,0x6c,0x87,0x8a,0x84,0x9a,0xb6,0x0d,0x0b,0xab,0xe6,0xfd,0x35,0x11,0x50,0xff,0xd1,0x93,0x73,0xfd,0x77,0x61,0xc8,0xce,0x84,0x83,0x4d,0x03,0x95,0x2b,0xb4,0xfe,0xd5,0x06,0xe4,0xdd,0x64,0x5f,0x5b,0x3b,0x84,0x67,0x48,0xc6,0x6d }, { 0x98,0xb1,0xdd,0xbf,0x6b,0xd2,0x48,0x87,0x71,0xe7,0xbf,0x00,0x4a,0xc3,0xf1,0x0c,0x04,0x67,0x70,0x4c,0x61,0xb0,0x58,0x6a,0x61,0x72,0x22,0xae,0xd8,0x4b,0x96,0xea,0xb5,0xaa,0xbe,0xae,0xaf,0x8f,0xa9,0xe7,0x45,0x63,0x89,0xd8,0xd4,0x83,0x51,0x58,0xbb,0xad,0xdb,0xa6,0x8e,0x63,0x5d,0x84,0xa6,0xcd,0x7d,0x99,0x35,0xc7,0x05,0xf0 }, { 0x24,0x09,0xdc,0x80,0x26,0xe2,0x56,0x5e,0x5d,0x9c,0x31,0x41,0x4d,0x4a,0xa3,0x8b,0x59,0x17,0xca,0xe0,0x04,0x02,0x19,0xfe,0x22,0x63,0x83,0xc4,0xad,0xe9,0x0b,0x3c,0xb2,0x79,0xe4,0x0b,0x48,0xf1,0xf0,0xa7,0xba,0x54,0xf5,0x16,0x5e,0x0a,0x6a,0x94,0x98,0x9b,0x6c,0xb4,0xb6,0x49,0x29,0xdf,0x14,0xef,0x8a,0x49,0x47,0xf5,0xbf,0x79 }, { 0x67,0xf5,0x11,0xd9,0xa9,0x1d,0x13,0xb3,0x64,0x76,0xb3,0x03,0x79,0xb6,0xd0,0x4e,0x59,0x5d,0xf7,0xc6,0xc4,0x64,0x1d,0x44,0x1d,0xf5,0x82,0x15,0x7d,0x05,0x36,0xf5,0x68,0xfb,0x1a,0xdb,0xe7,0x90,0x55,0x54,0x15,0xdf,0xe9,0x4d,0x13,0x91,0xb3,0xe8,0x43,0x9f,0x5b,0xbe,0x68,0x0b,0x1b,0x13,0x56,0xcd,0x63,0xb7,0x4c,0x3d,0xee,0xc9 }, { 0xbc,0x31,0x0c,0x16,0xe4,0x4e,0x9a,0x6f,0x58,0x19,0x6f,0x39,0x19,0x60,0x11,0x1e,0x73,0x0e,0xb2,0x7f,0x92,0xbd,0xd8,0x1f,0xca,0x79,0x4f,0xf0,0xb8,0xa4,0xb6,0x22,0x42,0x7b,0x0d,0xb7,0xa5,0xc7,0x7d,0x3f,0x07,0x9e,0x98,0x06,0x36,0x18,0x51,0x85,0x1f,0x6a,0xcd,0x24,0x27,0x68,0x7a,0x1d,0x4a,0x1e,0x82,0xa1,0x0e,0x4e,0x2a,0xa5 }, { 0xdd,0xe5,0x60,0xe8,0x0e,0x5a,0x8b,0x1c,0xb8,0x62,0x31,0x79,0x6a,0xec,0xa0,0x14,0xaa,0x1c,0xfa,0x19,0x64,0x2f,0xb7,0x01,0x82,0xa3,0x7f,0x27,0x23,0xec,0xa5,0x7b,0x4d,0x70,0x22,0xa5,0x02,0xae,0x78,0x71,0x0d,0x82,0x13,0x81,0x86,0x09,0x58,0x8f,0x72,0xb5,0xb0,0x06,0xdf,0x50,0xbd,0x08,0x00,0x81,0x89,0xdf,0x7c,0xef,0x3e,0x8a }, { 0x68,0x2f,0x73,0x33,0xb7,0xa5,0x15,0x17,0x81,0x9b,0x90,0x93,0xf3,0xdb,0xe1,0xe8,0x7a,0x72,0x47,0x4d,0xb7,0x53,0x21,0x22,0xbc,0x2f,0x16,0xf0,0x75,0x08,0xa7,0xae,0x9c,0x37,0x4d,0x8a,0x3f,0x67,0xc1,0x84,0xfa,0x34,0x7f,0x21,0x5d,0xda,0xfb,0x8a,0x84,0x44,0x63,0xd0,0xf1,0x03,0x0b,0x29,0x83,0x7d,0x81,0x00,0xa0,0xcf,0xef,0xdc }, { 0x37,0x3c,0x97,0xcf,0x8f,0x3a,0xbb,0x58,0x15,0xd5,0x60,0xeb,0x8d,0x30,0x2a,0xcb,0x50,0x4d,0x05,0x69,0x58,0xb0,0x85,0x73,0xdd,0x6a,0x4e,0x34,0x98,0xb0,0x1f,0x01,0x78,0x10,0x75,0x42,0x85,0x07,0x09,0xa5,0xa1,0x1d,0x28,0x0e,0x98,0x06,0x06,0x01,0x92,0xf9,0x75,0xd6,0x66,0x6f,0x7e,0xad,0x20,0x90,0x03,0x78,0x6e,0xcb,0xf3,0x3e }, { 0xdb,0x34,0xa5,0x50,0x49,0xd9,0x4a,0x10,0xef,0xee,0x81,0xb8,0x2e,0x22,0x48,0xbf,0x38,0x4e,0x0c,0x34,0x1e,0x5b,0xec,0xa0,0x7a,0xe4,0xa6,0x33,0x8d,0x1e,0x04,0xfc,0xe8,0x78,0xd7,0xbe,0xdb,0xb0,0x95,0x8c,0xa3,0x82,0x0c,0xb7,0x83,0x8e,0xe9,0x5c,0x5c,0xaa,0x87,0x12,0x47,0xae,0xbf,0x0f,0xc0,0x4d,0xf5,0xed,0x41,0x0e,0x83,0x03 }, { 0x48,0x25,0xf0,0xbc,0x4c,0x22,0x46,0xf6,0xe4,0xa2,0xab,0x2e,0xa7,0xfc,0x41,0xf1,0x13,0x49,0x67,0x9c,0x5a,0x44,0xfe,0x08,0x17,0xc6,0xef,0x18,0xb1,0x6d,0x54,0x88,0x8b,0x13,0x8a,0x21,0xf6,0xb5,0xba,0x16,0x9b,0x11,0x66,0x2e,0x1e,0x86,0xac,0xad,0x13,0xd3,0x8a,0xcd,0xa8,0x6e,0x95,0x4f,0xd1,0xe5,0x3c,0xfc,0x25,0xd0,0x4c,0x90 }, { 0xae,0xd1,0x68,0xbc,0x65,0x64,0x45,0xfb,0x0d,0xa4,0x4f,0xd7,0x11,0xca,0x64,0x43,0xa8,0x58,0xdd,0x12,0x54,0x22,0x86,0xb7,0x1a,0x9d,0xf5,0xe7,0x83,0x1c,0xf3,0x9d,0x16,0xa7,0x85,0xe0,0x12,0xc4,0xdd,0x56,0x46,0x90,0x9b,0x51,0xa8,0xd9,0x0f,0xd1,0x79,0xd8,0x85,0xfa,0x59,0x2b,0x96,0x79,0x1d,0x32,0x8d,0x2c,0x93,0x35,0xe4,0xc1 }, { 0x81,0x59,0xf0,0x5c,0xa4,0x16,0x73,0x53,0x12,0x90,0x1f,0xbb,0x80,0xf2,0x07,0x0d,0x15,0xcb,0xed,0x42,0xdd,0x08,0x9a,0xca,0xb0,0xc2,0xdc,0x66,0xe9,0x30,0x79,0x0b,0xd4,0x0f,0xe8,0x20,0x5c,0x9f,0x34,0x3c,0x69,0x01,0x5e,0xd4,0xbf,0x15,0xd8,0xe9,0xdf,0x66,0xbe,0x46,0x4d,0x35,0x46,0x2a,0xfd,0x88,0x40,0xf6,0x70,0xdc,0x9f,0xfe }, { 0x2d,0x7a,0x4d,0x3b,0x3b,0x7e,0x2f,0x59,0xde,0x88,0x25,0xc5,0x0b,0xfc,0x11,0xc3,0xa6,0xa9,0x12,0x3a,0x8e,0x06,0x9b,0xd4,0xda,0x5d,0xc2,0x20,0xdb,0xdb,0x32,0x5c,0xdf,0xfa,0x01,0x19,0x3c,0xec,0x35,0x9c,0x9b,0x71,0xa2,0x47,0xff,0x8e,0xc3,0xe0,0x71,0x38,0x2b,0xb1,0xef,0xb5,0x2f,0x02,0xa5,0xf2,0x7b,0x08,0x8d,0x90,0x4d,0x7c }, { 0x8e,0x5f,0xb8,0xbc,0xe0,0x1d,0xc0,0x26,0xb5,0xc7,0x06,0x63,0x10,0x00,0xe2,0x5d,0x96,0x89,0x1f,0x29,0x95,0x8d,0xa6,0x18,0xde,0x20,0xf4,0x14,0xa7,0x87,0x99,0x32,0x2d,0x18,0xea,0x6a,0x6e,0x15,0xba,0x5d,0xf0,0x58,0xcd,0x33,0xb4,0x53,0x27,0x7a,0xb7,0xf0,0xfd,0x9b,0x94,0xcd,0x3f,0xee,0xa5,0xa0,0xc9,0x23,0x2d,0xde,0x4d,0x49 }, { 0xff,0xdd,0x5f,0xb4,0x91,0x66,0x89,0x95,0xe8,0xd6,0x1a,0xcd,0x17,0x71,0x6e,0xa5,0x61,0x85,0xfc,0xac,0x7b,0x25,0x3b,0xf5,0x52,0xda,0x83,0x44,0x83,0xf2,0x18,0x02,0x8a,0x9a,0x39,0x59,0xf2,0xd7,0x05,0x4b,0x25,0x51,0x46,0x87,0x8a,0x6f,0x60,0x15,0x0e,0x3f,0x80,0xe8,0xc3,0x1e,0xbb,0xba,0x3c,0x06,0xf6,0xf0,0x71,0x66,0x62,0x51 }, { 0x4f,0xe6,0x86,0xe1,0x4b,0xe5,0x3e,0x53,0x83,0xfa,0xf5,0xf1,0xd3,0x95,0x91,0x6f,0x05,0x65,0xa5,0xc6,0x2b,0x53,0x6a,0xd3,0x2c,0xfa,0x4b,0x98,0x28,0xd1,0x0d,0xa8,0xc8,0xae,0x26,0xb4,0x8f,0x3a,0x22,0x33,0x16,0xa5,0x2e,0xbe,0x1c,0x6b,0x05,0x27,0xde,0xb9,0x0b,0xab,0x0f,0x38,0x94,0x16,0xd8,0x86,0xad,0x20,0x96,0xbd,0x6f,0x5d }, { 0x44,0xa0,0xc8,0xc1,0x96,0x8b,0x43,0x05,0x23,0x1a,0x67,0x99,0xca,0x77,0x31,0x14,0x1a,0xa6,0x10,0x91,0xe4,0xfe,0x1e,0xc5,0x71,0xd0,0x6d,0x8d,0x23,0x32,0x79,0xae,0x31,0xdf,0x36,0x9b,0x86,0x3a,0x94,0xc5,0xa2,0x00,0xa0,0xc4,0xfe,0x63,0xe7,0x1a,0x84,0xa2,0x7d,0x99,0x94,0x4c,0x82,0x7f,0x85,0xd8,0x40,0x4d,0x05,0x9f,0xe9,0xca }, { 0x11,0xc1,0xbd,0x2c,0x28,0xbe,0x0a,0xf4,0xeb,0x68,0x62,0x13,0x65,0xd3,0x9e,0x09,0x7f,0x30,0x5d,0xc4,0x0e,0xb0,0x0b,0xff,0x19,0x95,0xda,0x2c,0xf7,0xed,0x1b,0x98,0x6c,0x4e,0xf4,0x5e,0xa3,0x92,0x38,0x59,0x02,0x05,0x50,0xfb,0xc4,0x4b,0xe7,0x1c,0x42,0x0e,0x23,0xde,0xc0,0x2e,0xe4,0x46,0x2a,0x7f,0x86,0xe1,0x23,0xcb,0x7d,0x50 }, { 0xf8,0x94,0xee,0xdc,0xe2,0xf2,0xbc,0x89,0x5e,0x7c,0x6a,0x39,0xc1,0xe9,0x46,0x34,0xab,0x47,0xf9,0x7f,0xbc,0x54,0x55,0x6c,0xe4,0xf3,0x26,0x82,0x89,0x34,0x41,0xe9,0x44,0xab,0x90,0x00,0x83,0x81,0xc1,0x76,0x3b,0x6b,0xa9,0x5e,0x71,0x3b,0xca,0x05,0x8a,0xa4,0xac,0x77,0x5b,0xb0,0x2c,0x6d,0xf3,0x3a,0xf2,0xaf,0xbf,0xe5,0xd4,0x2f }, { 0xeb,0x0f,0x5e,0x21,0xb5,0xbe,0xb5,0xbb,0x20,0x5c,0xd8,0x79,0x5d,0x0a,0xe5,0xdd,0x44,0x27,0x01,0x80,0xa7,0x4d,0xb2,0x9a,0x7c,0xf2,0x8b,0xf6,0xba,0xd2,0x40,0x7d,0x5d,0x6f,0x8c,0x51,0x97,0xc6,0x30,0x50,0x0e,0x16,0x61,0xd2,0x1d,0xff,0x56,0x1e,0x14,0x3c,0x67,0xaf,0xae,0xd1,0xd3,0x0b,0x92,0x48,0xd3,0x85,0xf0,0x81,0x27,0x27 }, { 0xd5,0xbd,0xf9,0x45,0xb1,0xcb,0xff,0x17,0x94,0xcd,0x62,0x03,0xef,0x62,0xcb,0x06,0xdf,0x16,0x45,0x96,0x8e,0x35,0x6c,0x2b,0xd1,0xba,0xea,0xf4,0xd2,0x95,0xaa,0xc8,0xa0,0x7a,0x2e,0x4f,0x8b,0x31,0xa1,0xdf,0x7a,0xac,0xd6,0x84,0x0d,0x50,0x8a,0x58,0x3c,0xa5,0x54,0xbe,0xf4,0x90,0x72,0x58,0xf8,0x91,0xbc,0x42,0x75,0xd4,0x0f,0x49 }, { 0x9d,0x59,0xb6,0xf4,0x02,0x39,0xc7,0xa5,0x5c,0x51,0x6f,0x86,0x52,0xae,0xba,0xb8,0x8a,0x31,0xdd,0x07,0x9c,0x5a,0xa3,0x82,0x79,0x95,0xf0,0x65,0x4e,0xc1,0xa6,0x69,0x89,0x44,0x1d,0x3b,0x0b,0xbb,0x93,0x22,0x43,0x5f,0xf7,0x79,0x7a,0x01,0x7f,0x25,0x61,0x85,0x72,0x62,0xbb,0xc9,0x14,0x30,0x24,0xdc,0x2b,0xd8,0xc6,0xdc,0xae,0xb8 }, { 0xcd,0x19,0xde,0x43,0xf4,0x33,0x77,0x37,0x3a,0xa5,0x21,0xb0,0xd8,0xa0,0xbb,0x94,0x4a,0x07,0x74,0x6b,0xb8,0x29,0xa6,0xdb,0x40,0x60,0xb2,0xb9,0xba,0x03,0x1a,0x05,0xff,0xca,0x8c,0x4b,0x0f,0x1b,0x5e,0xaa,0x53,0xf0,0x2c,0xf4,0xd3,0x7f,0x98,0x22,0xe6,0x5b,0x9e,0xa0,0x9b,0xd9,0x50,0xab,0x27,0xc1,0xa2,0xad,0xc9,0xfb,0xec,0xde }, { 0xac,0xd6,0x25,0x89,0xcb,0x61,0x25,0x59,0x19,0xc7,0xcc,0xee,0x7d,0xec,0x13,0xe2,0x23,0x2b,0xa1,0xa8,0x54,0x6f,0x97,0xe5,0x9a,0x66,0xc0,0xb7,0x66,0xd2,0xc0,0xb2,0x9a,0x4a,0x45,0x79,0xbd,0x50,0x4a,0x41,0x36,0xa1,0xcc,0xcc,0xb9,0xbd,0xe7,0x4b,0xcd,0x1b,0x48,0x78,0x1c,0x2e,0x73,0x2f,0xd9,0xb4,0xdd,0xf2,0x54,0x01,0x51,0xbb }, { 0x67,0xd3,0x82,0x40,0x30,0x05,0xa2,0x00,0x89,0xe4,0x61,0x3c,0x31,0x39,0xb7,0x2f,0xcc,0xd4,0x67,0xff,0x67,0x2b,0xfd,0x35,0x1c,0x7b,0x05,0x83,0xdb,0xc6,0x92,0xe8,0xf8,0x0d,0x11,0x78,0x3e,0x94,0xe4,0x05,0x03,0xbb,0x9b,0x8f,0x72,0x7b,0x93,0xd2,0xb1,0x68,0x84,0xe2,0x88,0x34,0x34,0xfb,0xd4,0xfc,0xc9,0x58,0x86,0xcd,0x85,0x48 }, { 0xa5,0xd3,0x2c,0x02,0xd4,0xcd,0x34,0x29,0x1d,0xee,0x16,0x2f,0x10,0xee,0x85,0x5a,0x22,0x92,0x35,0x07,0xc0,0x16,0x58,0x36,0x62,0xac,0x86,0xba,0x93,0x9d,0x8b,0xc9,0xdd,0xc6,0xf6,0x5a,0xa4,0x97,0x04,0xf1,0x19,0x6d,0x1a,0xb2,0x71,0x01,0x18,0x3d,0x4d,0x2e,0x0a,0x39,0x47,0x0d,0xe5,0x9a,0x26,0x7f,0x3a,0x8b,0x7d,0xe0,0x90,0xc9 }, { 0x61,0x57,0xe0,0xfb,0xc6,0xf6,0xe1,0x2e,0x68,0x86,0x6f,0xdd,0x74,0x76,0x63,0xf4,0xcd,0x24,0x1d,0x68,0x2b,0xa0,0x62,0x05,0x9a,0x0c,0xe6,0xb1,0x10,0x3f,0xe6,0x04,0x98,0x09,0xb5,0xe8,0x97,0x60,0xd0,0x46,0xb2,0xb6,0x99,0x82,0xab,0xe6,0xfe,0x3b,0x40,0x5f,0xc0,0xf5,0xbc,0x1b,0xe3,0xf0,0x00,0x65,0xe6,0x01,0x6b,0x4e,0x71,0xcd }, { 0x83,0xdc,0xd7,0xb1,0xe0,0xf4,0x14,0x1a,0xc4,0xe6,0xb7,0x79,0x25,0x75,0xe5,0x27,0x12,0xda,0x94,0x5e,0x19,0x1a,0x12,0xd4,0xb5,0xa8,0xb5,0xdc,0x58,0xbd,0xb6,0x76,0x88,0x7a,0xf9,0xdc,0x28,0xbc,0x7f,0x74,0x54,0x27,0x20,0xea,0x2d,0x7c,0x2f,0x32,0xba,0x42,0xc0,0xeb,0x15,0xa8,0xf9,0x45,0x2a,0xbd,0xfd,0x7b,0xe9,0x2f,0xd1,0x38 }, { 0x40,0x37,0xab,0x67,0x50,0xe6,0xdd,0x86,0xe3,0xe7,0xb4,0x14,0x01,0xce,0x64,0x84,0x45,0x97,0x37,0xd4,0xb3,0x1d,0xfe,0x7d,0x9d,0x9e,0xdf,0xf6,0xd5,0x26,0x6c,0x2e,0xd5,0x83,0xdf,0xc0,0x64,0x0e,0x6a,0x7f,0xda,0x32,0x4a,0x09,0xbb,0x6b,0x40,0xc5,0x40,0x90,0xe6,0x18,0xd6,0xd1,0xe0,0xce,0xcf,0x8a,0xd6,0xf9,0x00,0x4f,0xbe,0xff }, { 0x7e,0x1f,0xad,0x27,0x37,0x0b,0xc3,0xec,0x39,0xf0,0x15,0x2e,0xd0,0x99,0x3c,0xac,0xf6,0xf2,0x47,0x02,0x2b,0xc7,0xd6,0xe3,0x9a,0x11,0x9c,0x85,0x46,0xc2,0x12,0x39,0x6f,0x2c,0x81,0x5c,0xd8,0x2f,0x6f,0x7b,0x2b,0xe2,0x04,0x04,0x90,0xa8,0x4f,0x85,0x2b,0xd8,0xd8,0xd9,0xb0,0x0d,0x8e,0x60,0x92,0x96,0xfc,0xf8,0xd7,0x0a,0x62,0x4e }, { 0x7b,0x6f,0x16,0x95,0xbe,0xd8,0xfa,0x14,0x8b,0xf2,0xa4,0xe9,0xe4,0x93,0x90,0x93,0xc0,0x87,0x6c,0x55,0x01,0xc9,0xac,0x77,0x31,0xd0,0x0e,0x10,0x5d,0xd4,0xaa,0x1c,0xef,0x30,0x68,0xbc,0xa9,0x9f,0x46,0x25,0xba,0xc7,0x79,0x17,0xdb,0x89,0x53,0x1c,0x0c,0x1e,0x9a,0x28,0x23,0x97,0xcf,0x37,0x81,0x62,0xc2,0x40,0x6b,0x8c,0x54,0xde }, { 0xda,0xfb,0x37,0xa5,0xea,0x23,0x73,0x89,0xa9,0xd7,0xda,0x56,0xd7,0xc9,0xca,0x0f,0xc5,0x46,0xe9,0x28,0xca,0xe4,0x53,0x78,0xb8,0x69,0x52,0x2b,0x30,0x0c,0x7a,0x5b,0x60,0xc2,0xc4,0x19,0xe1,0xa2,0x9c,0x56,0x66,0xcf,0x79,0x7c,0x45,0x60,0xff,0x62,0xff,0xed,0x35,0x5e,0x8b,0x5b,0xf0,0x34,0x1a,0xd3,0xce,0x62,0x99,0x37,0xe1,0x19 }, { 0xdc,0xdf,0x3e,0x69,0xa9,0x93,0x1c,0x1b,0xb7,0x47,0xa5,0x27,0xc5,0x95,0xbd,0xed,0xc4,0xab,0x48,0x8e,0xf5,0xec,0xdb,0xdc,0x62,0x15,0xad,0x30,0x90,0x06,0x76,0xca,0x43,0x7e,0x05,0x3d,0xa1,0x44,0xec,0x4e,0xe8,0x8a,0x88,0x2e,0x0c,0x8d,0x51,0x6e,0x9d,0x0a,0x4f,0x68,0xf6,0xe9,0xaa,0x50,0x93,0x57,0xf1,0x0d,0x50,0xef,0x0a,0xca }, { 0xd0,0xf7,0x3b,0xa3,0x3c,0xf6,0x08,0x77,0xf8,0x8e,0x97,0xd7,0x1f,0x47,0x60,0xd2,0x7e,0x1d,0x93,0x70,0x45,0x6c,0x36,0xd4,0x74,0x7a,0xb7,0x4e,0x78,0x4f,0x69,0x00,0xfa,0x4c,0xf4,0xae,0xfd,0x15,0x11,0xa0,0xb1,0xac,0xb9,0x60,0x07,0x64,0x3f,0x95,0xc4,0xbe,0x0a,0x34,0x88,0xad,0xa2,0x01,0x55,0xbd,0x9a,0xe0,0x84,0xe9,0x5a,0xfb }, { 0xf7,0x4d,0x73,0x64,0xd1,0xe0,0x86,0xf3,0xb1,0xf7,0x6a,0x76,0xbc,0x18,0x17,0xab,0x15,0xa9,0x19,0xb0,0x4a,0xf6,0x00,0x2b,0x37,0x37,0x91,0x05,0x18,0x12,0x7d,0xc1,0x7b,0x08,0x61,0xd7,0x2f,0xf3,0x10,0xf5,0x4f,0x0b,0xf7,0x79,0x22,0x52,0x6c,0x7f,0x4c,0xbb,0x2b,0x84,0x95,0xcf,0xcc,0x66,0x3c,0x01,0x4e,0xd5,0x59,0x15,0x42,0x98 }, { 0x13,0xf4,0xf8,0x77,0xdb,0x01,0x10,0xc4,0x2b,0x55,0x55,0x87,0x07,0xb4,0x97,0xa1,0xf9,0x4e,0x84,0xac,0x4c,0x81,0xac,0xc8,0xf0,0xb8,0xd2,0xe4,0x80,0x67,0xbc,0xf9,0x12,0x2f,0x9c,0x88,0x86,0x51,0x90,0xdb,0x20,0x5c,0xbb,0xb6,0x1f,0x3b,0x3b,0x7d,0x0d,0xec,0x8a,0x43,0xba,0xfc,0x4e,0x4a,0xbb,0x3d,0x8c,0x9f,0x33,0x1d,0xa7,0xd4 }, { 0x97,0xe0,0xa6,0xb1,0x73,0x04,0x28,0x13,0x1e,0x64,0x95,0x50,0xcd,0x6a,0x32,0xcc,0xc2,0x1e,0xcb,0xba,0x80,0x3a,0xe7,0x76,0xd2,0x85,0xac,0x9d,0xda,0x3f,0xdf,0xa3,0xf6,0x39,0xbe,0xde,0xd8,0xa5,0xbf,0x22,0x40,0x8d,0x17,0x26,0x88,0xe8,0x04,0xca,0xef,0x25,0xc6,0xa9,0x48,0xd9,0x72,0xd8,0x65,0xe4,0x82,0x72,0xd2,0xa2,0xe2,0xb4 }, { 0xf4,0x26,0x7c,0x68,0xf8,0xdd,0xd5,0x2f,0x8e,0x58,0xac,0x55,0x7a,0x3a,0x19,0xcf,0x3b,0x05,0x55,0x57,0x9c,0x7f,0xa2,0x8f,0x34,0xed,0x81,0x4d,0xfd,0xee,0x4c,0xc7,0x6d,0xc5,0x00,0xe2,0x12,0x63,0x8b,0x57,0xda,0x77,0xe9,0x37,0x81,0xcf,0x22,0x6d,0xe7,0x1b,0x29,0x0e,0xe1,0x2a,0x08,0x4a,0x25,0xc4,0x02,0xe5,0x77,0x4f,0x43,0x0b }, { 0x9c,0x64,0x1b,0x8f,0x99,0x23,0x38,0x45,0x5d,0x3b,0xa2,0x9c,0xa7,0xef,0x38,0x3b,0xf8,0x13,0xd6,0x0f,0x21,0x7c,0x81,0xa3,0xb9,0x31,0x7c,0xc7,0x69,0x99,0x83,0xfc,0xaa,0x86,0x0f,0xe3,0x3f,0x34,0x62,0x6f,0xf3,0xf7,0xaa,0x51,0xc7,0xe8,0xb2,0x28,0xfb,0x1e,0x9e,0xeb,0xfd,0x6c,0x59,0x55,0x33,0x35,0xee,0x4d,0x89,0xb7,0x58,0x80 }, { 0xfa,0xa7,0x66,0x96,0xc0,0x1b,0x29,0xfd,0xf4,0x3b,0xb1,0x37,0x07,0x01,0x2d,0x0c,0x9c,0x52,0x3e,0x91,0x0e,0xc8,0xbd,0x35,0xd9,0xd8,0x58,0x6f,0xd6,0xd7,0x01,0xe1,0x5e,0xd3,0xb9,0xbc,0x4c,0x07,0x77,0x5f,0x87,0xf6,0xc2,0x9c,0x38,0xc6,0x42,0x76,0x8e,0xd3,0x56,0x85,0xe9,0x9f,0x34,0x7d,0xe7,0xb7,0xbd,0x23,0x33,0xaf,0x2b,0x7b }, { 0x2c,0xf2,0xb5,0x28,0x40,0x8b,0xd5,0x77,0x0f,0x04,0x20,0x28,0x28,0xf5,0x11,0x8e,0x7d,0xd4,0x25,0x5f,0x68,0xd2,0xed,0xe7,0xc2,0xb6,0x50,0x6e,0x76,0x81,0xdb,0x22,0x06,0x4e,0xd3,0x8a,0x80,0xca,0x78,0x64,0x87,0xb7,0x3f,0xe4,0x09,0xd0,0x31,0xcd,0x67,0x3a,0x6b,0xb8,0x5c,0x81,0x41,0x8e,0xaf,0x19,0x7d,0x18,0xcc,0x51,0x19,0x88 }, { 0x50,0x4d,0x99,0xa0,0xaa,0xcb,0xcf,0xdc,0xc6,0x95,0x5a,0x64,0x39,0x95,0x58,0xc0,0xa0,0x6b,0xee,0xe7,0xbc,0x7e,0x20,0x89,0xae,0x19,0xa3,0xa5,0x41,0x22,0x55,0xd3,0xae,0x19,0x04,0xff,0x67,0x36,0x3f,0xcb,0x89,0xb8,0x90,0x49,0x2d,0x80,0xc9,0xc9,0xe4,0x2d,0x3b,0x76,0xa0,0xb1,0xf7,0x67,0xa4,0x76,0x5a,0x1d,0x78,0xbd,0xde,0xcc }, { 0xe2,0x27,0xaa,0xce,0xc6,0x7f,0x06,0x73,0xc0,0xb6,0x11,0xeb,0xea,0xb4,0x2d,0x76,0x63,0x92,0xc7,0x71,0xb6,0xb3,0x89,0x4b,0xcf,0x72,0x08,0x90,0xc3,0xbb,0xb4,0x38,0x03,0x01,0xac,0x19,0xce,0x4d,0x1b,0x8d,0x9e,0x86,0x8a,0x3e,0x7b,0xce,0x06,0xd4,0x48,0x36,0xa4,0xc6,0xd7,0xd0,0xcc,0xd2,0xb2,0x3e,0x24,0xfb,0x6b,0x3e,0xbb,0x80 }, { 0xb4,0x81,0x36,0xb9,0x7f,0x3a,0x48,0x33,0xa6,0x2e,0xab,0x5b,0x45,0x70,0x7b,0x40,0xae,0xdf,0xdf,0xbf,0x35,0x7e,0x04,0x7a,0x8f,0x30,0x54,0x03,0x2a,0x69,0x48,0x44,0xf7,0x50,0xf2,0x59,0xc2,0x45,0x61,0xb6,0xb0,0x78,0x04,0x9b,0xf1,0xcd,0x98,0x6b,0x33,0x87,0xfd,0xc6,0x8f,0x98,0xd3,0x7a,0xd4,0xc3,0xcd,0x7b,0xce,0x4a,0xf6,0x03 }, { 0xf9,0x4d,0x3a,0xfb,0x9c,0xc6,0x01,0x22,0x3c,0x71,0x52,0x85,0x77,0xe6,0x82,0x3c,0x1a,0xfa,0xa6,0x50,0x38,0xac,0x2b,0x7b,0x81,0x3b,0xd7,0x07,0xd2,0x76,0x6a,0x36,0x95,0xe9,0x58,0x29,0x42,0xea,0x4f,0x8f,0xfa,0xb4,0x93,0x73,0xe3,0x62,0x04,0xd6,0x67,0x84,0xf2,0x01,0x64,0x21,0x33,0x20,0x34,0x66,0x48,0xee,0x64,0x8d,0x5c,0xaf }, { 0x34,0xac,0xc5,0x8e,0x01,0xf8,0x20,0xdb,0x82,0xe6,0xce,0x11,0xdf,0xe5,0xb4,0x4b,0xf9,0xdf,0xe4,0xdd,0xf5,0xaa,0xdd,0x85,0x37,0x7e,0xe7,0xd4,0xab,0x97,0x9c,0xf3,0xef,0xd2,0x03,0x65,0xb4,0x03,0x74,0x1c,0xc8,0xc8,0x94,0x64,0x7c,0x74,0x85,0x21,0x13,0x32,0x20,0xc3,0xec,0xd7,0xe8,0x9a,0xf4,0x5b,0x20,0x6e,0x5c,0xa4,0xf4,0x33 }, { 0x28,0xe4,0x9f,0x0d,0x59,0xa4,0xf2,0xff,0x1b,0xe3,0xd1,0x77,0x23,0x6c,0x51,0xa6,0x1a,0xe3,0x26,0x91,0x35,0x65,0x2c,0x55,0x79,0xb4,0x4c,0x6a,0xc3,0x53,0x20,0x80,0x17,0x8d,0xf8,0xe7,0xef,0xee,0xe8,0x31,0x53,0x72,0xd0,0x41,0xa6,0xae,0xd7,0xf5,0x69,0xa0,0x75,0x5e,0xce,0x71,0xec,0xc1,0x29,0xc3,0x49,0xe9,0x56,0xa6,0x9d,0x93 }, { 0x1d,0xed,0x7d,0x3a,0x80,0x25,0x5d,0xa6,0xfc,0x9f,0x3d,0x15,0xb4,0x61,0x80,0x0c,0xb4,0xb8,0xcd,0x05,0xa1,0xce,0x66,0x75,0x11,0x27,0xf0,0xca,0xd1,0x59,0xa7,0x08,0xcc,0xde,0x61,0x91,0xdb,0x6c,0x9b,0xda,0xbd,0x88,0xf8,0x36,0x8d,0x0b,0xba,0xc4,0xbf,0x2d,0x5f,0x0d,0x49,0x3d,0xe1,0x4e,0xbe,0xa8,0x9a,0xef,0x25,0xf1,0xff,0xd6 }, { 0xc3,0x10,0x0c,0xb6,0xc0,0xa3,0xa2,0xdd,0x96,0xb0,0xd4,0x4b,0xa4,0x7e,0x95,0x12,0xb6,0x17,0x22,0xc4,0x9d,0xae,0x86,0x72,0xe9,0x47,0x08,0xf3,0xc4,0x64,0x5b,0x87,0xd0,0x23,0xdf,0xbe,0xe7,0x70,0x55,0x77,0x5a,0xee,0xa2,0x25,0x44,0x9d,0xab,0xb0,0x7c,0x04,0x6f,0x26,0xe6,0xbc,0xf9,0x73,0x7a,0xc5,0x84,0x21,0xe5,0xfa,0xce,0x9f }, { 0xc3,0x90,0x8e,0x85,0x55,0x70,0x50,0x96,0xc5,0xf0,0x0c,0x91,0xec,0x75,0xd2,0x5b,0x1e,0x3c,0xe5,0x24,0x1a,0xb2,0x7f,0x60,0x7e,0xbc,0x4e,0xd9,0x50,0x27,0xb5,0x7e,0xc1,0x91,0x0f,0x75,0x02,0xa0,0xf8,0x58,0xf2,0xaa,0xcf,0xaa,0x10,0xfe,0x67,0x82,0x27,0x5e,0x52,0x8a,0xa5,0xea,0x7f,0x6d,0xe0,0x07,0xb9,0x33,0x13,0x04,0xd0,0x4a }, { 0x5e,0xe6,0xcf,0xe5,0x1f,0x8f,0x81,0x92,0xf5,0xaa,0x2f,0x80,0xe0,0x5e,0xb6,0x11,0xde,0x6c,0x4d,0x00,0x42,0xb7,0xc4,0xc7,0x91,0x42,0xb4,0x38,0x9e,0x00,0x9b,0x38,0x91,0x4d,0x90,0x6a,0xdf,0xea,0xd7,0xfd,0xfe,0xf5,0xd8,0xf6,0xed,0x72,0xe7,0x37,0x32,0xa1,0xb0,0x77,0xc9,0x99,0xa1,0xe9,0x27,0xfb,0x38,0xd8,0x2e,0x05,0x79,0x4f }, { 0x1b,0x35,0xac,0x38,0xe4,0xe6,0x78,0x99,0xc1,0xc1,0xd3,0xfe,0x78,0x2d,0x42,0x34,0xcc,0x7d,0x4e,0xc8,0xe5,0xab,0x84,0x7e,0xa1,0xc7,0x54,0x75,0x7d,0x6b,0x27,0x9d,0xf3,0xe6,0xd6,0x43,0x84,0x0d,0x5a,0xb8,0xb4,0x73,0x0d,0x78,0x47,0x0c,0x71,0x49,0x69,0x93,0x8a,0x8e,0x2a,0xf2,0x7d,0x2b,0xd7,0x62,0x56,0x0a,0xa6,0x4a,0x23,0x27 }, { 0x8e,0x40,0x0b,0x49,0x73,0xed,0xa8,0xd3,0x13,0xd1,0x80,0x2c,0xb3,0xaa,0xe6,0x8e,0x05,0x01,0x2a,0x93,0xb4,0xf8,0x21,0x49,0x98,0x8b,0x98,0xab,0x10,0xf0,0x93,0x38,0xb5,0xb3,0xa9,0xb5,0x34,0x41,0x24,0x85,0x81,0x84,0xaa,0x77,0x17,0xc6,0x44,0x47,0x9e,0xe4,0x50,0x18,0xdf,0xc0,0x44,0x74,0x54,0x65,0xe7,0xc6,0xef,0x1c,0x37,0x42 }, { 0x88,0xe2,0xc7,0xed,0x0b,0x73,0x5b,0xef,0xcc,0xad,0xdb,0x9d,0x2d,0x37,0xd2,0x14,0xcb,0x22,0x77,0x33,0xb8,0x47,0x1c,0xb0,0xdc,0x99,0xa0,0x1d,0x1b,0xd2,0x84,0xcc,0x8d,0xfc,0x31,0xe4,0x1d,0xa5,0x7a,0xef,0xe9,0x34,0x46,0x7d,0x77,0xeb,0x00,0xc7,0x31,0x6e,0x70,0xcb,0xf1,0x2c,0xfc,0x3b,0xdf,0x26,0xa2,0xf7,0x5e,0x14,0xb9,0x98 }, { 0x2f,0x61,0x39,0x44,0x72,0x22,0x07,0x1f,0x9e,0x6a,0xaa,0x12,0xd3,0x32,0xf9,0x2a,0x86,0xfd,0x1b,0x70,0x74,0x25,0x54,0x5b,0x6f,0x74,0x47,0x4f,0xa5,0x8f,0x82,0x5c,0xb3,0xf8,0x10,0xe7,0x7b,0x7d,0xda,0x1e,0x09,0x8b,0xa6,0xfb,0x59,0x02,0xf8,0x43,0x46,0x9e,0x94,0xf3,0x9b,0x0d,0xb6,0xa4,0xfb,0x55,0x99,0xf5,0x25,0x62,0xe6,0x4c }, { 0x5c,0x87,0xdb,0xcf,0xc9,0xcb,0xd5,0x47,0xc8,0x94,0x33,0x68,0x19,0xdc,0x3b,0x92,0xe6,0xf8,0x30,0x7a,0x97,0xcd,0x17,0x79,0x14,0xbd,0x13,0x0f,0x4e,0x9f,0xb9,0x05,0xc3,0x1c,0xbc,0xed,0x6c,0x80,0x70,0x38,0xd8,0xc1,0x9f,0x4d,0x11,0x01,0xcf,0xa6,0xb1,0x54,0x3c,0xdc,0x24,0xad,0xab,0x2d,0xae,0x7e,0x56,0xce,0xb8,0x19,0xe3,0x88 }, { 0x8c,0xb9,0xad,0xe4,0xf5,0x2a,0x4f,0xb8,0x6c,0xc0,0x0f,0xcf,0x1a,0xfd,0x3f,0x38,0x49,0x8c,0xe8,0xe9,0x39,0x9a,0x12,0xe4,0xdc,0x4e,0x9c,0x5c,0xd4,0x8c,0x36,0x9f,0x68,0xc2,0x23,0xdd,0x5e,0x31,0x17,0xc3,0x0e,0xcb,0x10,0x3d,0x8e,0x1b,0xfa,0xb9,0xcf,0x94,0xc8,0x1b,0x9f,0xaf,0x7d,0xba,0x24,0x06,0xaf,0x10,0xbc,0xca,0xed,0xbb }, { 0x19,0xc0,0x13,0x4c,0x72,0x7e,0x6d,0x4e,0xdd,0xa6,0x53,0x52,0x7d,0x62,0x2d,0xe8,0xe7,0xb9,0x80,0xb5,0xd2,0x4d,0x98,0xc1,0x9e,0x83,0x00,0xa5,0x0d,0x25,0x4c,0xcc,0x5a,0xc0,0x79,0x87,0x80,0x22,0xcc,0xa5,0x52,0x67,0xca,0x4b,0x13,0x0d,0x45,0xae,0xb8,0xac,0xc3,0x86,0x7e,0xda,0xb2,0x01,0x66,0xee,0xff,0x07,0x54,0x65,0x38,0xa0 }, { 0xdf,0xb0,0x88,0xce,0x96,0xf2,0xaa,0xec,0x74,0xc7,0x89,0xd1,0xaa,0x86,0xea,0x75,0xe7,0xd0,0x39,0xae,0x98,0x31,0xbe,0x80,0x1b,0x9e,0x25,0xb3,0x57,0x7d,0x7d,0x85,0xd9,0x01,0x64,0x57,0x46,0x92,0xb6,0xf8,0xab,0x88,0xe9,0xa2,0xdc,0xcd,0x44,0xf1,0x48,0x9d,0xf5,0xea,0x5b,0x93,0x11,0x82,0xb4,0x66,0x5f,0xad,0xcd,0x51,0x01,0xa2 }, { 0x08,0x50,0xa1,0x81,0x30,0xaf,0x5e,0xc3,0xf9,0x62,0xfa,0x33,0x9f,0x60,0xab,0x46,0x4f,0x3f,0x66,0x87,0x96,0x97,0xf5,0xf5,0x9e,0x8c,0x99,0x4a,0x7c,0x47,0x2c,0xdf,0x41,0x13,0xf6,0x7b,0x43,0x1a,0x6e,0xe0,0xd4,0x35,0x9f,0x9f,0x8c,0xff,0x3b,0x8d,0xc4,0xfd,0xac,0x83,0xe5,0x16,0x9d,0x0d,0xc6,0x88,0xe2,0xae,0x75,0x79,0xbb,0x50 }, { 0x63,0x6c,0xf7,0x4f,0x5b,0x49,0x2a,0x33,0xa6,0x17,0x1c,0xdb,0x75,0x02,0x7b,0x1f,0x75,0x9a,0xa1,0x74,0x78,0xa9,0xc2,0x16,0x91,0x1e,0xe9,0x37,0x94,0xdb,0x8f,0x21,0x78,0xf7,0x70,0x25,0x92,0x83,0x6b,0xa0,0x9f,0x10,0xb0,0xdf,0xcd,0x00,0xa2,0xe9,0x66,0x1c,0x2a,0xe7,0x59,0x36,0x05,0x27,0x65,0x27,0x47,0x1d,0x23,0x05,0x54,0x1f }, { 0xd3,0xf7,0x94,0xa4,0x38,0xca,0x92,0x0e,0x66,0x29,0x84,0xd5,0x2c,0x36,0xa5,0x87,0x91,0xa0,0x50,0xe8,0xf7,0x52,0x9e,0x3e,0xab,0xeb,0xfb,0xc8,0xfc,0x3d,0xd8,0x97,0x10,0x3f,0x01,0xf8,0xb3,0x2d,0xdb,0x18,0xc4,0xf2,0x01,0x98,0xfb,0xde,0x28,0x97,0xd3,0x1e,0x8b,0x4e,0xef,0x0a,0x0b,0xcf,0x7f,0x2c,0x0e,0x7c,0x99,0xd2,0xd8,0xdd }, { 0x2d,0x41,0x73,0x4e,0xf2,0x67,0xa1,0xe1,0x78,0xa8,0x45,0xc5,0x09,0xda,0xf2,0x12,0x3a,0xad,0x9b,0xfc,0xb1,0x78,0xa2,0x8a,0x15,0x35,0xd5,0x4a,0x9b,0x3e,0x37,0x8e,0x64,0x3e,0x9a,0x6f,0x45,0xd9,0x14,0xe4,0x6c,0x44,0x24,0xfc,0x39,0xb1,0x10,0xdf,0x7e,0xd7,0xe5,0x41,0xd7,0x5a,0x8e,0x46,0xe2,0xbc,0xfd,0xe6,0x3c,0x68,0xb6,0x3b }, { 0x69,0xd8,0x29,0x34,0x58,0x90,0xc7,0x6b,0x6a,0x47,0x96,0xe1,0x0d,0x33,0x51,0x1c,0xbe,0xdb,0x4d,0x8d,0x47,0xe5,0x28,0x09,0x2c,0x71,0xcc,0x57,0x1e,0x38,0x67,0xe3,0xa3,0xde,0x3e,0x52,0xdf,0x3a,0x97,0xdd,0x48,0xf3,0x5f,0x22,0x54,0xec,0x7c,0x14,0xe2,0x36,0x06,0x58,0xa5,0x66,0xa8,0xea,0xc3,0x3a,0x28,0x14,0x02,0x04,0xdf,0x83 }, { 0x55,0x84,0x3c,0x97,0xa5,0xc4,0xc8,0x9c,0xcf,0xc7,0x2c,0x5b,0x9e,0x61,0xcd,0xed,0x50,0xa3,0x30,0x04,0xcd,0x0d,0x6d,0x73,0xc0,0xbe,0xa1,0xbb,0x02,0xa2,0x54,0x18,0xf6,0xfa,0x1d,0x95,0xcf,0x8f,0x8d,0xcc,0x8a,0x09,0x81,0x7e,0xdd,0xf2,0x85,0x88,0xba,0x5b,0x6b,0x26,0x31,0x5a,0x72,0xc9,0x3f,0xb0,0x8a,0x51,0x7b,0xf1,0xf4,0xe8 }, { 0xfc,0x4a,0xa2,0x7d,0x15,0x88,0xc5,0xff,0xe9,0xdd,0xe6,0x54,0xa7,0x57,0xb7,0x40,0x80,0x81,0xf7,0x6c,0x17,0xb0,0x0e,0xbe,0x14,0xba,0x17,0x14,0x39,0x3b,0xd2,0x73,0x53,0x2c,0x2c,0x76,0xa1,0x1a,0x5f,0xfe,0x57,0x6b,0x40,0x8f,0xac,0xda,0xe6,0x79,0x8c,0xe7,0xc7,0x24,0xa3,0x34,0x56,0x8e,0xe9,0xfa,0x30,0xd5,0x0c,0x40,0x7f,0x88 }, { 0xa1,0x3d,0xd0,0x72,0x79,0x27,0xb4,0x9c,0xf3,0x15,0xa6,0xe2,0x1e,0x6a,0xe0,0x89,0xde,0xb6,0x8d,0x13,0xef,0x2b,0x46,0x60,0xa1,0xac,0x60,0x5f,0xef,0xde,0xa1,0xeb,0x29,0x33,0xe0,0x9a,0x31,0x3f,0x79,0x57,0x28,0xf1,0xfd,0xea,0x63,0x09,0x82,0xad,0x10,0x9a,0x9e,0x43,0x3c,0xd6,0xd8,0x26,0xbe,0x16,0xc9,0x9f,0x37,0x6a,0x4b,0xb4 }, { 0x14,0x87,0x1b,0x9b,0x35,0xdf,0x66,0x95,0x73,0x79,0x0e,0xa6,0xb1,0xb6,0xd7,0xf4,0xa4,0x4b,0x03,0x1c,0x11,0xa3,0xdc,0x1f,0x6f,0xc0,0xc6,0x48,0x4d,0x85,0xc2,0x18,0xcc,0xef,0x44,0x92,0x30,0x26,0x4c,0x81,0x30,0xff,0xd5,0x77,0x03,0x4a,0x0e,0xbc,0xd7,0xfe,0xe0,0x37,0x0d,0xba,0xba,0xe5,0xae,0x40,0x34,0x4d,0x3c,0x97,0xc5,0x2f }, { 0xa1,0x1e,0x84,0x7f,0x0a,0x3c,0x12,0xe8,0xc8,0xcb,0xd6,0x3a,0x53,0x54,0x91,0x83,0x19,0x08,0x03,0x61,0x99,0xc6,0x16,0x78,0x01,0xaa,0xa1,0x3e,0xb9,0x81,0xd9,0xa4,0x78,0x49,0xa2,0x52,0xb4,0x53,0x06,0xa1,0x44,0x00,0xc4,0xd1,0x52,0xbb,0xe0,0x67,0x68,0xe8,0x17,0xf6,0xe6,0xd1,0x41,0x0b,0xf7,0x9e,0xc2,0xc1,0x09,0x7a,0x51,0xd5 }, { 0x74,0x8c,0x48,0xbf,0x3d,0xe9,0x72,0x2c,0x49,0x6d,0x5f,0xfd,0x7c,0x03,0xf2,0x8b,0x80,0x70,0x3a,0xb2,0x0d,0x4b,0x97,0x5b,0xad,0x0e,0x18,0x6e,0x60,0xc1,0x6a,0xfc,0x08,0x78,0x7a,0x1f,0x0f,0xc3,0x03,0xa9,0x81,0x54,0x55,0x72,0xe6,0x28,0x80,0xd1,0x2a,0x95,0xe1,0xb0,0x04,0xc6,0xdb,0x85,0x3e,0x3b,0xe5,0x66,0x7a,0x0a,0x2c,0x67 }, { 0x4b,0xd1,0x05,0x43,0x11,0x3c,0x6a,0x54,0xde,0xbf,0x5b,0x74,0x13,0x29,0x28,0x08,0xe8,0xc3,0xa8,0x59,0x19,0xe9,0xae,0x98,0xde,0x5f,0x4a,0x30,0x83,0x13,0xba,0xaf,0x60,0xb7,0x2a,0x00,0x38,0xc0,0x04,0x82,0x58,0xb8,0x62,0x63,0xaa,0x57,0x1e,0x18,0x5b,0x44,0xed,0x0d,0xbc,0x47,0x36,0x3a,0xcb,0x72,0x5d,0x8b,0x99,0xea,0xb3,0xfd }, { 0x37,0x84,0x90,0xd6,0xce,0xea,0x69,0x02,0x3d,0x3e,0x15,0xbb,0x83,0x4c,0xcb,0xd0,0xd3,0x2c,0x88,0xac,0xc3,0xfb,0x5f,0x21,0x33,0x40,0x24,0x78,0x45,0xeb,0xd4,0x74,0xe8,0x7c,0x5a,0xc1,0x69,0x0a,0x95,0x60,0x56,0x93,0x3f,0x64,0x58,0x42,0xf2,0x82,0x70,0x17,0x62,0x2e,0x80,0x9f,0x00,0x07,0x22,0xeb,0xe4,0xc4,0x68,0xa0,0xe2,0xc9 }, { 0x98,0x94,0xfc,0x1e,0x90,0x7c,0x72,0x03,0xd5,0xd2,0x99,0x98,0x62,0xe4,0xcf,0x42,0x55,0x4b,0xcc,0x34,0x9d,0x25,0x08,0xf6,0x65,0xe0,0x31,0x95,0x8d,0x93,0xd9,0x13,0xec,0xfc,0x06,0xcd,0x75,0x99,0x33,0x16,0xc4,0xc4,0x0e,0xa5,0x03,0xfd,0x4e,0x05,0xd9,0xf2,0x95,0x48,0x12,0x23,0xe2,0xd3,0x65,0xd6,0xa8,0xc0,0xf0,0xa6,0xb1,0xa7 }, { 0xcc,0x38,0xf2,0x04,0xe4,0x9b,0x87,0x16,0x65,0x98,0xc1,0xc8,0x41,0xb7,0x91,0x9d,0x1e,0x06,0xbe,0x97,0xb8,0x0a,0x95,0xfc,0xdf,0xd3,0x35,0x48,0x3a,0xee,0xc8,0x66,0x7d,0x9c,0xc3,0x0d,0xfa,0x9b,0xd6,0xa1,0x5a,0xfd,0x34,0x64,0x8b,0xca,0xdf,0x96,0x1d,0x1e,0xa8,0xc1,0x1e,0x20,0x02,0x7a,0xf6,0x88,0xc7,0xf2,0x72,0x24,0x1b,0xc4 }, { 0xbd,0x3d,0x64,0xaa,0xa5,0xf4,0xa9,0xb6,0xc1,0x9b,0x32,0x89,0x6e,0x6a,0xe7,0x0f,0x70,0x3f,0x7b,0x86,0xac,0x7a,0x72,0xd8,0x8c,0x3b,0x1f,0xc3,0x2d,0xbf,0x30,0xd1,0xc1,0x8b,0x8c,0x0f,0x43,0xa2,0x4e,0x24,0x16,0xc0,0xc0,0x3a,0xfb,0x5b,0xf3,0x27,0x36,0xba,0x26,0xcb,0xbb,0x34,0x1f,0xa7,0x76,0x9f,0x98,0x83,0x33,0x86,0xc6,0x20 }, { 0x74,0x84,0x18,0xcb,0x55,0xe0,0xf2,0x8a,0xce,0x06,0x68,0x0c,0x24,0xfe,0x88,0xd4,0xb8,0x17,0xec,0xd0,0x91,0x0e,0x99,0x22,0x62,0x45,0x54,0x2c,0xf5,0xcd,0x86,0x9b,0x38,0x2a,0xfc,0x65,0xcd,0x66,0xbf,0x68,0x4b,0x15,0xdf,0xe5,0x32,0x9b,0x6b,0x13,0x11,0xb0,0x89,0xfb,0x6a,0x9e,0xd9,0x04,0xd3,0xeb,0xc3,0x39,0xbf,0x49,0x53,0x16 }, { 0xf3,0xd0,0x47,0xf0,0xc2,0xcd,0x58,0x41,0xab,0xf0,0x00,0xfb,0x7b,0x49,0x34,0x66,0x88,0x93,0x2e,0x00,0x6c,0x0a,0x3f,0xf9,0xeb,0x07,0xed,0x7a,0x71,0xaa,0x8f,0xe5,0xeb,0xe6,0x5d,0x1f,0x29,0xf5,0x7d,0x44,0xe2,0xf9,0x2d,0xdd,0x05,0x40,0x4f,0x13,0xb9,0x70,0x70,0xb0,0x3d,0x71,0x20,0x23,0x4f,0x07,0x59,0x2f,0x6b,0xf8,0xd5,0xd1 }, { 0x3f,0x73,0x2b,0x6a,0x5d,0x92,0x3c,0x42,0x91,0xa0,0x4a,0x36,0x55,0x63,0x56,0x2f,0x5c,0xe4,0xe0,0xb7,0xc4,0xb7,0x76,0x67,0x0f,0x69,0x15,0x38,0x7c,0x75,0xc1,0x6b,0xb0,0x5c,0xed,0xcb,0x5b,0x3b,0xb0,0x4f,0x4e,0x3e,0x6b,0x4e,0x0c,0x57,0xc2,0xb7,0x12,0x5b,0xcd,0xd4,0x26,0xa0,0x0e,0xe6,0x68,0x45,0xcc,0x44,0xdf,0xf5,0x1f,0x7d }, { 0x0b,0x4c,0x5e,0xa2,0xae,0x00,0xf6,0xdf,0x11,0xe5,0x81,0x00,0x49,0xbf,0x50,0x5a,0x29,0x98,0x65,0xb6,0x47,0xae,0xc9,0x61,0x4f,0x7d,0x6f,0x20,0x9f,0xe6,0x2d,0xab,0x96,0x39,0x4e,0x11,0x2b,0x66,0xd4,0x2b,0xfe,0x0d,0x32,0x17,0x49,0x20,0x3e,0x8b,0x04,0xea,0x62,0xd9,0xb7,0x8b,0xa1,0x37,0xe7,0x35,0xd9,0x44,0xed,0x79,0x7b,0x82 }, { 0xc6,0xd6,0x88,0xfd,0xc1,0x87,0x13,0x19,0x26,0xb9,0xae,0xbc,0x80,0xde,0xed,0xc9,0xcf,0x90,0x90,0x03,0x8e,0x3e,0x68,0xd3,0xf5,0xef,0x7e,0x79,0xe6,0x6a,0x97,0x6c,0xc9,0x39,0x7f,0x98,0x1a,0x25,0xd4,0x00,0x0b,0xf9,0xb1,0x9c,0x47,0x8c,0x14,0x49,0xc1,0xcc,0x66,0xf5,0xaf,0x25,0xec,0xc2,0xae,0x66,0xc6,0x2c,0xe6,0xe5,0xaf,0x7d }, { 0xfd,0x05,0x47,0x02,0x11,0x77,0xfe,0x06,0xcd,0x66,0xf7,0xba,0xfd,0x84,0x1e,0x70,0x71,0xcc,0xe5,0xc0,0xb4,0x75,0xaa,0xe7,0x2b,0x25,0x94,0xef,0x99,0x16,0x67,0xfa,0xec,0x6e,0x10,0x72,0x2d,0x0f,0x3f,0x72,0x8d,0xf6,0x78,0x3a,0x71,0xd8,0xfa,0x11,0xeb,0xfc,0x77,0x25,0xaf,0x1f,0xfe,0xc6,0xbc,0x0f,0xae,0xc5,0xf4,0xde,0xd0,0xd0 }, { 0x01,0x5d,0x41,0x07,0xf0,0xf6,0x76,0x60,0x41,0xcf,0x0a,0xd1,0x1c,0xa5,0x2b,0x77,0xcc,0x79,0x63,0x65,0x5d,0x9e,0x08,0x43,0x20,0x23,0x17,0xdb,0x53,0xbe,0x1f,0x60,0x87,0xb2,0xcb,0x74,0xec,0xc2,0xc9,0x11,0x3f,0x48,0x8b,0x00,0xc2,0xbb,0xef,0xe7,0x7e,0xd7,0xf1,0x93,0xf1,0x93,0x42,0xe9,0x58,0xd8,0x86,0xce,0x86,0x8d,0xee,0x7f }, { 0x84,0x9a,0xd3,0xb7,0xdc,0x53,0x93,0xf3,0x77,0xb2,0x4c,0x35,0xfb,0x2c,0x87,0xcd,0xdf,0x86,0x96,0xfb,0x34,0x15,0xae,0x7d,0xe3,0xa0,0x9c,0x6a,0xed,0x0c,0x43,0x60,0x9b,0x6b,0x4a,0xd9,0xe0,0x0f,0x68,0x44,0xa0,0x44,0x55,0x54,0x35,0xe4,0x46,0x1a,0x77,0x96,0xf9,0x05,0x68,0x2e,0x42,0xdb,0x6c,0xca,0x6a,0xab,0xaa,0xfd,0xed,0x7d }, { 0x4f,0x96,0x11,0x01,0x2c,0x66,0xe9,0x14,0xf7,0x05,0x54,0xf5,0x75,0xe1,0x81,0x57,0xb3,0xa5,0xed,0x16,0xeb,0x9e,0xa2,0xff,0x29,0xfc,0xc1,0xce,0x35,0x07,0xfc,0x0b,0xf5,0x91,0x25,0x77,0xa6,0xb8,0x32,0xc5,0x54,0x8e,0x59,0x98,0x81,0x29,0x7f,0xba,0xa8,0x8f,0x0f,0x5b,0xcb,0x2b,0xb0,0x39,0x5b,0x7a,0xd1,0x70,0x39,0x8d,0x93,0x26 }, { 0xca,0xb3,0x1f,0x2a,0x8e,0x57,0x48,0x83,0x14,0xa0,0xab,0x19,0xfd,0xf7,0xac,0x0b,0x13,0x1a,0x37,0x3b,0x07,0x87,0xbc,0x31,0xcc,0x1e,0x6d,0xc2,0x47,0x76,0xf8,0xc1,0xc2,0xc3,0xd3,0xca,0xf8,0x40,0xd8,0x30,0x1b,0x00,0x1c,0xcb,0xaa,0x7e,0xf8,0xbb,0x42,0xe1,0xa1,0x9c,0x7a,0x6b,0x00,0xae,0x6a,0xac,0xc2,0x52,0x77,0x89,0xa1,0x3c }, { 0x25,0x2f,0xa3,0xe6,0xcd,0x1d,0xff,0xe5,0x4c,0x04,0x22,0x00,0xc2,0x62,0x22,0x21,0xb5,0xa6,0x16,0x1c,0x1f,0x52,0x4d,0xfe,0xde,0xe4,0x1f,0x40,0xd7,0x83,0x1c,0xeb,0x71,0xf5,0x7b,0x92,0xc1,0x34,0xf9,0x31,0xbf,0x74,0x2f,0xd1,0xc4,0x9a,0xd4,0x8f,0x2d,0x1e,0xec,0x4f,0xc0,0x18,0x26,0x67,0xc5,0x8d,0xde,0x20,0xfd,0xff,0xe6,0x27 }, { 0xed,0x3e,0x42,0x25,0xcd,0x53,0x74,0x4c,0x59,0x91,0xd1,0x70,0x57,0xae,0x89,0x0a,0xd7,0x7e,0x2f,0xee,0xa8,0xe1,0xb5,0x44,0xeb,0xdb,0xf1,0x32,0x92,0x9a,0xab,0x34,0xb4,0x74,0x3a,0xa5,0x6c,0x03,0x9c,0x21,0x14,0x7d,0x43,0xdf,0xd2,0xea,0x8a,0x73,0x9e,0x1e,0xef,0xea,0xc9,0xa2,0xb9,0x59,0x1c,0x8e,0x7b,0xe4,0xb9,0x0e,0x26,0xc1 }, { 0x6c,0xd7,0x68,0x3c,0xc5,0x25,0x75,0x93,0x53,0xbc,0x2b,0x5b,0x41,0x7d,0x7e,0x42,0x6b,0xd2,0xa5,0x5b,0x10,0xa6,0xd6,0x04,0xcb,0x39,0x2e,0x96,0xd8,0x0b,0xce,0xb3,0x28,0x3b,0x21,0x72,0xb1,0xed,0xe7,0xfb,0x1e,0xf0,0x44,0x29,0x7d,0x30,0x13,0x8f,0x0d,0xe3,0x7e,0x4e,0x18,0x6e,0x3e,0x0e,0xf5,0x3f,0x7a,0x0c,0x6c,0x33,0x5b,0x87 }, { 0xae,0x4e,0xf5,0xf6,0x96,0xf4,0x1a,0xc1,0x6a,0xc7,0x3d,0x47,0xb4,0x49,0x97,0xa6,0x7f,0xda,0x58,0x07,0x99,0x5a,0xc3,0x87,0x07,0x53,0x9a,0xb7,0x5b,0x10,0x36,0xcf,0x9c,0x78,0x36,0xe0,0x89,0x87,0x6c,0xfe,0xae,0x94,0xf8,0x12,0x1d,0xc3,0xe6,0xc0,0x20,0x6a,0xcf,0x8b,0x34,0x84,0xeb,0x1c,0x13,0x50,0xa7,0xc2,0xb6,0xf5,0x7b,0x6b }, { 0x01,0x87,0x0b,0x35,0xc2,0x41,0x2f,0x1d,0x60,0x75,0x48,0xc8,0x5d,0xaa,0x91,0x56,0xb6,0x45,0x57,0x60,0x21,0x3d,0xbc,0x0e,0x21,0x7c,0x55,0x41,0x14,0x36,0xed,0x9e,0xa5,0x9a,0x30,0x09,0xf2,0xed,0x78,0xe2,0x70,0x16,0xae,0x78,0x3b,0x06,0x28,0x6b,0xc3,0x8f,0xb7,0x48,0x69,0x4b,0x17,0xed,0x60,0xe3,0xf3,0x1d,0xfd,0xa2,0x5c,0x03 }, { 0x48,0xc7,0xfd,0xb2,0x09,0xf1,0x3b,0x88,0x39,0xce,0x1d,0xa6,0x03,0x4f,0xf5,0x49,0xf8,0x91,0x01,0xc3,0xeb,0xe9,0x7d,0xcc,0xd6,0x2d,0x4b,0x8a,0x55,0x20,0xce,0x5f,0xf8,0x2c,0xfe,0x0c,0xf0,0x8d,0xcb,0xbc,0x19,0x10,0x76,0x41,0x24,0xe1,0xb1,0x4e,0xb2,0x40,0x1f,0x16,0xd2,0x7c,0x27,0x63,0x81,0x3e,0xa8,0xb9,0x3e,0x87,0xa3,0x79 }, { 0xe0,0x9a,0x40,0x24,0xc6,0x07,0x9f,0x8e,0xc5,0xe1,0x6c,0xe4,0xce,0x4f,0x26,0x0c,0x67,0xa3,0xd3,0x93,0xc6,0xb3,0xd3,0xa8,0x88,0x42,0xca,0x8c,0x98,0x88,0xfe,0x0a,0xd9,0xc1,0x3f,0x57,0xad,0xf5,0x94,0x45,0x05,0x13,0x07,0xbe,0x98,0x0c,0x24,0x02,0x27,0xe3,0x0a,0xca,0x41,0x45,0x0d,0xa9,0x00,0xa7,0xe1,0x0b,0x24,0xc0,0xfb,0x73 }, { 0xca,0x68,0x53,0xb8,0xbf,0x7f,0x43,0x7b,0x5c,0x88,0xbd,0x20,0x2b,0x23,0x5f,0x76,0xe7,0x2e,0xa1,0x27,0x05,0x53,0x28,0x43,0x45,0xb6,0x23,0x63,0xad,0x50,0x75,0x9c,0xbb,0x06,0x39,0x33,0xca,0x06,0xcd,0xb9,0xe7,0xd8,0xaf,0xb8,0xeb,0x19,0x47,0xb4,0x97,0xbb,0x8e,0xe4,0x2a,0xcf,0xb5,0xea,0xdb,0x45,0xbe,0xbe,0xc1,0x70,0x05,0x6b }, { 0x0d,0x5f,0x00,0x0d,0x6e,0x95,0x12,0xf1,0x80,0x1d,0x36,0xaf,0x94,0xee,0x98,0x9d,0x57,0x3a,0x56,0x06,0x08,0x5a,0xaf,0x91,0xb4,0xd2,0x8c,0x75,0x6f,0xc2,0xe1,0x40,0x23,0x30,0xd3,0xe0,0x5e,0xe8,0x22,0xa7,0x7d,0x1f,0x94,0xd1,0x3f,0xcf,0x9f,0x46,0x53,0x5c,0xad,0x83,0x7c,0x2b,0xb7,0x91,0x64,0x1d,0x0e,0x29,0x6d,0xf1,0x0c,0x5a }, { 0x4b,0x84,0xc8,0x0b,0x11,0xb4,0x65,0x8e,0x80,0xc0,0xfc,0x16,0x22,0x5a,0xf4,0x55,0x55,0xeb,0x14,0xf5,0xd7,0x32,0xd9,0xa8,0xe0,0x39,0x46,0xea,0x4d,0x91,0x15,0xbf,0xfd,0x2f,0x6b,0xe1,0x22,0xc8,0x6c,0xe5,0x15,0xe1,0x50,0xd9,0x92,0xd5,0x91,0x77,0xef,0xdf,0xad,0x8d,0xa6,0x29,0xb1,0xa8,0x31,0x9d,0x42,0x71,0x8b,0x7c,0x13,0xae }, { 0x9c,0x36,0xa4,0xc1,0x4d,0xce,0x6a,0xb0,0x49,0xcd,0x31,0x29,0xc2,0x88,0x87,0xd5,0xbd,0x7a,0x14,0x69,0x69,0x16,0x09,0x06,0x6d,0xe6,0x96,0xd3,0x5c,0x1c,0xf7,0xcd,0x8d,0x45,0x9f,0x28,0x57,0x2a,0x39,0xe6,0xc2,0x4c,0xbf,0x9f,0x15,0xb8,0x96,0xdf,0x39,0xed,0xe6,0xd5,0x74,0x54,0x61,0x8d,0xd7,0x2e,0xdb,0x67,0x36,0xfd,0x03,0x4b }, { 0xce,0x1a,0x85,0x25,0xe3,0x53,0x92,0x97,0xfb,0x2e,0x7d,0xcd,0xf9,0xab,0x94,0x83,0x60,0xb2,0xe2,0xa7,0xc9,0x39,0xaf,0xdf,0xf8,0x44,0xef,0xbc,0xce,0x53,0x3c,0x0e,0x50,0x41,0x7f,0xbe,0xa2,0xe9,0x1a,0xc2,0x99,0x1a,0xd6,0x56,0xc5,0xaf,0xe7,0x6b,0x55,0xb0,0x7f,0x66,0x15,0x00,0x05,0x8b,0x67,0x50,0xc1,0xcf,0xff,0x5f,0x4f,0x71 }, { 0xe6,0xed,0xa8,0x19,0xfd,0x0d,0xcf,0x76,0x8c,0x5f,0x57,0x16,0x18,0x28,0x0e,0x95,0x65,0x22,0xa7,0x38,0x32,0x81,0xee,0x48,0x7c,0xa5,0x1a,0xc6,0x69,0x2b,0x81,0x49,0x01,0x6d,0xcb,0xff,0x92,0x04,0x0b,0x5a,0xbc,0x72,0xa4,0x48,0x70,0x02,0xc2,0xd6,0x14,0x17,0x94,0x96,0xcc,0xd0,0x2a,0xad,0xf2,0x6f,0xd2,0x3a,0x8e,0x1f,0xf1,0x6d }, { 0x6f,0x03,0x86,0xd9,0x30,0xe3,0xad,0x67,0xe0,0x9e,0x76,0xe0,0x45,0xc2,0x84,0x26,0x6d,0x8d,0x7a,0xd3,0x74,0x92,0xc6,0x57,0x90,0x81,0x68,0x2c,0x58,0xdb,0x4b,0xf3,0x52,0xca,0x07,0xd0,0xae,0xe9,0x92,0x1f,0x5f,0x1b,0xe0,0x94,0x33,0xc4,0x5f,0x38,0xb6,0xec,0xa2,0x10,0x99,0x38,0xa6,0x3e,0xdf,0xd5,0x4f,0x96,0xfe,0xcd,0x34,0xa8 }, { 0x88,0x83,0xc9,0x8e,0x7f,0x50,0xda,0xef,0x97,0xed,0x52,0x26,0xc6,0x8a,0x08,0x76,0x2f,0x4b,0x2e,0x59,0xcc,0x61,0xdd,0x2a,0xfa,0x68,0x50,0x56,0xb4,0x40,0xb4,0x8c,0x8a,0x6e,0x7a,0xce,0x2b,0xdc,0x88,0xac,0x04,0xfd,0x7e,0xbf,0x1b,0xd4,0xe3,0x78,0x3a,0x96,0x37,0xfc,0x1e,0x11,0xd4,0x95,0xb6,0x2f,0xd7,0x64,0xb8,0xc0,0xe8,0x41 }, { 0xa5,0x28,0xa0,0x17,0xdd,0x90,0xeb,0x51,0xbf,0xff,0x84,0xd7,0x67,0xc4,0x2c,0xbc,0x57,0x5c,0x1f,0x2f,0x24,0xfe,0x18,0x22,0x1e,0xc7,0x1f,0x84,0x8c,0x4b,0x5d,0xb2,0x35,0x5c,0x2b,0x0d,0xb4,0x94,0x5b,0x59,0x6f,0x7b,0x3e,0x7e,0xb6,0xbd,0x29,0x07,0x43,0xf0,0x10,0x19,0x5b,0x23,0x29,0x38,0x39,0x41,0x9d,0xb5,0x6d,0xd7,0x1e,0xd4 }, { 0xc1,0xea,0x3b,0x1a,0xed,0x9c,0x0c,0x13,0xeb,0x56,0x3a,0x73,0x42,0x0f,0xab,0xba,0x14,0x72,0x0c,0xcb,0xf2,0xf3,0xfa,0xca,0x8c,0xd9,0xcb,0xd9,0x76,0x99,0x63,0x52,0xa1,0x05,0x70,0x7f,0xd3,0x11,0x5e,0x9e,0x29,0x72,0x39,0x60,0x2c,0x6f,0xa3,0x0d,0xdd,0x28,0xd0,0xcc,0x6e,0xc5,0x3a,0x9d,0x6d,0x2d,0x3e,0x28,0xd6,0x3d,0xcd,0xad }, { 0xc2,0x42,0x21,0x44,0xda,0x11,0x0e,0x0a,0x08,0x0b,0xcb,0xfd,0xd6,0x94,0x27,0xe0,0x7b,0xcf,0x53,0xb5,0x74,0x52,0x59,0x8e,0x97,0xf1,0xec,0x54,0x68,0x8a,0x7c,0xd9,0x31,0x18,0x12,0x27,0x51,0x2d,0x13,0x74,0x61,0xd5,0xc2,0x97,0xd3,0xd3,0xf4,0xef,0x83,0x44,0x70,0x7a,0xce,0x7b,0xa8,0x09,0x6c,0xb6,0xcb,0x40,0x1f,0xe0,0xda,0xd9 }, { 0x04,0x51,0x5e,0x1c,0xe3,0x67,0xf1,0x9b,0xcd,0xa1,0xee,0xe4,0x5f,0xd5,0x74,0x2c,0x36,0xef,0x51,0xee,0xbc,0x31,0xde,0x5d,0x7a,0x62,0xaa,0x12,0x04,0xc0,0xf1,0x8c,0xb8,0x1c,0xb0,0xc9,0x1e,0xcf,0xb5,0xf2,0xce,0x80,0xeb,0xc3,0x8e,0x58,0x43,0x61,0x13,0x63,0x63,0x97,0x9c,0x0b,0x9f,0xee,0x26,0xa6,0x0a,0x6d,0x23,0xe1,0x72,0xb1 }, { 0xea,0xe4,0x2e,0x38,0xcb,0xbd,0x15,0xed,0xd0,0x70,0xea,0x75,0xf0,0x81,0x39,0x14,0x35,0x90,0x75,0x33,0xbd,0x67,0x16,0x5a,0x06,0xc6,0x08,0xa5,0x9c,0xc8,0xf0,0xfe,0x13,0x2f,0xd9,0x48,0xea,0x63,0x7d,0x9c,0x5e,0x3a,0x3a,0x47,0x63,0x23,0xf2,0xa8,0xf1,0xfe,0x72,0xbf,0x79,0xe0,0x4f,0x07,0xb4,0x88,0xb3,0x6e,0xf6,0x82,0x6a,0x69 }, { 0x46,0x91,0xc6,0x0d,0xbf,0x4c,0x8c,0x52,0x8f,0x92,0x24,0x1f,0x49,0x5a,0xea,0x76,0xb8,0x1a,0x51,0xc6,0xf8,0x81,0xa6,0xcd,0x86,0x8b,0x8d,0xc0,0xca,0x07,0xd5,0xbf,0xa6,0xc1,0xfe,0x4a,0x34,0xf9,0x14,0xb7,0x3d,0x1a,0x63,0xb8,0x96,0x34,0xbe,0x1c,0x41,0xb0,0x12,0xa3,0x0a,0xfc,0xae,0x34,0x70,0xfe,0x42,0xda,0x03,0x95,0x5f,0xde }, { 0x5a,0x4d,0xae,0x91,0xde,0xf7,0x5e,0xff,0xc4,0x4c,0x1e,0x9d,0xfa,0x64,0xde,0xc4,0x60,0x68,0x4d,0xb1,0xef,0x77,0x36,0xc2,0x4d,0x9c,0xe7,0x24,0x05,0xf2,0x9c,0x6c,0x87,0x96,0x42,0x6f,0x5f,0x91,0xb9,0x9f,0x6d,0x07,0x26,0xcb,0xa7,0x9b,0xe2,0xfe,0x76,0x76,0xfe,0x61,0xce,0x05,0x61,0xc5,0xaf,0xf5,0x1c,0x23,0xcd,0x8a,0x7f,0xee }, { 0x24,0x80,0xf2,0x52,0xee,0xc6,0x8c,0x4c,0xb6,0x22,0xc8,0x9c,0x69,0xb2,0x66,0x8a,0xc8,0x12,0xa0,0x24,0xb2,0x50,0x06,0xb5,0xf8,0x0e,0xca,0xc1,0xc6,0x80,0xa4,0x04,0xcd,0xd5,0x93,0xf0,0x69,0xba,0x40,0x08,0xb1,0x24,0x3b,0x28,0x6a,0x7f,0x8b,0x53,0x1b,0xa1,0xfb,0x64,0x37,0x98,0xb7,0x5a,0x83,0xd4,0x47,0xd1,0xdb,0x80,0xcf,0xd8 }, { 0x48,0xac,0xee,0xe5,0x62,0xb8,0xe2,0x2b,0x47,0xf3,0xb5,0x65,0x7b,0xf2,0x98,0x6e,0x16,0xbc,0xfd,0xb4,0x4a,0x14,0xa1,0x28,0xd1,0xda,0xe9,0x5c,0xa5,0xaf,0x78,0x73,0x0f,0x85,0xcf,0xd1,0x10,0x08,0x19,0x01,0xcd,0x7b,0xbf,0x72,0x20,0xf5,0x2d,0x4a,0x5c,0x9c,0x78,0xc0,0xed,0xcb,0x47,0x75,0x78,0x38,0x98,0x14,0xb1,0x4a,0x11,0xb6 }, { 0x47,0xf8,0x81,0xec,0x46,0x7b,0x59,0x40,0xcd,0x3c,0x91,0xc4,0x4f,0x28,0x1e,0x8d,0xca,0x68,0x35,0x69,0xbd,0xc3,0x0e,0x6f,0x74,0xb5,0x9d,0x52,0x5a,0x48,0xaa,0xc1,0xd5,0x86,0xc3,0x0e,0x70,0xd9,0xe0,0x90,0x95,0xdb,0xec,0xcf,0xc7,0xa7,0x68,0x34,0x27,0xd3,0xb4,0x5b,0xf9,0xe8,0x4e,0x91,0x3a,0x11,0x4a,0x30,0x03,0x7e,0x88,0xc0 }, { 0x1b,0xfe,0x19,0x05,0xca,0x17,0xf7,0x67,0x2d,0x76,0x91,0xca,0x42,0x04,0x26,0x2b,0x28,0xe0,0x3d,0x98,0xa6,0x18,0x9b,0x4a,0x23,0x2e,0xc1,0xa2,0x9e,0xe4,0x33,0x25,0x37,0xa3,0xde,0x25,0x16,0xb1,0x8c,0x07,0xcc,0x6c,0x1e,0xb3,0xc7,0x05,0x37,0x78,0x41,0xa6,0x05,0x84,0xd5,0x4c,0xab,0x9c,0xc4,0x2b,0x2a,0x95,0xa8,0x39,0x97,0x82 }, { 0x28,0xb7,0x3a,0x08,0xd4,0x1c,0x1d,0x3a,0x97,0x00,0x20,0xa0,0x06,0x45,0x88,0xa0,0x07,0x68,0x57,0x2b,0xc8,0xbb,0x0a,0x58,0x35,0x89,0x37,0xf1,0x3a,0x8b,0xb5,0x13,0x0d,0x7c,0xfb,0x3e,0x2e,0x2c,0x5d,0x21,0x19,0xb0,0x09,0xab,0x6c,0xcb,0x34,0x5f,0x0d,0x6d,0x54,0x07,0x8d,0x5c,0xb2,0xbf,0x88,0x61,0x8b,0xbb,0x6e,0xa4,0xce,0xe9 }, { 0x31,0xea,0x59,0xab,0xe3,0xcd,0xea,0x0a,0xf4,0x87,0xd5,0x2e,0x25,0xe7,0x3c,0x5e,0xe6,0xca,0x85,0xe4,0x35,0x00,0x77,0xec,0x0e,0xa2,0x67,0x4c,0x7a,0xab,0x20,0x82,0x32,0xde,0x4c,0xb1,0xc2,0x10,0xdc,0xd7,0xcc,0x92,0x31,0xc9,0x81,0x4f,0x7d,0x77,0x95,0xa0,0x28,0x00,0x85,0xce,0x17,0x34,0x24,0xee,0x19,0xb3,0x62,0xca,0xde,0x98 }, { 0xee,0x82,0x8a,0xfc,0x24,0xa1,0xc7,0x59,0x8b,0x7b,0x19,0x76,0x01,0xe2,0x05,0x83,0xf2,0x04,0x21,0x33,0x15,0xf9,0xe8,0x2e,0x42,0x38,0xad,0xa0,0xf6,0x7f,0x64,0xa3,0x05,0x60,0x46,0x70,0x61,0x74,0x36,0xfb,0x37,0x5e,0xd9,0x3a,0xa1,0xa0,0x22,0xd1,0x8c,0x56,0x26,0x8f,0x43,0x1f,0xfb,0xc0,0xdc,0x2d,0xfd,0x9a,0x87,0xac,0xeb,0x88 }, { 0xad,0x69,0xbc,0xd3,0xd5,0x9d,0x6a,0xc0,0x82,0x34,0x2b,0xc6,0x01,0x93,0xf6,0x00,0x38,0x9a,0x79,0x83,0x38,0xbc,0x0a,0x23,0x7a,0xea,0xc7,0x26,0x15,0x96,0x94,0x58,0xdc,0x0c,0x42,0x08,0x29,0x45,0xf6,0x82,0x1e,0x42,0xad,0x29,0xaa,0x83,0x21,0xd1,0x3a,0xf2,0x92,0x9a,0x18,0x45,0x0f,0x04,0xc1,0x07,0x23,0xbb,0x8a,0x00,0x5f,0x56 }, { 0x97,0x32,0xcf,0xac,0x72,0xfa,0x88,0xec,0x8c,0x83,0x3e,0x73,0x97,0x82,0xdb,0x33,0x8f,0x59,0x10,0x1e,0xfb,0xca,0x7a,0x50,0xb2,0x61,0x65,0xd3,0x62,0x30,0xec,0x68,0xd2,0x95,0xb6,0x84,0xc4,0x7d,0x33,0x10,0xe5,0x16,0xb4,0xc6,0x43,0x7e,0x02,0x7c,0x27,0x97,0x49,0xf5,0xc1,0x17,0xbb,0x5a,0x8b,0x89,0xa9,0x5e,0xe9,0x3f,0xe5,0x04 }, { 0x67,0xd7,0xb3,0x92,0x99,0xcd,0x5b,0x77,0xc4,0x77,0xac,0xec,0x10,0x11,0x24,0x7e,0x94,0x4c,0x49,0xd7,0x59,0xd2,0x6d,0x33,0x9b,0x79,0xc2,0x95,0x27,0xb7,0xe0,0xdb,0x83,0xd4,0x34,0x61,0x95,0x35,0x42,0xdc,0x48,0xff,0xc9,0x3b,0xaa,0x46,0x77,0xc0,0x8a,0xa6,0xe7,0x92,0x51,0x37,0x81,0xd8,0x0f,0xd4,0x21,0x58,0x87,0xf6,0xa6,0x41 }, { 0x02,0x4b,0x92,0x97,0xdf,0xcb,0xf4,0x52,0x62,0x15,0x58,0xbc,0xbe,0x7b,0xc0,0xae,0x2e,0xfc,0x0f,0x87,0x38,0xa3,0xae,0x86,0x4e,0x82,0xee,0xf7,0xe1,0x72,0x6b,0xf7,0xd6,0xbf,0x66,0x6b,0xbc,0x0f,0x34,0x45,0x2f,0x5d,0x45,0x9b,0xa7,0xc4,0xdd,0x23,0x48,0x7b,0xdb,0xa4,0xef,0x53,0x35,0x4f,0xaa,0x6a,0x3d,0x68,0xcc,0x24,0x6c,0x84 }, { 0xb1,0xf9,0xfb,0xea,0x48,0x66,0x7e,0x6e,0x3c,0xa3,0x50,0x18,0x9c,0xf7,0xf8,0x00,0xd6,0x42,0x72,0x45,0xec,0x42,0x63,0xc8,0xe6,0xcc,0xe3,0x94,0x32,0x39,0xac,0x3e,0x7b,0xc6,0xe9,0xa5,0x17,0x05,0x82,0x2b,0xac,0xa7,0xb2,0x2c,0x84,0xb9,0x72,0x06,0x1c,0x5c,0x49,0x99,0x31,0x7a,0xa4,0x9d,0x5d,0xe9,0x02,0xb3,0xdf,0xfc,0xa6,0xa3 }, { 0x4b,0x12,0x1f,0xc2,0xd9,0xc3,0x9a,0x49,0xaf,0x42,0x20,0xa3,0xca,0xfd,0x97,0x8b,0x9d,0x07,0x33,0x0c,0x88,0x88,0x73,0xff,0x30,0xf6,0x87,0x88,0xc0,0x2f,0xb4,0x33,0xbf,0x34,0x77,0xf6,0xf5,0x02,0x20,0xb3,0x7a,0x4d,0x10,0x80,0x1f,0x72,0x56,0xf1,0xfc,0x73,0x6f,0x1c,0x9c,0x82,0xb0,0xa5,0x49,0x77,0xec,0x5b,0x29,0x85,0xb0,0x65 }, { 0x75,0x8a,0x25,0x2c,0x47,0xe2,0xae,0xd1,0x1f,0x94,0xc3,0x9c,0x24,0xe7,0x3d,0x10,0x5f,0x60,0x84,0x80,0xa5,0x52,0x57,0xa3,0x30,0xf3,0x0f,0x5f,0xd2,0xf7,0x92,0xc1,0x00,0x70,0x15,0xf8,0x79,0x67,0x1a,0xa5,0xc3,0x61,0x30,0xc7,0x33,0xd2,0xb3,0x97,0x70,0x48,0x2a,0x2b,0x53,0xdd,0x4b,0x77,0xb0,0x6e,0xbb,0x6e,0xf8,0x46,0xc6,0xda }, { 0xcb,0xf5,0x9e,0x6c,0x41,0x62,0x05,0x21,0x19,0xb7,0xc8,0xbd,0x0a,0x51,0x09,0x92,0x49,0x91,0x59,0xd2,0x33,0xd4,0xbe,0x8a,0xec,0x5f,0x08,0x38,0x9a,0xf1,0x5d,0x93,0xff,0xf5,0xb9,0x19,0xe5,0xd1,0xd6,0xb0,0xeb,0x67,0x15,0x91,0x44,0x55,0x97,0xa1,0x66,0x64,0x98,0x1b,0x99,0x83,0x3f,0x05,0xbf,0xd8,0xd1,0x82,0xcb,0x47,0x8d,0x65 }, { 0x0c,0x0b,0x71,0xc3,0xfa,0xe8,0xba,0xda,0x0a,0xe8,0x97,0xcb,0xbc,0xa2,0x75,0xa7,0x85,0xa5,0x09,0xc5,0x87,0x87,0xe0,0xc7,0x31,0xe8,0x39,0x52,0xc3,0x1b,0xc5,0xf3,0x6e,0x5f,0xbe,0xdc,0x01,0x14,0x0b,0x38,0x10,0x8c,0x25,0xf0,0xa4,0x5b,0x0c,0x59,0x30,0x18,0xd7,0x0c,0x30,0xb3,0xdd,0x1c,0x7a,0xb8,0xbb,0xcf,0x38,0xfe,0x2e,0x52 }, { 0x09,0x39,0x57,0x3b,0x1f,0xd4,0x17,0xb7,0xb0,0x19,0xda,0x73,0xe5,0xb4,0x01,0x01,0x6c,0x24,0xcc,0x2e,0x40,0x41,0xd1,0xfa,0x81,0x3f,0xe2,0x8f,0xd1,0x3b,0x3b,0xf9,0x90,0xc5,0xae,0xef,0x35,0x3d,0x3b,0x25,0x9a,0xea,0x21,0x04,0x9a,0x5b,0x27,0xdb,0x18,0x1d,0xb8,0xe5,0x2b,0xa3,0xfd,0x9b,0x9a,0x02,0xa7,0x71,0xe8,0xb7,0x51,0x9d }, { 0xad,0x4a,0xfa,0xc5,0xa9,0x74,0x31,0xb4,0xf7,0xf9,0xd8,0x33,0x31,0xf7,0x78,0x39,0x69,0x5d,0xde,0xae,0x45,0x1e,0xd8,0x5a,0x66,0xcd,0x91,0xb6,0xca,0x41,0x48,0x97,0xf6,0xe2,0x2e,0xa2,0x16,0x1b,0x42,0xdd,0xae,0x08,0xfa,0x10,0x47,0x44,0x23,0xb7,0x86,0xa5,0xad,0x35,0xab,0x61,0xfa,0xc1,0x41,0x64,0x90,0xa2,0x05,0xf0,0xba,0x3c }, { 0x58,0x0c,0x1a,0x3b,0x6b,0xab,0x70,0x87,0x5a,0xb6,0x79,0x6f,0x29,0x1a,0x89,0xdd,0x33,0x10,0xa0,0xfe,0x36,0x4f,0xd5,0x90,0x0e,0xef,0x63,0x5e,0xe1,0xae,0xd1,0xfc,0xe2,0xd1,0x90,0x0e,0x36,0x0b,0x7a,0xf8,0xe5,0x39,0x0d,0xe2,0x6a,0xda,0x8d,0xd6,0x56,0xdc,0xb5,0x59,0x2d,0xcc,0x18,0xff,0x14,0x55,0xd5,0xe6,0x85,0xf4,0x1c,0xba }, { 0x2d,0x06,0xc1,0x3c,0x51,0xb5,0xcf,0x31,0x82,0xe8,0x65,0xe2,0x29,0x66,0x37,0x55,0xd3,0x4e,0x48,0x61,0x2e,0x28,0xa7,0x02,0xc4,0xfd,0x9f,0x3b,0x05,0x52,0xe1,0xe7,0x08,0xc7,0x0c,0x01,0xd7,0x49,0x74,0x4a,0x29,0xa7,0x26,0x9d,0xf0,0xfa,0x8e,0xf1,0x48,0x06,0x04,0xce,0x7f,0xbc,0x52,0x1d,0xa7,0xcd,0x8f,0x71,0x29,0xe8,0x73,0x8b }, { 0xed,0xc9,0x9e,0x7c,0xfc,0x09,0xf9,0x2e,0x80,0x27,0x66,0xcd,0x72,0xc9,0x16,0x5a,0xb7,0xa5,0x04,0x44,0x99,0x69,0x6d,0xb2,0x80,0x61,0xc2,0x82,0xfe,0x31,0xca,0x80,0x17,0x26,0x90,0x1b,0xd7,0x20,0x43,0x78,0xef,0x31,0x40,0xa6,0x2f,0x22,0x92,0xf2,0x20,0x23,0x59,0xe9,0xc4,0x87,0xeb,0x10,0xfd,0xf1,0xd6,0xa8,0x47,0xe6,0x93,0x54 }, { 0x8a,0x33,0xd4,0xe5,0xa7,0x1e,0xb1,0x40,0xaa,0x48,0x73,0x60,0x18,0xcb,0x7a,0x3f,0x16,0xa3,0xa6,0x60,0x25,0xb0,0xc5,0xa7,0x44,0x8b,0x05,0x5b,0xa9,0x29,0x08,0x89,0x77,0x4d,0xe2,0x90,0x34,0xf9,0x50,0xaa,0xe9,0xd8,0x9e,0x7f,0xda,0xec,0xc7,0x23,0x0b,0x99,0xbd,0x95,0x8c,0x7b,0xcf,0x2a,0x71,0x93,0x69,0xbe,0x75,0x62,0xb0,0x1c }, { 0x3c,0x3a,0x33,0x62,0xfa,0x4d,0x09,0xe7,0x59,0x73,0xef,0x3c,0xe9,0x2c,0x94,0xd5,0x4f,0x1f,0xa3,0xd2,0x93,0xd4,0xc2,0x67,0x85,0xac,0xd5,0xf1,0xbc,0x4d,0x60,0x3b,0x60,0x56,0xc4,0x83,0x91,0xea,0x8a,0xc5,0xac,0x40,0x5b,0x53,0xf5,0xdd,0xc5,0x8e,0xfb,0x05,0xc5,0x98,0xfd,0x9a,0xac,0x67,0xdd,0xea,0xc8,0xb6,0xe9,0x1e,0x25,0xed }, { 0x68,0x0d,0x8e,0x46,0x34,0x80,0x16,0x43,0xd1,0xa7,0x0e,0x5a,0x4e,0xfc,0xed,0x69,0xdb,0xa5,0x17,0x49,0x07,0x3e,0x37,0x7e,0xf6,0x05,0x1c,0x82,0x83,0x6c,0xc6,0x4f,0x15,0x71,0xcd,0x07,0xd5,0x6a,0xa6,0xe5,0x55,0xc5,0x85,0x92,0x6d,0x87,0x81,0xfe,0xc5,0x26,0xe2,0x5b,0x6e,0x78,0x60,0xd8,0xb9,0x98,0xe6,0xa5,0x48,0x14,0xda,0xc4 }, { 0xd1,0xf8,0x2d,0x51,0x8d,0x0d,0x2b,0x3a,0xe7,0xba,0xd3,0x45,0xad,0xb2,0xd7,0x37,0xbf,0x02,0xd4,0xde,0xcb,0x21,0x0a,0x88,0x6d,0x3d,0xe8,0xc0,0x2a,0x4c,0x70,0x66,0xce,0x01,0x43,0x50,0xfe,0x0c,0x62,0x69,0xaa,0x63,0xc5,0xbd,0xae,0xaa,0x4a,0x4b,0x95,0x0b,0x32,0xb4,0x59,0x8e,0x3b,0x83,0xf0,0xe9,0x6d,0x99,0x01,0xa0,0x17,0x31 }, { 0xc1,0x5e,0xed,0x3c,0x46,0xf0,0xd0,0xed,0xa5,0x0c,0x76,0x34,0xe8,0x22,0x42,0xdf,0x8d,0xe8,0xcb,0x20,0xb3,0x5e,0xbf,0xc2,0x93,0x12,0xad,0x30,0x5a,0xfe,0xbd,0x17,0x97,0x50,0xb4,0x59,0x47,0x63,0x50,0x1b,0x7e,0xed,0x9d,0x52,0x51,0x6b,0x76,0xee,0x1f,0xb9,0xca,0xfb,0xe3,0x0b,0x49,0x0c,0x01,0x55,0xab,0x18,0x3b,0xf4,0x13,0xe6 }, { 0x33,0x5a,0x32,0xbf,0x13,0xe5,0x7e,0x26,0x1b,0xb7,0x48,0x4b,0x5b,0x38,0x1d,0x14,0xe9,0x64,0x31,0x14,0x4f,0x97,0x26,0x44,0xd8,0xf6,0x6c,0x3f,0xdf,0xf0,0x7c,0xfd,0xe2,0x1e,0x19,0x4a,0x39,0xd4,0x28,0x44,0x36,0x50,0xda,0x47,0x5b,0xb2,0xe5,0x9c,0x5e,0x98,0xdd,0x7e,0x19,0x8a,0x86,0x4e,0x71,0x61,0x6f,0x2b,0x7f,0xf9,0x58,0x01 }, { 0x1b,0xca,0x77,0x05,0x1d,0x33,0x14,0xfb,0xca,0xd5,0x75,0xf2,0x4c,0x2f,0x62,0x34,0x8a,0x66,0x86,0x93,0x55,0x78,0xae,0xdb,0x3f,0x56,0x78,0xbb,0x85,0x01,0x51,0xff,0xe9,0xa5,0x6e,0x09,0x46,0xaf,0x9b,0x83,0x68,0x4a,0x0c,0x70,0xdc,0xe3,0x5d,0x16,0x67,0xab,0x23,0x33,0x0c,0x4d,0x8a,0xdd,0x09,0xc5,0x29,0xd3,0x7e,0xdc,0xa3,0x97 }, { 0xa8,0x65,0x5e,0x7c,0x47,0xe7,0x5a,0x44,0x81,0x7d,0x3c,0x34,0x0f,0xb5,0xe3,0xbb,0x0a,0xb8,0x3a,0xed,0x39,0xcc,0x22,0x41,0x81,0x51,0xf7,0x53,0xe5,0x8f,0x5b,0xca,0xf3,0xa8,0x9d,0x1b,0xbf,0x46,0xc5,0xa2,0x2a,0xd5,0x61,0xe7,0x64,0x26,0x5e,0x77,0xd1,0x84,0x15,0xb2,0xeb,0xa1,0x37,0x8c,0xd6,0x96,0xee,0x81,0xb0,0xe2,0x5d,0x23 }, { 0x98,0x87,0xf5,0x35,0xb1,0x32,0x03,0x15,0x9f,0xad,0x4a,0xf8,0xe0,0x7f,0x1c,0x9b,0x69,0x16,0x24,0x84,0xac,0x31,0x2e,0x3d,0x3c,0x92,0x20,0xc8,0x0c,0xec,0x58,0x0e,0x01,0xab,0x0d,0xb8,0xf0,0x71,0x40,0xdb,0x25,0x92,0x37,0x74,0x8e,0x23,0x1d,0x19,0xbe,0x62,0xaa,0x52,0x20,0xeb,0x74,0xb8,0x60,0x27,0xf4,0x49,0x36,0x1d,0xf8,0xfd }, { 0xf4,0xc3,0x31,0x32,0xe6,0x82,0xa2,0x8f,0x61,0x06,0x0b,0x66,0x4b,0xff,0xbc,0x19,0x7b,0x47,0xde,0x5d,0x07,0x19,0xdb,0x24,0x79,0xa0,0x28,0xe9,0xa9,0xe0,0x67,0xf9,0xcc,0xdc,0xec,0xf8,0xc6,0xee,0x8d,0x07,0x78,0x9f,0xcf,0x68,0xcf,0xf2,0xd9,0xcb,0xba,0x83,0x7f,0x68,0x6b,0x12,0x88,0x2f,0x67,0xb1,0x0c,0xbc,0xc7,0x55,0x83,0xbe }, { 0x5b,0xf1,0x75,0x1e,0x45,0x4e,0x2e,0x33,0x19,0xf6,0x44,0xaa,0x24,0x64,0xf9,0x62,0x2a,0xdb,0xfe,0xa8,0x50,0x64,0xd0,0x0e,0x7e,0x6b,0xa6,0x94,0xb3,0xb7,0x69,0x1c,0x3f,0x93,0x90,0x44,0xf9,0x40,0xb9,0x13,0xa3,0x76,0xb1,0x8d,0x2b,0x3c,0x7f,0xe3,0xf6,0x20,0x7a,0x70,0x6c,0x6d,0x0b,0x15,0xdd,0xf1,0x7f,0x6f,0x70,0xf9,0x65,0x39 }, { 0xe0,0xf2,0x51,0xdf,0x0f,0xc2,0xa1,0x09,0xd7,0x3e,0x36,0xea,0xfd,0x8d,0xc1,0xa7,0x2d,0xd0,0xe0,0xdf,0x8c,0xce,0xa3,0xc2,0x21,0x4a,0x92,0xc9,0x50,0x09,0xdf,0xfb,0xae,0xce,0xad,0x89,0x47,0x1f,0x38,0x40,0x1f,0x61,0x9f,0x9f,0xa5,0xad,0x80,0xb1,0xf3,0xc6,0x0f,0xef,0x0f,0xb8,0xc2,0xe2,0x33,0xe9,0x11,0x4e,0x49,0xab,0x4b,0x6f }, { 0xda,0xe8,0xad,0x60,0xaa,0x3a,0x7a,0xd1,0x26,0x69,0x59,0xae,0xc7,0xde,0x13,0x1f,0xbe,0x1e,0x6f,0x56,0x71,0x58,0xdb,0xa3,0x83,0x24,0x55,0xde,0xdf,0x8a,0xd0,0x08,0x89,0x1a,0x15,0x0d,0x96,0x58,0x4e,0x78,0xb6,0x25,0x7e,0x86,0x4b,0x3b,0x25,0x95,0xff,0xed,0x56,0x41,0x91,0x02,0x8b,0x93,0x53,0xc9,0xf0,0x7b,0xe1,0x15,0x76,0x31 }, { 0x9b,0x1e,0x9c,0x0e,0x9f,0x2a,0x9f,0x87,0x32,0x97,0x31,0x32,0xb1,0x89,0x41,0x13,0x9b,0x14,0x37,0xa9,0x30,0x64,0x65,0xcf,0x06,0xf3,0xbc,0xb6,0x73,0xb4,0xb5,0x93,0x36,0xf1,0x01,0x56,0x1a,0x01,0xe8,0x82,0x0e,0x71,0xfc,0x5a,0x1a,0xcc,0xf4,0x5d,0xc2,0xf0,0xd4,0x91,0x0c,0xa2,0xf1,0xd6,0xd5,0xdc,0x37,0xa0,0x7b,0x01,0x7c,0x1c }, { 0x3b,0x67,0x77,0x98,0x14,0x9e,0xea,0x56,0x5c,0x0d,0x80,0x03,0xa0,0x22,0xcb,0x71,0x13,0xfb,0x32,0x12,0xfa,0x87,0x1a,0x0f,0x9b,0xb2,0x05,0x65,0x19,0xb9,0x87,0x8e,0x3e,0xda,0x42,0x2f,0xce,0xbb,0xcd,0xa6,0xb4,0x6f,0x6d,0x6d,0x7d,0x14,0x4d,0x09,0xc6,0x27,0x06,0xc1,0x85,0x2d,0xf0,0x2b,0xbf,0xaf,0xa3,0xa1,0xfc,0x1a,0x30,0x14 }, { 0x90,0x7c,0x1c,0xaf,0x9f,0xb8,0x3a,0x5a,0x50,0x8c,0x89,0xe6,0xec,0x39,0xcc,0x70,0xb1,0xfa,0x7f,0x04,0xed,0xc4,0xd9,0x7e,0x19,0x40,0x78,0xc1,0xb5,0xe3,0x24,0x00,0x5c,0x97,0x46,0x78,0x43,0x8c,0xa8,0xa4,0xb5,0xcf,0x36,0x27,0x74,0xba,0x29,0xef,0xae,0xcd,0x79,0x88,0xfe,0x33,0x12,0x99,0xd2,0x5e,0x3f,0x18,0x6a,0xf5,0x8d,0x2c }, { 0xa3,0x3d,0xa9,0x24,0x5a,0xf0,0x9c,0xab,0x63,0x2b,0x10,0x85,0xa9,0xa2,0x59,0xfe,0x63,0x49,0x99,0xc0,0x4f,0x3d,0xf8,0xb1,0xd8,0xab,0x0e,0xc0,0x9c,0x73,0xcd,0x33,0xad,0xde,0x2c,0x11,0xc9,0x3c,0x70,0x6e,0xf0,0x8e,0x5e,0xec,0x36,0x45,0xa4,0x5c,0x30,0x2b,0x23,0xa7,0xaa,0x0e,0x2c,0x66,0x93,0xb1,0x7f,0xba,0x9a,0x77,0x5f,0x72 }, { 0x10,0xac,0x84,0xe9,0x6e,0x8e,0xf3,0x5b,0xc5,0x84,0xc7,0xb2,0xc4,0x43,0xe4,0xf7,0x43,0xda,0x5e,0xdc,0xbc,0xa0,0x56,0x69,0x86,0x8c,0xa6,0xc3,0xb5,0x4c,0xf3,0xf6,0xa8,0x98,0x80,0xd5,0x61,0x89,0xf2,0x36,0x77,0x24,0x4c,0xa2,0x0b,0x57,0x8e,0xee,0x47,0x95,0xd9,0x3b,0x33,0x0a,0x6d,0x2d,0x0a,0x4f,0xb9,0x2f,0x82,0xd3,0x70,0x74 }, { 0x7e,0xd3,0xfc,0x31,0xd1,0xa8,0xca,0x13,0x66,0xb4,0x6c,0x79,0xde,0xa4,0x2a,0xa6,0x05,0x83,0x14,0x10,0x93,0x9b,0x16,0x4f,0xcf,0xcd,0x80,0x6c,0xa1,0x1a,0x52,0xdc,0x76,0x58,0x45,0xf9,0xdb,0xda,0xe1,0xd0,0x24,0xc7,0xa8,0x0b,0xb4,0x1a,0x77,0x55,0xf0,0x1b,0xae,0xd7,0x93,0x52,0xf9,0x46,0x2f,0x87,0xb9,0x9a,0x6f,0xef,0xab,0xd1 }, { 0x59,0x05,0xe6,0x63,0x61,0xce,0xca,0x4f,0x72,0xe4,0xaa,0xed,0x33,0x26,0x4c,0xa0,0x24,0x20,0xa9,0xcf,0x9b,0x9e,0x42,0xe9,0x69,0xde,0x06,0xa0,0x26,0xc2,0xc9,0x67,0x43,0xcc,0x0a,0x17,0x00,0x2a,0x00,0x19,0xc2,0x62,0x40,0x55,0x7e,0xc2,0x3c,0x94,0xa0,0x93,0xfd,0xcd,0xef,0x9c,0x6e,0x82,0x87,0x29,0x05,0xc0,0xa4,0x0b,0x20,0xfd }, { 0x7f,0x98,0x32,0x85,0x1b,0x57,0xaa,0x84,0x7c,0x76,0xd3,0x13,0x4f,0xd4,0xb2,0xb3,0xf9,0x8f,0xd4,0xcd,0x06,0xa1,0x18,0xe4,0x64,0x68,0xb4,0x1f,0x69,0x83,0x9e,0x05,0xaf,0xf6,0xef,0x06,0x78,0xb3,0xbd,0xf9,0x3e,0x6d,0xa4,0x2d,0x87,0x79,0x53,0xea,0xab,0xb8,0x0e,0xe0,0xca,0x26,0x29,0xf1,0x27,0x15,0x0f,0x40,0xbb,0xcb,0x72,0xf6 }, { 0x77,0x4e,0x44,0x88,0x27,0x3e,0xd3,0x39,0x4c,0x24,0xa0,0x0f,0xce,0x70,0x85,0xcc,0x40,0x2f,0xb9,0x11,0x2d,0x94,0xc5,0x44,0xc9,0x18,0x1c,0x7e,0x37,0x17,0x9f,0xc1,0x2c,0x4d,0xa8,0xa6,0xa8,0xf0,0x28,0xd9,0x21,0x73,0x2e,0x2b,0xe2,0xf8,0x61,0x55,0xb7,0xa8,0xe2,0x81,0x8a,0xac,0x56,0x4c,0xa1,0x63,0x4e,0xf8,0x14,0x7c,0xcc,0x13 }, { 0xe7,0x61,0xdf,0x69,0x9b,0x4b,0xe9,0x1e,0x61,0x1b,0x55,0x32,0xcb,0x6f,0x31,0xa4,0xa7,0xbb,0xe0,0x61,0x7e,0xb2,0x8d,0x1a,0xe7,0x8d,0x65,0x5f,0x02,0xbe,0x67,0xae,0xe1,0x29,0x29,0xf8,0x71,0x1c,0x56,0x17,0xd7,0x45,0x71,0x5d,0x81,0xf4,0xc5,0x6b,0xef,0xd4,0x7b,0xd1,0x0d,0x55,0xaa,0x91,0x82,0x4a,0xae,0x77,0xbf,0xc7,0x39,0x17 }, { 0xfb,0xb6,0x93,0xb9,0xd9,0x10,0x48,0xe2,0xad,0xcd,0xf8,0x97,0x28,0x8f,0x7e,0xd0,0x11,0xd8,0x2c,0x8f,0x9e,0x82,0x7e,0xd5,0x47,0x52,0xc4,0x7c,0x78,0xe9,0xf9,0x97,0x3b,0xf3,0xe5,0xa1,0xe5,0xf2,0xd9,0x5e,0x6b,0xfa,0x5b,0x10,0x04,0xf1,0xf1,0x9a,0x3c,0xf1,0x43,0xd1,0xe8,0xc4,0xa8,0xfb,0xb8,0xa8,0x28,0x43,0x2c,0xcb,0xd3,0xbe }, { 0xa3,0x00,0xaa,0x04,0xf5,0xed,0x02,0x74,0x49,0xcc,0x98,0x67,0x26,0xdf,0x2b,0xf0,0x34,0x65,0xd5,0x98,0xe2,0xc7,0x8d,0x17,0x73,0xb8,0x85,0xbd,0x79,0x48,0x0d,0x2f,0xc5,0x5b,0x79,0x8e,0xd5,0xc4,0x19,0x23,0x4c,0x3a,0xdc,0xc7,0x08,0xf0,0x46,0x3b,0x74,0x78,0x2e,0xad,0x85,0xba,0x7b,0xda,0x53,0x89,0x91,0xd2,0x6b,0x31,0x75,0x2d }, { 0x0f,0x4a,0xfa,0xe2,0x83,0x4e,0x04,0xde,0xeb,0x01,0xfb,0x62,0xe8,0xdb,0x13,0x18,0xe7,0x35,0x44,0xed,0xec,0xff,0x72,0xa3,0x61,0x13,0x99,0xce,0xfb,0xf6,0x4b,0x9e,0x65,0x0f,0xe5,0x57,0xca,0xb2,0xcd,0xc8,0x61,0x61,0x1c,0x3b,0x83,0x09,0x9d,0x8d,0x44,0x33,0x7e,0xca,0xd6,0x24,0x9f,0x91,0xe7,0xb4,0xf2,0xf5,0x5e,0x5d,0xd8,0xc5 }, { 0x0f,0x8e,0xc0,0x2e,0xe6,0x05,0x70,0xf4,0xd0,0x63,0x9d,0x2b,0xce,0xde,0x0a,0x0a,0x13,0x9e,0xcc,0xed,0x68,0x2e,0xe7,0xaa,0xdf,0xfe,0xd3,0x38,0x60,0xf5,0x72,0x25,0x08,0x58,0x17,0x79,0x95,0xa5,0x95,0x91,0xff,0xf7,0x2f,0x65,0x34,0x16,0xfa,0x54,0xa2,0x2a,0xc9,0xee,0xf2,0x13,0xd3,0xe7,0xa3,0x05,0xc9,0x31,0x15,0x45,0xeb,0x4d }, { 0x26,0x21,0x45,0x3b,0xd0,0x6e,0xc8,0x5f,0xb5,0x54,0xbb,0x38,0x09,0x28,0x48,0x2d,0xf2,0xaf,0x6c,0x55,0x33,0xcf,0x1d,0x66,0x53,0xaf,0xf5,0xb0,0x1d,0x45,0xbe,0x2f,0x10,0xee,0x7e,0x1a,0x37,0xc3,0x7a,0x69,0x98,0x6f,0x98,0xd9,0x95,0xfa,0x7e,0x6d,0xdd,0xcc,0xda,0x08,0xc8,0xac,0xe9,0x5b,0x35,0x85,0xbf,0x05,0x22,0x35,0x80,0xa8 }, { 0x0e,0x99,0x92,0x33,0xc8,0xbd,0x93,0x39,0x65,0x02,0xfc,0xcb,0xf8,0x5e,0x26,0x1c,0x7f,0xf6,0xde,0x98,0xef,0xc8,0x39,0x3c,0x74,0x00,0xf3,0xdd,0x43,0x7c,0xbf,0x54,0xf7,0x96,0xc0,0x03,0xf5,0x93,0x0e,0x01,0x54,0x85,0xe6,0x52,0xef,0x79,0x39,0x38,0x4f,0xc3,0xbe,0xa4,0xeb,0x54,0x7c,0x6a,0x87,0x82,0x94,0x19,0x1f,0xda,0x83,0xdd }, { 0x84,0x11,0xd6,0x8c,0x4c,0x24,0xa2,0x09,0xbf,0x58,0x26,0x0a,0xcc,0x0b,0x4b,0xad,0x28,0xc2,0x98,0xa7,0x85,0x31,0xf5,0x5f,0x73,0x25,0xca,0xfe,0x71,0x51,0xe7,0xce,0x42,0x31,0x89,0xcd,0xee,0x41,0xb0,0x7c,0x60,0x36,0x53,0x6e,0xcb,0x77,0x4c,0x20,0x6e,0x8a,0x45,0x24,0x77,0x1a,0x12,0x5b,0xbd,0xac,0xa0,0xe1,0x9c,0xc4,0x74,0x3e }, { 0xf2,0x62,0x2a,0x7f,0xf5,0x49,0xfd,0x90,0x89,0x17,0xd2,0x08,0x21,0x55,0x2f,0x9b,0x4a,0xbe,0x77,0x66,0xfa,0x0f,0x46,0xee,0xd8,0x72,0xc6,0xe2,0x9f,0x53,0xcc,0x03,0xef,0x57,0xe2,0x34,0x18,0xa3,0x09,0xf4,0x7c,0xc8,0x45,0xdd,0x55,0xb6,0x05,0x12,0x39,0x74,0x20,0x7d,0xe9,0xa3,0x18,0xf8,0x6e,0xd6,0xc2,0x0c,0xed,0xb6,0x30,0x5f }, { 0x55,0x9f,0xc2,0x0f,0xa0,0x9f,0x8f,0x37,0x67,0xab,0x5c,0xb2,0x3e,0x98,0x95,0xa8,0xc7,0xba,0xf3,0xc3,0x23,0xaa,0xea,0xb2,0x10,0xf3,0x23,0xd7,0xbf,0x9c,0xbb,0x5c,0x8f,0x7b,0xa8,0x1e,0xb4,0xd0,0x96,0xad,0xf6,0x2d,0xf2,0x7d,0xa4,0xb9,0x67,0x2f,0x96,0xdc,0xee,0x26,0x83,0x68,0xbd,0x01,0x1e,0x86,0x08,0x8c,0x3b,0x80,0x0b,0x09 }, { 0xef,0x7a,0x4f,0xef,0x4c,0x9d,0xfe,0x51,0x0d,0x99,0x2d,0x52,0x85,0x60,0x02,0xcb,0xa1,0xc3,0x3f,0x8e,0x3d,0x25,0x24,0x77,0x0a,0x7c,0xfe,0x43,0x96,0x95,0xa3,0x1d,0xb9,0xc0,0x13,0x13,0xbb,0x7a,0x6b,0x5e,0xf2,0xf8,0x2b,0x97,0x5c,0xd1,0x86,0xdf,0x6a,0x38,0x86,0xbe,0x6f,0x29,0x24,0x93,0x27,0xfa,0xa9,0xd1,0xd3,0x67,0x62,0x19 }, { 0x4b,0x60,0x41,0xb8,0x08,0xea,0x3f,0x0b,0xda,0xb6,0xe5,0x24,0x20,0x96,0xcd,0x6a,0xc1,0x51,0x60,0x49,0x9f,0x49,0x09,0x95,0x85,0x26,0xe6,0x75,0x96,0x36,0xb3,0x4c,0x62,0x2a,0x86,0x93,0x5d,0x16,0x61,0x09,0x53,0x6d,0x8b,0x3c,0xc0,0x40,0xf6,0xe5,0x72,0x81,0x56,0x3b,0xde,0xab,0x77,0xd7,0x69,0xbb,0xbf,0xef,0x5b,0x76,0xb2,0xf0 }, { 0xe0,0x48,0x40,0xf7,0xa6,0x96,0x17,0x9f,0xcc,0xa5,0x5e,0xa7,0x93,0x38,0x00,0xb6,0xb5,0xd1,0x67,0xe0,0xf0,0xf8,0x1e,0xbd,0x81,0xb5,0xf5,0xaa,0xa5,0x32,0xe4,0x54,0xb1,0x0f,0x23,0xe8,0x44,0xe7,0x67,0x8d,0x75,0x2c,0x9b,0x26,0x51,0xdc,0x97,0x87,0xa2,0xb4,0x2f,0xad,0x6e,0x48,0x92,0x91,0xb9,0x97,0x7a,0x96,0x82,0x9a,0x6e,0x80 }, { 0xc0,0x0e,0xec,0x4f,0x0f,0x7d,0xc0,0xf2,0xde,0x70,0xad,0x09,0x01,0xdb,0xc3,0xe8,0x32,0x2b,0xf0,0x68,0xc7,0x13,0xce,0x14,0xfd,0x93,0xca,0x73,0x24,0x26,0x70,0x36,0x5c,0xa5,0x00,0x9c,0x9a,0xdf,0x49,0x47,0x8a,0x6b,0x2d,0x0d,0x10,0x49,0xc7,0x13,0x36,0x46,0x1c,0x41,0xa4,0x9a,0x7d,0xe1,0xc0,0x56,0xe3,0x05,0xb9,0x21,0xc8,0x5f }, { 0x98,0xa0,0xc4,0xed,0x0d,0x63,0x42,0xef,0x06,0x54,0x95,0x59,0x71,0xd2,0x30,0xfd,0x49,0x6e,0xde,0xcb,0xc4,0xbe,0xe2,0x26,0xda,0x96,0x9a,0x79,0x9a,0xc2,0xe8,0x7a,0x28,0x86,0x84,0xa8,0x20,0x92,0x72,0x73,0x63,0x8f,0xb4,0x6d,0x62,0x21,0xac,0xd9,0xf4,0x97,0x92,0xbd,0x6e,0x65,0x9b,0xb6,0x7b,0x28,0xfe,0x2b,0x75,0x9b,0xc0,0x1f }, { 0x4e,0x4c,0xe2,0xea,0x1b,0x8d,0x8c,0x2a,0x40,0x14,0x5c,0x56,0x6e,0xa4,0xb1,0x40,0xe0,0x59,0x2d,0x56,0x59,0x7a,0x27,0x65,0xbd,0xbe,0x06,0xcc,0x8f,0x20,0x59,0xa0,0xa3,0xb6,0x97,0x27,0x20,0xe3,0x11,0xd2,0x71,0xf5,0x24,0x9c,0x59,0x5b,0xf1,0x41,0xee,0x0e,0x76,0x2f,0xbd,0xf5,0xe2,0xee,0x20,0x1d,0xc4,0xe8,0xbd,0xce,0x12,0x31 }, { 0x07,0x7f,0x32,0x50,0xde,0x58,0xfa,0xb8,0x73,0xf9,0xf8,0x49,0x02,0xe5,0x6b,0x4d,0xdf,0x94,0xa1,0xf7,0x3f,0x9b,0x99,0x3f,0xf9,0x38,0x95,0x21,0x37,0x56,0x6e,0x1c,0xed,0x6d,0xd4,0xad,0xc5,0x68,0x07,0xe8,0xd2,0x94,0xdb,0x48,0x04,0x26,0xa6,0xa3,0x21,0xd7,0x4d,0x85,0x51,0x77,0x0e,0xea,0x2c,0x66,0x71,0x25,0xda,0xfa,0x4e,0xe0 }, { 0x2f,0xfc,0xa2,0x58,0x5a,0x6b,0x6b,0xfd,0xe6,0x12,0xbf,0x05,0x65,0x93,0xe3,0x0b,0x64,0x01,0x3b,0x8e,0x3f,0xb0,0xd8,0xbe,0xb7,0x75,0x6f,0xd4,0x42,0x2d,0x8c,0xe2,0x91,0xab,0x23,0x1d,0x32,0x71,0xf5,0x24,0xcd,0x27,0x22,0x7e,0x1b,0x24,0x86,0xf8,0x01,0x78,0x17,0x2d,0x8b,0x35,0xd8,0x85,0x57,0x78,0x1c,0x89,0xa1,0x20,0xee,0xba }, { 0x7e,0xac,0x8d,0x23,0x0c,0xaa,0x0a,0x2c,0x3d,0x72,0x35,0xb8,0x27,0x42,0x97,0x9a,0x4b,0xf0,0x14,0x74,0xc6,0x35,0x29,0x01,0x48,0x9f,0xfd,0xe0,0x0f,0xc7,0x1b,0x7c,0x6a,0x13,0xad,0xc1,0x17,0x7f,0xcc,0x9d,0x8d,0xd7,0x54,0xef,0x5e,0xd5,0xad,0x56,0x22,0xee,0x1b,0x24,0x42,0x37,0xed,0xb9,0x8f,0x40,0xe9,0x22,0x1a,0xff,0xb3,0xa9 }, { 0xa5,0xaa,0x39,0xf9,0x7d,0x3f,0x36,0xd5,0x85,0xd9,0x5f,0xdf,0x57,0xbb,0xec,0x18,0x45,0xad,0x26,0x5a,0x1d,0x49,0x87,0x98,0xd5,0xc5,0xa9,0x2e,0xb1,0x77,0x51,0xfe,0x5d,0x71,0x47,0xbc,0xcf,0x74,0xce,0x99,0x69,0x52,0xbc,0xf6,0x62,0xe8,0xaa,0xa8,0x0d,0x84,0x40,0xdb,0x3b,0xb6,0xc1,0x49,0x5f,0x92,0x5d,0xcd,0xd2,0x25,0x2a,0x9d }, { 0xb8,0x8d,0x10,0xaa,0x41,0x28,0x0f,0x63,0x01,0xf5,0xa0,0x31,0x55,0x82,0x73,0x03,0xe8,0xb3,0x7a,0xb5,0x84,0x3a,0x97,0xc7,0xe0,0x2c,0x6e,0xce,0x30,0x1b,0xcb,0xd2,0x06,0xbe,0xc2,0xde,0xa3,0xe4,0xbb,0x5e,0x18,0xac,0x4f,0xef,0xf3,0x58,0xe8,0x38,0x3c,0x02,0xe2,0xb5,0x99,0x26,0x63,0x07,0xfa,0xd2,0x49,0x32,0x5a,0xf5,0xd5,0x19 }, { 0x09,0x78,0x9e,0x74,0x63,0x1a,0xa8,0x92,0x1e,0xbe,0x96,0x41,0x7a,0x00,0xfb,0x58,0x87,0x04,0xbc,0x44,0xc5,0x6d,0xe6,0xed,0xc2,0xfc,0x91,0x8e,0xbf,0x20,0x70,0x98,0x00,0xea,0x94,0x69,0x22,0x5c,0x7b,0x1c,0x6d,0x10,0x09,0x7a,0xb9,0x06,0x29,0xfb,0x1d,0x30,0xd4,0x6f,0x9a,0xbc,0xe7,0x1a,0xbc,0x41,0x51,0xb9,0x6c,0x21,0xed,0x7b }, { 0xfe,0xe6,0xcb,0xf5,0xbd,0xa6,0xd1,0xe9,0x97,0xde,0xca,0x99,0xc7,0x0e,0xb4,0xb9,0x07,0xd0,0xb8,0x19,0xd2,0x61,0xd7,0x96,0x51,0x11,0xc7,0x65,0xf1,0xdc,0xa9,0xed,0xff,0x04,0xf9,0x25,0xc3,0x95,0x18,0xa3,0x39,0x04,0x4e,0x9f,0x24,0xb3,0x6c,0x66,0xb1,0x3b,0x3c,0x05,0xed,0x80,0x12,0x96,0x44,0x57,0x71,0xd6,0x7b,0x1e,0x49,0xff }, { 0x75,0x01,0x00,0x61,0xf2,0x01,0xb7,0x6d,0xa3,0x45,0x17,0xf6,0x22,0xb1,0xb3,0x11,0xcd,0xe4,0x25,0x44,0x11,0xd3,0x3a,0x06,0x63,0x48,0xfc,0x2d,0x71,0xa1,0x8c,0x8e,0x8a,0x02,0xc6,0xfb,0xaa,0x1f,0x72,0x23,0x6e,0x1d,0xb5,0x06,0x38,0x1d,0xd6,0xc8,0x90,0xbc,0x08,0x94,0xe1,0xf9,0x22,0xe8,0x61,0x01,0x45,0x16,0xce,0x11,0x88,0x61 }, { 0x6a,0xce,0x15,0x1a,0xb6,0x5b,0x9f,0x57,0x56,0x77,0x9d,0x39,0x57,0x9f,0xcc,0xa3,0x82,0x2c,0xf9,0x17,0x0a,0x76,0x17,0xaa,0x10,0xf0,0xaf,0xc2,0xad,0xc1,0x1d,0x7d,0xcd,0xe7,0xb4,0x88,0x95,0x4e,0xc9,0xd5,0x5a,0x1f,0x46,0xab,0x1e,0x39,0x8f,0x3a,0xff,0x22,0x2d,0x4e,0xcc,0xd5,0x10,0x1c,0xac,0x9e,0x6d,0xe9,0x21,0x48,0xef,0x45 }, { 0x6a,0x32,0x76,0x73,0x0d,0x01,0x9c,0xc7,0xdd,0xca,0xca,0x98,0x96,0x65,0xde,0x80,0x03,0x06,0xa7,0x3f,0xff,0xbd,0x22,0xb6,0xa4,0x0b,0x02,0x0f,0x48,0x17,0xab,0x14,0xf0,0x24,0x8d,0xb6,0x43,0x62,0x6c,0x14,0x1a,0x1d,0xd4,0xed,0x8a,0x73,0xe0,0xfd,0x50,0xb4,0x3d,0x7e,0xd5,0x84,0x9c,0x92,0x73,0xa7,0xef,0x55,0xaf,0x6b,0x7c,0x4f }, { 0xcc,0xe6,0xad,0x5e,0x6c,0xfc,0x31,0x03,0x35,0xbc,0xbd,0x6d,0xa6,0xb5,0x11,0x4b,0x29,0xe0,0xf8,0xd2,0xea,0x8e,0x49,0x72,0x1d,0x23,0x6c,0x93,0x4b,0x6b,0xa7,0xe5,0x5e,0x31,0xfe,0xf0,0x3e,0xd9,0x35,0x75,0xb8,0x33,0x3b,0x14,0x49,0x1f,0x75,0x45,0x8c,0xd8,0x56,0x73,0x57,0x60,0x32,0xf5,0x19,0xf0,0xaf,0x75,0x8c,0x7c,0x70,0x17 }, { 0x83,0x39,0x16,0x08,0x52,0xf7,0x67,0xc4,0x6a,0x59,0xdd,0xd7,0x61,0xc7,0x73,0xbd,0x74,0x69,0x2c,0x87,0x66,0xc0,0x6d,0x01,0x30,0x59,0x5f,0xdf,0xbe,0xe9,0xd7,0xf9,0x96,0x50,0xed,0xfa,0x9b,0xc4,0x8a,0x7b,0x19,0xe6,0x49,0xbc,0xc2,0xfb,0xc5,0xdc,0x8d,0x49,0xa3,0x11,0xdc,0x77,0x2b,0xf9,0x98,0xaf,0xae,0xe4,0x96,0xc4,0xd5,0x4d }, { 0xf5,0xa3,0xda,0x9b,0xfa,0x8b,0x39,0xd9,0xde,0xc2,0x34,0x57,0x1a,0x43,0x67,0x58,0xbf,0x73,0x4b,0xea,0x3c,0xa4,0x86,0xfd,0x8c,0x88,0x25,0x5c,0xe7,0x1c,0x69,0xb4,0x4c,0xaa,0x99,0x42,0x6e,0x0a,0x60,0x94,0xad,0xaf,0xaf,0xf8,0xe6,0x62,0xb6,0x0d,0x2f,0xfa,0xd4,0xfa,0x24,0xa5,0x50,0x95,0xef,0x36,0x37,0x6a,0x6f,0xa2,0xb8,0x9d }, { 0xc6,0xdf,0xa0,0xa6,0x35,0x96,0xe1,0x18,0x2e,0x69,0xf7,0xd1,0x10,0x65,0xda,0xc4,0xa2,0x48,0xdc,0xef,0x05,0x89,0xc0,0x9b,0xe4,0x4d,0x5f,0xb5,0xb8,0x66,0x76,0x82,0xce,0x46,0xde,0xcb,0x01,0x7c,0x99,0xe3,0xfe,0x29,0x91,0x86,0x41,0x54,0x94,0x38,0x9c,0x97,0x90,0xc7,0x5d,0x1e,0x0f,0x93,0x74,0x10,0x1b,0x70,0x4b,0x84,0x32,0xa2 }, { 0xae,0x17,0x4f,0xd0,0x24,0x6a,0x1f,0x72,0xa7,0xdf,0x0f,0x40,0x3a,0xb7,0x5c,0x1c,0x2c,0xf4,0x09,0xef,0x4f,0x35,0x61,0x6b,0x38,0x9a,0x66,0xbf,0xff,0x23,0x71,0xc7,0xb4,0x13,0x77,0xe6,0xae,0xac,0xb0,0x4b,0xcb,0xf4,0x47,0x1b,0x8f,0x90,0x78,0xe0,0x3d,0xa4,0x0f,0x81,0xd7,0xa4,0xcc,0x1e,0x28,0x36,0xba,0xf9,0x8b,0x94,0x14,0x05 }, { 0xca,0x3c,0xf2,0x07,0xae,0x12,0xc3,0x91,0x32,0x4b,0xff,0x14,0x89,0x53,0x12,0x7b,0xf3,0x4c,0x7b,0x94,0x42,0xf6,0x62,0x6b,0x51,0xab,0x4a,0xc1,0x38,0xa4,0xb6,0x8d,0xd2,0xfd,0x21,0xfc,0x7e,0x33,0x8d,0x65,0xfb,0x2a,0x63,0xe9,0x7d,0xff,0xdd,0x10,0x76,0x2f,0xcf,0xc8,0x51,0x23,0x94,0x24,0xe6,0x62,0xfb,0x68,0x2d,0x7f,0xc1,0x0e }, { 0x08,0x41,0x9b,0xa6,0xce,0xae,0x8d,0x59,0xea,0x38,0xa5,0x9e,0xdd,0xe9,0xb8,0x5a,0x61,0x7b,0xb7,0xdb,0x9d,0x3f,0x33,0xfd,0xab,0xf1,0x0d,0xdd,0x74,0xc8,0xca,0x71,0x2c,0xf8,0x56,0x2f,0xbd,0x39,0x48,0xd6,0xec,0x32,0xe7,0x6b,0x6e,0x2b,0x51,0xd8,0x84,0x60,0x7f,0xf2,0x51,0xaf,0x3e,0xde,0xfb,0x6b,0x5c,0xbb,0x70,0x4e,0x47,0xfb }, { 0x05,0x21,0x0c,0x0c,0xb2,0x4d,0x60,0x56,0xf4,0x3e,0xb9,0xa3,0xea,0x89,0x1e,0xf7,0x32,0x8c,0x02,0x34,0xf5,0x48,0xa4,0x72,0x48,0x71,0x64,0x69,0x9b,0x00,0xe2,0x20,0x72,0xab,0x26,0xbb,0x61,0x2b,0x03,0xa6,0xb8,0x1f,0x0a,0x7b,0xdb,0x9a,0xd6,0xc8,0x83,0xc4,0xe5,0x4d,0x57,0xeb,0xdf,0x04,0x67,0x61,0xa8,0x71,0x68,0x46,0xb2,0x50 }, { 0x15,0xb3,0xe3,0x06,0x54,0x73,0x69,0xb8,0x79,0xb1,0xe4,0x8c,0xf1,0x16,0xc4,0x13,0xf5,0x4f,0x8e,0xd7,0xf7,0x42,0x7b,0x2b,0x4b,0xe4,0xaa,0xc5,0xed,0x09,0x97,0x00,0xc9,0x19,0x9e,0x02,0xe3,0x23,0x58,0xcc,0xc5,0x00,0xcf,0xb1,0xfe,0x3c,0x95,0xcb,0x90,0xb6,0x1b,0x96,0x46,0xa4,0x3c,0x5a,0xa4,0x9d,0xe4,0xfc,0xaf,0xe5,0x4a,0x93 }, { 0xce,0xcd,0x15,0x2c,0x03,0x66,0x8c,0x41,0xed,0x86,0xbe,0x50,0x4d,0x93,0x52,0x73,0xae,0x92,0xcd,0xac,0x5a,0x6a,0x00,0xee,0x94,0x72,0x33,0xc4,0xd4,0x17,0xb7,0x31,0xd8,0xfb,0x99,0x8a,0x40,0x20,0x01,0x0a,0x12,0xa9,0xcb,0x03,0xa0,0xc9,0xb9,0x7e,0xd9,0x85,0x1a,0x8a,0x52,0x27,0xf8,0xf2,0x1e,0xdb,0x0e,0xad,0xa7,0x4f,0xd1,0x10 }, { 0x09,0x3a,0x44,0x57,0x08,0xf7,0x59,0xfc,0xe1,0xe9,0x4d,0x7c,0x7b,0xa6,0x0c,0xbc,0xd8,0x27,0xd1,0xd0,0x33,0x4f,0x77,0xc3,0x5e,0xd4,0xc5,0x55,0xe4,0xf6,0x2a,0x8a,0xd1,0xc8,0x00,0xf2,0x29,0x1e,0x93,0x5d,0x1c,0xe7,0x5a,0x23,0xf1,0x9f,0xa9,0xa3,0x71,0x3e,0x80,0x38,0x6f,0x6f,0x71,0x7e,0x31,0x8d,0x89,0xa4,0x52,0xea,0x74,0x75 }, { 0x57,0x2f,0x98,0x82,0x65,0x9a,0x00,0xcf,0x4d,0xaf,0x1d,0xa7,0xbf,0xe0,0x19,0xc2,0x89,0xee,0xf1,0x09,0xca,0xb6,0xf5,0x5c,0xdf,0x2c,0x89,0x3a,0xc3,0xa7,0x59,0x4c,0x92,0x11,0x24,0xe8,0x99,0x67,0x7b,0xbc,0x1d,0x26,0xf6,0xa5,0x05,0xfa,0xf8,0x1f,0x1a,0x8a,0x14,0x94,0x92,0xd2,0x18,0x80,0xaf,0x89,0xd4,0xab,0xc8,0x98,0x4f,0xb8 }, { 0xec,0x98,0x25,0x6d,0x10,0x35,0x1b,0x4a,0x50,0x8d,0xfd,0x55,0x5a,0xe3,0x58,0xfc,0x8d,0xea,0x53,0xfc,0x01,0x07,0xb0,0x65,0xc0,0x0e,0x10,0x1b,0x0e,0x4e,0xdf,0xfb,0x4a,0x85,0x6f,0xe7,0x47,0xfe,0xf1,0xaa,0xf4,0x2c,0x71,0x2a,0xe0,0x5b,0x38,0x10,0xbf,0x86,0x0b,0xc2,0x66,0x42,0xd2,0x5b,0x13,0xa1,0xed,0x73,0xa0,0xa4,0x80,0xa7 }, { 0x27,0x85,0x57,0xe5,0xc5,0x4a,0x22,0x27,0x2a,0xa6,0xa9,0x93,0x99,0x85,0x01,0xc9,0x52,0x1e,0x29,0x7d,0xec,0x26,0x76,0x9f,0xad,0xe2,0x5b,0x24,0x35,0x8b,0x3a,0xc3,0xc4,0x07,0x0a,0xd8,0xb7,0x5b,0x58,0xf9,0x29,0x6d,0x5c,0xd7,0xdd,0x64,0x8a,0xae,0xb3,0xbd,0x15,0x88,0x4b,0x2b,0x3e,0xbe,0x51,0x83,0xa8,0x8a,0x52,0x02,0x80,0x5a }, { 0x58,0x92,0xc8,0x1c,0x31,0x77,0x58,0xce,0xd7,0xd5,0xb7,0x86,0x73,0xe7,0x79,0x89,0x52,0x33,0x8d,0xd1,0xfc,0xc8,0x76,0x71,0xea,0xc6,0x0c,0x2e,0xa1,0x68,0xde,0xa6,0x38,0x61,0xf0,0xd8,0x0f,0xf3,0x5a,0x13,0xdf,0x1e,0x8d,0x83,0xc9,0x57,0x9a,0xe9,0x1a,0x75,0xfe,0xab,0xe5,0xa6,0xc5,0x9f,0x80,0xab,0x8c,0x06,0x9f,0xb2,0x4b,0xf1 }, { 0xea,0x3b,0x32,0x69,0xab,0x08,0x8f,0x0c,0x0b,0x02,0x90,0x45,0x07,0x47,0x93,0xd8,0x9f,0xba,0xb9,0x01,0x73,0x27,0xe0,0x35,0x23,0x17,0xcb,0x53,0xad,0x0e,0xd1,0xce,0xe5,0xd4,0x1a,0xf3,0x62,0x49,0x56,0x9f,0xe5,0xa9,0x68,0x33,0x3f,0x54,0xfe,0x07,0x4b,0xd9,0x04,0x6b,0xe4,0x06,0x92,0x0b,0xfd,0x41,0x04,0xb4,0x19,0x57,0x67,0xa4 }, { 0x6a,0x3a,0xbb,0xde,0x58,0xb7,0x97,0x4e,0xb0,0x88,0xaa,0x1c,0x65,0x94,0x51,0x57,0xab,0x1a,0x61,0xc5,0x50,0x55,0xa8,0xec,0xd2,0x0f,0x6a,0x9c,0x8c,0x48,0xc8,0x12,0x87,0x2b,0x7d,0x08,0x59,0xd7,0x64,0x3d,0x16,0x1d,0xcd,0xdc,0xf1,0x30,0x4f,0xe9,0x14,0x33,0x68,0x0a,0x05,0xb0,0xf4,0x92,0xea,0xdc,0x70,0x3c,0x01,0xc6,0x35,0x6a }, { 0x27,0xf3,0x33,0x73,0x10,0x77,0x28,0x13,0x81,0x49,0x64,0xdb,0xd3,0x63,0xc0,0x9c,0xfe,0xb3,0xf7,0xd6,0x21,0x64,0xb2,0x9e,0x29,0x9f,0x19,0xee,0xa5,0x02,0x81,0xb4,0x28,0x71,0x6f,0x8a,0x6b,0xb6,0xaf,0x0d,0x6d,0x7a,0x7e,0x70,0xaf,0x20,0xb5,0xb2,0x24,0xdf,0x16,0xd7,0x63,0x0b,0x74,0xf7,0x58,0xc5,0x1e,0x6b,0xd3,0x3e,0x63,0xff }, { 0x9d,0x29,0xb9,0x75,0x9e,0xe6,0x5b,0xa1,0xdf,0x87,0xc5,0x72,0x23,0xb2,0x4d,0x3b,0x67,0xf8,0xf9,0x3c,0x5e,0x2c,0xe7,0x4f,0x50,0x3e,0xb6,0x39,0xda,0xd2,0x84,0x1c,0x66,0x50,0x1c,0x96,0xde,0x15,0x2b,0x54,0xc3,0xd6,0xc2,0xc6,0xcd,0x7b,0x89,0xf9,0x4d,0xaf,0x6e,0xd0,0x90,0xaa,0xf1,0x40,0x2e,0x99,0x45,0xfd,0x1e,0x70,0xae,0x8f }, { 0x7e,0xf3,0x83,0xf0,0x66,0xb1,0x40,0x22,0x49,0x8e,0x46,0xb4,0x5e,0x21,0x7b,0x5b,0xc1,0x67,0x06,0x9d,0xd8,0x24,0x31,0x00,0x33,0x44,0xde,0xe6,0x25,0x38,0x6f,0x9e,0xce,0x46,0xdf,0xad,0x01,0x51,0x29,0xfa,0x0b,0x7e,0x4d,0x44,0x17,0xb3,0xba,0x9c,0x9d,0x3f,0x2e,0x24,0x8e,0x02,0x28,0xdd,0x30,0xcd,0xe0,0xd0,0xbc,0xb4,0xdd,0xe9 }, { 0x85,0x10,0x01,0x76,0xbe,0x47,0x9f,0xed,0x09,0x90,0xa2,0xcc,0x7f,0xd8,0x9f,0xf1,0x55,0xd0,0x93,0xbb,0x99,0x12,0x14,0xa4,0x1a,0xc5,0xe4,0x68,0x42,0xe9,0xae,0xda,0x6e,0x1d,0xdf,0xd9,0x56,0x11,0x8a,0xc3,0x9e,0x30,0x84,0xbd,0x8c,0x90,0x45,0xb1,0xe8,0xd4,0x6d,0x1d,0xb2,0x7f,0xd8,0x38,0x65,0x47,0x08,0xc5,0x7d,0x7d,0xb6,0x67 }, { 0x7d,0x67,0xd9,0x40,0x56,0xe9,0x75,0xf4,0x66,0x70,0x05,0xa0,0x82,0xf7,0xcb,0x42,0x94,0xe9,0x45,0x30,0x59,0x3a,0xb9,0x6d,0xc1,0x36,0x66,0xc8,0x89,0x36,0x34,0x4c,0x09,0xe0,0xb0,0xf1,0x46,0xcc,0x2b,0x01,0x0c,0xfd,0xa0,0x29,0xcd,0x6c,0xc1,0xfd,0x02,0x74,0xd3,0x38,0xc3,0x90,0x19,0xf4,0xaf,0x79,0x06,0x47,0x22,0x64,0xfd,0xe4 }, { 0x47,0xbc,0x11,0xf5,0x5a,0x98,0xb0,0x1a,0x41,0xb9,0xf6,0xe8,0x0f,0x8b,0xd9,0x2c,0x15,0x1a,0x2d,0x5f,0x03,0x8a,0x41,0x9a,0x31,0xbc,0x90,0x06,0x0d,0x3e,0xb4,0x00,0xa6,0x8d,0x7a,0x00,0x7f,0x23,0xc7,0x81,0x6e,0xd8,0x30,0xef,0x38,0xaf,0x35,0xcf,0x9c,0x21,0x93,0x06,0xc9,0x0e,0x2d,0xb4,0xf5,0x25,0x2d,0x15,0x0a,0xff,0x43,0x98 }, { 0xac,0xf4,0x25,0x17,0x60,0x70,0x40,0xb0,0xb4,0x28,0x7e,0x6b,0xa2,0x75,0x98,0x63,0x30,0x26,0x1d,0x98,0x17,0x52,0xfe,0x50,0x27,0xfa,0x69,0x94,0x4b,0xb3,0x1e,0xbe,0x29,0xc2,0xea,0x10,0x0a,0x80,0x83,0xec,0xe2,0x95,0x9c,0xdd,0x18,0x51,0x31,0x50,0xd1,0x34,0x61,0xfc,0x4c,0x43,0x25,0xbb,0x94,0xb1,0x87,0xab,0x06,0xc2,0x6c,0xb3 }, { 0x44,0x07,0x20,0x88,0xfc,0xb4,0x44,0x17,0x7f,0x02,0xfe,0x8c,0x2a,0x15,0x2e,0x83,0x9d,0xfb,0xf0,0x33,0x1b,0xdc,0xd6,0xcc,0xca,0x6e,0xd2,0xa8,0xe2,0xac,0x55,0xcd,0x9b,0xcf,0xa4,0xa9,0xe8,0xd2,0x61,0xcc,0xc6,0x4d,0xab,0xe9,0x19,0xa3,0x17,0x95,0xbb,0xa9,0x18,0x07,0xfc,0x79,0x2b,0x0a,0x88,0xbd,0xbe,0x71,0x81,0xc0,0xbd,0x3b }, { 0x03,0xb5,0xbb,0xa2,0x88,0x0b,0xf3,0x99,0xfa,0x59,0xf6,0xa5,0xd5,0xe6,0x8f,0x06,0x94,0xeb,0x44,0x89,0x51,0x94,0x4a,0x18,0x96,0xbf,0xb3,0x2f,0xb2,0x5e,0x0c,0xc0,0x74,0x8f,0x64,0x44,0x2c,0x52,0x50,0x5f,0xde,0x94,0xe2,0x33,0x5e,0x1e,0xb1,0xa3,0x48,0x84,0x2a,0xbc,0x5f,0xe8,0x19,0x5b,0xee,0xe8,0xa3,0x7d,0xd4,0x40,0x72,0x22 }, { 0xdd,0x60,0x86,0xf1,0x50,0xbc,0x1d,0xa4,0x06,0x60,0xbf,0xa9,0x3b,0x84,0x30,0x4a,0xd2,0xcf,0xad,0x66,0xec,0x9e,0xf2,0xcb,0x09,0x58,0xa2,0x26,0xd5,0x75,0x66,0x50,0xbd,0x0a,0x59,0xde,0x38,0x02,0x72,0x58,0xbb,0xf5,0xf3,0x07,0x91,0x81,0xb2,0x76,0x06,0x5d,0x30,0x2b,0xcf,0xd9,0xe9,0xeb,0xbe,0xe2,0xf8,0x86,0x58,0xec,0x0f,0x4e }, { 0x8c,0x52,0xf1,0x25,0xc5,0xb8,0x5c,0x82,0x84,0x07,0x9c,0xd4,0xd0,0x67,0x40,0xf9,0xb4,0xcd,0xb5,0x93,0x45,0x18,0x04,0x1c,0xb9,0x4f,0xfc,0xc9,0x16,0xc7,0x1c,0x5b,0x78,0x70,0x99,0x60,0x31,0x03,0xe3,0x14,0x5d,0x4f,0x0d,0x31,0x70,0x83,0xaa,0x46,0x4e,0x0e,0x1e,0x99,0xa9,0x27,0x98,0x4c,0x20,0x74,0x58,0xec,0x19,0xa4,0x32,0x98 }, { 0x41,0x70,0x6b,0x1d,0xda,0x7c,0xb1,0x70,0x2e,0x4a,0xe9,0x91,0x18,0x80,0xbe,0xb7,0x7a,0xb6,0x98,0x1b,0xba,0xfa,0xc8,0x5b,0x42,0xd3,0x90,0x64,0xdd,0xec,0x9b,0x7b,0x7f,0x76,0x9d,0x27,0x1f,0x02,0xe4,0x44,0x07,0x01,0x71,0xf4,0xa1,0x63,0x3e,0x53,0x7b,0xd4,0xbb,0xc9,0x48,0x2c,0x93,0xa8,0xf1,0x3d,0xef,0x90,0xd8,0xcd,0xfb,0xd2 }, { 0x57,0x0c,0xc5,0x7c,0x19,0x15,0x07,0xb4,0x60,0xca,0x72,0x96,0x70,0xe7,0xf5,0xa7,0x6b,0x7d,0xfa,0x5f,0x2d,0x0d,0x16,0x24,0xea,0xea,0xf0,0x5e,0xbe,0x8b,0xac,0x54,0xd9,0x10,0x36,0xd1,0x58,0xcf,0x8f,0xb5,0x95,0xd7,0x56,0xb0,0x91,0xf4,0xd7,0x0c,0xe2,0x39,0x75,0x94,0x32,0x54,0xb2,0xac,0x97,0xff,0x44,0xb1,0x1e,0x74,0x28,0x7e }, { 0x55,0x27,0x26,0x88,0x23,0x6e,0xd7,0xb4,0x17,0x7b,0xac,0x7c,0xc4,0x1c,0x0c,0xf3,0xdb,0xfc,0x6d,0x36,0x4a,0x07,0xbd,0xff,0xe7,0x8a,0x4a,0xdc,0xa2,0x8d,0x1b,0xd8,0x0e,0x24,0x6a,0xca,0x08,0x52,0x63,0xb1,0xa4,0x51,0x3f,0xcd,0x8d,0xc0,0x7e,0x4a,0x6c,0xa6,0xa0,0x97,0x12,0x15,0x23,0x57,0x24,0x11,0x5d,0x97,0xc8,0x59,0xf5,0xf3 }, { 0x26,0xe4,0x52,0x79,0x19,0xc0,0xe1,0xc9,0xd8,0x53,0x5f,0x41,0xb6,0x1e,0xc5,0xdb,0x29,0x10,0x1c,0x6b,0x2b,0x14,0x98,0x46,0x9e,0x6c,0xc3,0x20,0xed,0xb3,0x2d,0xb2,0x08,0x04,0xf9,0x93,0xe7,0x10,0x9a,0xbf,0xf2,0xc4,0x91,0xb1,0xaf,0x55,0xfa,0x47,0xfe,0xb5,0x78,0x53,0x68,0x7e,0xb7,0xde,0xa7,0xf1,0xd8,0x6d,0xd9,0x4f,0x82,0x7e }, { 0xa3,0x17,0xa6,0xde,0xb9,0xbd,0x84,0x5e,0x1f,0x90,0xe5,0xc9,0x0e,0x8c,0xe5,0xeb,0x3d,0x48,0x7b,0x59,0x11,0x85,0xfd,0xd2,0xfe,0xb8,0x47,0xff,0xf8,0x75,0x6d,0xbb,0x09,0x0a,0xe3,0xad,0x04,0x96,0xfa,0x05,0x65,0xc4,0x27,0x48,0xa7,0xef,0xa3,0x07,0xb9,0x0a,0x1b,0xdd,0x72,0x42,0x45,0xe8,0x05,0x3a,0x10,0xc6,0xbc,0x06,0xb7,0x6c }, { 0xbb,0x26,0x47,0x4e,0x03,0x92,0xba,0xf4,0x50,0x57,0x79,0xdc,0x0f,0xfb,0xdd,0xc6,0x01,0x76,0x94,0xa8,0xf8,0x80,0x93,0x7e,0x18,0xea,0xd9,0x37,0x09,0x50,0xc1,0x44,0x45,0x00,0x0f,0x67,0x60,0x5d,0xb3,0x5c,0xc4,0x7b,0xd1,0xad,0x4e,0x97,0x29,0xdd,0x73,0x95,0x01,0x6a,0x00,0x6a,0x1e,0xda,0xfa,0x8e,0x91,0x0c,0x3f,0xb4,0xa8,0x77 }, { 0x58,0x68,0x91,0x83,0x2c,0xea,0xf2,0xac,0x8d,0x6e,0xd2,0xb5,0x9b,0x01,0xbc,0x88,0x10,0x24,0x7a,0x79,0x76,0x45,0xdd,0xf8,0x41,0x52,0x64,0xcb,0x05,0x9e,0xe2,0xd4,0x06,0x48,0x98,0x2d,0x7e,0xc9,0xfe,0xc8,0x3f,0x61,0x99,0x99,0x86,0xe8,0x82,0xee,0x20,0xca,0xf9,0xd5,0x9b,0x17,0x6d,0xab,0x8a,0x65,0xa4,0xe7,0x61,0xb8,0xae,0xf4 }, { 0x15,0x29,0xed,0x5a,0x49,0xf4,0x34,0x60,0x5f,0x2c,0x45,0x3e,0x7f,0x8f,0xcc,0x80,0xd0,0x7d,0xb4,0x5a,0xaf,0x96,0x93,0xd0,0xfe,0xea,0xdb,0xb7,0xbe,0xa1,0x5d,0x69,0x65,0x34,0x61,0x4d,0x9e,0x51,0x29,0xb5,0x21,0x48,0x0c,0x34,0x9f,0x77,0xa2,0x5d,0x21,0x48,0xee,0x37,0x7e,0x44,0x38,0x2c,0xea,0x86,0x5d,0xaa,0x2a,0x2c,0x52,0xc8 }, { 0x40,0xb7,0xc5,0xd0,0xa5,0x4f,0x90,0x10,0x40,0x3b,0xd6,0x57,0x24,0x8f,0x8c,0x7d,0x63,0x3c,0x41,0x2d,0x93,0x84,0xb8,0x0b,0xb4,0x79,0x08,0x0c,0xf4,0x33,0x48,0xbf,0x28,0x5e,0x2d,0x1f,0x66,0xf8,0x0e,0x32,0x73,0x45,0x92,0x6d,0x25,0xf1,0x53,0x9c,0x20,0x1c,0xce,0x86,0x92,0x13,0xde,0x6a,0x8f,0xdc,0x1f,0x36,0x8c,0x48,0xa7,0x03 }, { 0x57,0x10,0x59,0xca,0xb0,0xca,0x09,0x30,0x6d,0xf6,0xd0,0xdb,0xe5,0x0d,0x82,0x29,0x95,0xf5,0x40,0x4e,0x6f,0x89,0x6c,0xc0,0x9f,0xe1,0x09,0xca,0x46,0x8c,0xf6,0x75,0x71,0xb2,0xb1,0x04,0x09,0x93,0x2d,0x07,0xeb,0x4b,0x92,0x30,0x66,0x5a,0xc1,0xbd,0x1e,0xec,0x1d,0x15,0xc3,0xc9,0x90,0x8f,0x62,0x24,0xe4,0x12,0x69,0x63,0x99,0xe0 }, { 0x68,0x02,0xe0,0xd0,0x38,0xa0,0x91,0xbd,0xb0,0x44,0x4d,0xd3,0x93,0x2d,0x4a,0x6b,0x08,0xca,0xff,0x3a,0xd1,0xd9,0x95,0xda,0x67,0x66,0x13,0xfc,0x98,0x1f,0x79,0xf8,0x13,0xe5,0x01,0x15,0x1f,0xe8,0x78,0xbc,0x10,0x06,0x40,0x2d,0x16,0x0a,0x76,0x74,0x3b,0x16,0xbc,0x04,0xd5,0x5e,0xad,0x24,0xf5,0x3f,0xc5,0xe0,0x1e,0x18,0xbb,0x7a }, { 0x21,0x60,0x26,0x7b,0x0c,0x25,0x58,0x77,0x29,0xdf,0xdf,0x4f,0x71,0xe5,0x04,0xa0,0x99,0xae,0x53,0x5a,0x97,0x0d,0x97,0x1c,0x00,0x11,0x94,0x70,0x5a,0x74,0x1d,0xfc,0x55,0x37,0x41,0x3a,0x78,0x76,0x6a,0x1a,0xf7,0xaa,0x15,0xf6,0x67,0x5c,0xff,0xda,0x70,0xe5,0x99,0xd0,0x28,0x23,0x18,0x95,0x7a,0xf6,0xc7,0xb3,0x22,0xef,0x65,0x8e }, { 0x83,0x68,0x78,0x74,0x2a,0xe2,0x01,0xd7,0x59,0x3b,0xb4,0x3d,0xd6,0xd5,0x5a,0xd0,0x73,0x86,0xa9,0x97,0xc1,0xe2,0xa6,0xf2,0x92,0x93,0xf5,0x23,0x57,0x4f,0x22,0x66,0xd5,0x8f,0x7c,0x54,0xac,0xbf,0xa5,0x45,0xa6,0x18,0x25,0x1e,0xbd,0x1f,0xd1,0xa5,0x58,0x37,0xac,0xb9,0xad,0x8f,0xad,0x7c,0x8b,0xae,0x78,0x9a,0xe6,0x38,0x2d,0xeb }, { 0x72,0xfb,0x57,0xf5,0x0b,0x0b,0xb3,0xc1,0x0c,0x44,0x7e,0x5d,0x42,0x1d,0xb7,0x08,0x3e,0xb8,0x8e,0x85,0xe7,0xd4,0x28,0x71,0x3f,0xee,0xbd,0x5c,0x5c,0xd9,0xa8,0x0e,0xf3,0x2f,0x55,0xe5,0x0b,0xb1,0xd6,0x85,0x41,0xc5,0x6f,0x32,0xac,0xc6,0xe9,0x95,0x00,0x73,0x89,0xab,0xe5,0x66,0x43,0xad,0x7a,0xcd,0x3c,0xcf,0xa9,0xe7,0x69,0x61 }, { 0xb4,0xa5,0x1a,0x9c,0x7e,0x3e,0xe5,0x9d,0x4e,0x42,0x31,0x1b,0x2e,0x87,0x28,0xa6,0x8b,0x96,0x1d,0x04,0xf0,0x05,0xa5,0x87,0x6c,0xc4,0x5a,0xc7,0xcb,0x41,0x4c,0x92,0x08,0x88,0xac,0x94,0x53,0x72,0xcb,0x78,0xfc,0x2d,0xec,0x45,0x2a,0x24,0x89,0xe1,0x5c,0x76,0x9a,0x0b,0x58,0x73,0xae,0x6c,0x3a,0xd3,0x2d,0x74,0x48,0x9c,0x62,0x65 }, { 0x79,0xfe,0x31,0x75,0x2c,0x29,0xe0,0xec,0x9d,0x04,0x45,0x60,0x34,0xaa,0x7b,0xdc,0x9b,0x56,0xac,0x59,0xab,0x79,0xe2,0x92,0x55,0xaf,0xe8,0x1f,0x46,0x7b,0x8f,0x86,0x67,0xeb,0x45,0x68,0xa6,0x8a,0x8a,0xf6,0xf0,0xde,0x9a,0x03,0x6f,0x18,0x55,0xb4,0x66,0xc4,0x66,0x66,0xa9,0x44,0xd1,0xcb,0x89,0xe9,0x3c,0x6e,0x77,0x71,0x00,0x02 }, { 0xb1,0xd5,0xb9,0xd5,0x2f,0xe1,0x7c,0xba,0x10,0xa9,0x4e,0xc7,0x1a,0xaa,0x02,0xd8,0xec,0x40,0xb6,0xce,0x68,0x39,0x5a,0x85,0x4c,0xed,0x12,0x5e,0x1a,0xcf,0x1a,0x19,0x20,0x5b,0xf3,0x5e,0x6f,0x11,0x30,0xa8,0x57,0x69,0xda,0xf5,0xe3,0xb8,0xac,0x24,0x0d,0xf6,0x1f,0xdc,0xbd,0x0d,0x3a,0x71,0x9c,0x18,0x55,0x01,0xed,0x13,0x5d,0x9d }, { 0x91,0x8c,0x8d,0x24,0x4e,0x99,0x09,0x0d,0xcb,0x30,0x2d,0x95,0xfe,0x8a,0x98,0x03,0x7d,0xe8,0x45,0x5a,0xd5,0x9c,0x2a,0x10,0x6b,0x01,0xf4,0x79,0x15,0xc8,0x56,0xb2,0xaa,0x7b,0xd7,0xae,0x6c,0x5b,0x12,0xfe,0x7d,0x1c,0x05,0x27,0xa0,0xf6,0x38,0xb4,0x72,0x81,0xe5,0x2a,0xa1,0x3d,0xd3,0x80,0xab,0x0a,0x50,0x37,0x6a,0x02,0xd4,0x9f }, { 0x2b,0x5d,0xea,0x7f,0xb5,0x83,0xc0,0xae,0x1a,0x9c,0x50,0x28,0x59,0x31,0x07,0x3d,0x6e,0xe4,0x4a,0x21,0x08,0x1e,0xea,0xd7,0x52,0x53,0xbd,0x9e,0x3a,0x82,0xfa,0xeb,0x1f,0x9e,0x66,0x3b,0x56,0x0b,0xff,0x7b,0x09,0x6d,0x47,0xcf,0xdd,0x03,0x8c,0x7e,0x88,0xad,0x50,0x0e,0xd0,0x0f,0x65,0xf6,0xe5,0xb2,0xc8,0xa5,0xab,0x03,0xb7,0xf8 }, { 0x1a,0x24,0xd3,0xab,0x81,0x5c,0xd3,0x55,0xf3,0xb8,0x0c,0x30,0xe7,0xde,0x3b,0xd4,0x00,0xfb,0xaa,0x76,0x6f,0xc2,0x47,0xe3,0xcd,0x4d,0xcd,0x99,0x6d,0x2b,0x9f,0xef,0x32,0xa7,0xef,0x3e,0xf4,0x83,0x4f,0xf1,0x84,0x62,0xfe,0xe2,0x1c,0x73,0x5a,0x5c,0xe7,0xf7,0xc4,0x5c,0x37,0x4c,0x3c,0xc5,0xff,0xe0,0xeb,0xde,0x7f,0x13,0x34,0x6e }, { 0x2b,0xfc,0x6a,0xb5,0x6a,0xf9,0xdd,0x2c,0x2b,0x46,0x1d,0x7e,0x26,0xee,0xc2,0x03,0x72,0x9c,0xca,0xc4,0xf4,0xf8,0xb6,0x49,0x7a,0x0f,0x7e,0x71,0x21,0x49,0x8f,0x82,0x58,0x7c,0x7b,0x3e,0x1d,0x55,0x4f,0x88,0x14,0xe8,0x8a,0xaf,0x66,0x86,0x61,0x10,0x5a,0x21,0xfc,0xac,0x83,0x1c,0x94,0x3f,0x35,0xaa,0xf7,0x25,0x2d,0x36,0x46,0x00 }, { 0x14,0x97,0xa5,0x59,0xcd,0x57,0x5c,0x37,0xb4,0xa4,0xe5,0x8c,0xd9,0xd9,0xbc,0xcf,0xcc,0x1d,0xc9,0x4d,0x7d,0xb4,0x07,0xbf,0xb1,0x05,0xb9,0x26,0x62,0x83,0x48,0x2e,0x40,0x27,0x49,0xaf,0x24,0x53,0x72,0xd0,0x87,0xb6,0xbc,0xdc,0x7c,0x62,0xe0,0xd5,0x95,0x6b,0x4e,0x45,0x33,0xdc,0xdb,0xa2,0xc8,0xd8,0xb6,0x4f,0xb0,0x5c,0xac,0xd1 }, { 0xab,0x3a,0x13,0x12,0xf3,0x4e,0xad,0xf8,0xc5,0x42,0x86,0x91,0x7b,0xd9,0x20,0x9e,0x56,0xcc,0x81,0x5e,0xd3,0x4a,0x45,0x7d,0xc0,0xb3,0x18,0xd9,0x96,0xa2,0x37,0xa5,0x46,0x5d,0x0e,0xf2,0x23,0x8f,0x93,0x0c,0x3b,0x2e,0x5f,0xbb,0xec,0x80,0x67,0x3f,0x8c,0x94,0x0a,0xa4,0xcf,0x0d,0x30,0x01,0x25,0x29,0xd3,0x5f,0x4f,0x10,0x7c,0x5f }, { 0x20,0x22,0xdb,0x98,0x15,0x04,0x74,0xec,0x46,0x53,0xd2,0x07,0x16,0x3b,0x19,0xa1,0x04,0x54,0x6b,0x10,0x8c,0xf8,0x01,0x68,0x42,0x6b,0xc7,0xae,0xb8,0x32,0xf0,0x44,0x34,0x66,0x7a,0x63,0xd4,0xd3,0x4f,0x5d,0x6a,0x9c,0x6a,0xf3,0xd3,0x06,0x5e,0xb5,0xe5,0xf8,0x8b,0xb7,0xa9,0x58,0x49,0x92,0xe7,0x98,0xbf,0x99,0x20,0xeb,0x5b,0x33 }, { 0xee,0x49,0xbe,0x69,0x4e,0xeb,0x72,0x5c,0xbe,0x9a,0x25,0x67,0x17,0x56,0xff,0x0f,0xe6,0x70,0xf3,0xc2,0x86,0xe6,0x2e,0x5c,0x92,0x7b,0x84,0x54,0x0b,0x62,0x9d,0x73,0xdb,0xf1,0x8a,0x20,0x8f,0x44,0xb7,0xcb,0x68,0xab,0x99,0x09,0xf3,0x7d,0xb6,0xf2,0x4a,0x2d,0xeb,0x9c,0x71,0x42,0x55,0x0a,0x8f,0xa2,0xe9,0x28,0xaf,0xb4,0x7a,0xd4 }, { 0x8f,0x7b,0x42,0xff,0x1c,0x96,0x47,0x1e,0x2c,0xd8,0x8b,0x0c,0xd4,0x3d,0xe2,0x86,0xe0,0x93,0xe1,0x67,0x52,0x39,0xc0,0x85,0xc6,0x53,0xb3,0x94,0x87,0x21,0x39,0x96,0xd8,0x02,0xb2,0xaf,0x40,0x93,0xa3,0xeb,0x59,0x26,0xb6,0xd4,0x8c,0x36,0x8d,0x10,0x14,0xe1,0xb5,0xd2,0xd4,0x05,0x82,0xe7,0x04,0x5d,0x15,0x5b,0x5b,0x2f,0x77,0x94 }, { 0xca,0xd2,0x9f,0xfe,0x2c,0xb8,0x5c,0x79,0x59,0x96,0xc5,0x40,0xe1,0x28,0x75,0xf9,0x44,0x33,0x8a,0x33,0x71,0xe1,0x27,0xb8,0x40,0xd6,0x3a,0x42,0xeb,0x5e,0xaf,0x42,0x9b,0xae,0xca,0x6b,0xdc,0xc1,0xcd,0x33,0x5e,0xd0,0x48,0xaa,0x82,0x05,0x72,0xda,0xa4,0x61,0x18,0x0e,0x93,0xe9,0x97,0x99,0x54,0x37,0x52,0xc8,0x46,0xe6,0xb7,0x64 }, { 0xd4,0x6d,0xbc,0xea,0xec,0xda,0x89,0xd8,0xdf,0x16,0xe6,0x1c,0xe7,0x2c,0x87,0x12,0x12,0x10,0xaa,0xe4,0x02,0x2e,0xf2,0x21,0xe8,0x73,0x5a,0xf0,0x1d,0x0d,0x6d,0x19,0xd9,0xa8,0x94,0x60,0x63,0xe3,0x47,0xb6,0x08,0x43,0x20,0x16,0xa5,0x75,0x6f,0x44,0x1c,0x87,0x8f,0x9a,0xa3,0x74,0xa3,0x4e,0xf9,0x79,0xf3,0x3f,0x5c,0x1c,0x57,0x1c }, { 0x89,0x55,0xd2,0x44,0xe1,0xf1,0xa0,0xe6,0xdf,0xbf,0x4c,0x15,0x92,0x7b,0x99,0xb6,0xc7,0x92,0x45,0x87,0x2e,0x8c,0xb4,0x9f,0x48,0x6d,0x71,0xd8,0xe6,0x8b,0xde,0x13,0xaf,0x69,0xe9,0x59,0x66,0x5c,0x70,0xf6,0x4b,0x28,0x51,0x59,0xfd,0xa4,0xc9,0x22,0x90,0x58,0x31,0xa3,0xdd,0x3f,0x66,0x72,0x3a,0xf3,0x33,0xbd,0xd1,0x5f,0xc5,0x85 }, { 0x78,0xd5,0x0a,0xaa,0xbf,0xf1,0xa5,0x74,0xf7,0x8a,0x31,0xcc,0x45,0x23,0x4f,0x8a,0x15,0x62,0x36,0x14,0x80,0x68,0x24,0x9f,0x89,0xf9,0xd7,0x89,0xb9,0x3e,0x7f,0xe3,0x85,0xa8,0xbf,0x92,0x53,0xe5,0xf8,0x16,0x00,0xc4,0x92,0xa0,0x46,0x6a,0x71,0x15,0x86,0xd7,0xb8,0x25,0xf3,0x06,0xd1,0xfc,0xc4,0x6e,0x0b,0xa7,0xbf,0x08,0xa0,0x7a }, { 0x2b,0xcc,0x5b,0x73,0x78,0x91,0x18,0x9d,0xd8,0x23,0x72,0x29,0x74,0x18,0x02,0x22,0x41,0x68,0xee,0x17,0x4b,0xc0,0x9f,0xd9,0xd5,0x54,0xfc,0x76,0x9f,0x65,0x99,0x54,0x73,0xc7,0x5c,0xca,0xaa,0xb9,0x25,0x46,0x2b,0xd3,0x67,0xbb,0x18,0x46,0x87,0x93,0x16,0xe4,0xe3,0xfa,0xc1,0xdf,0xce,0x94,0xcf,0x13,0xe9,0xdb,0x70,0xd2,0x9c,0x33 }, { 0x45,0x69,0x7a,0x46,0xc2,0x44,0x7e,0x14,0xdc,0xc6,0xc0,0x2d,0x54,0x08,0xb5,0x91,0x70,0xf1,0x8b,0xbb,0x2b,0x28,0x63,0xf3,0x62,0x8d,0xfd,0x69,0x2b,0xd2,0x9f,0xfd,0x45,0x67,0xfb,0x06,0x46,0x60,0xcc,0x24,0x1a,0x45,0x6d,0xf9,0x0c,0xd3,0x86,0x58,0xc6,0x1c,0x24,0x04,0xa6,0xe6,0x32,0x10,0xab,0x3a,0x5b,0x0c,0xe8,0xb6,0x88,0xe0 }, { 0xb4,0xc4,0x1d,0x8d,0x9d,0x8f,0x44,0xed,0xcd,0x6c,0xb3,0x87,0x3e,0x98,0x8c,0x8d,0x50,0x89,0x1a,0x75,0xd4,0xf9,0xe6,0x71,0x11,0x64,0x1f,0xd1,0x14,0x60,0x6e,0xd6,0xf6,0x4c,0x4a,0xa8,0xc9,0x2a,0xbb,0x77,0xe1,0x01,0xe3,0xb7,0x21,0xb0,0x11,0xc8,0x60,0x01,0xdd,0xd5,0xa0,0xba,0xc1,0x2d,0xf3,0x23,0x8a,0xbe,0xa9,0x3a,0x73,0x5d }, { 0xe3,0xf8,0xb6,0xae,0xe3,0xf7,0x46,0x90,0x37,0xc5,0x6a,0xff,0xbf,0x25,0xdf,0x07,0x6a,0x86,0xa8,0xe7,0x69,0x01,0x44,0xd6,0x9b,0x94,0xd9,0x73,0xc7,0x38,0x6d,0xc0,0xbd,0x1d,0x51,0x38,0xca,0xc7,0xb7,0xed,0x4a,0xa3,0x1a,0xba,0xc1,0x9b,0x1b,0x19,0x4a,0x46,0xca,0x90,0xa0,0xe1,0x05,0xbd,0x4a,0x90,0xd1,0x47,0x88,0x7d,0x60,0x64 }, { 0x29,0x5b,0xd3,0x92,0x23,0xd3,0x5c,0x12,0x72,0x68,0xaf,0x61,0x12,0x43,0xf8,0x89,0xf4,0x4d,0xb2,0x65,0x6d,0xa2,0xe5,0x63,0xad,0x91,0x3d,0x1b,0x2e,0x83,0xb9,0x96,0xec,0x72,0xdc,0x7c,0x40,0x88,0x90,0xf3,0xde,0x9a,0x07,0x7d,0x1c,0x45,0x3a,0x59,0x09,0x03,0xae,0xd5,0xf0,0xbb,0xd6,0x8e,0xcf,0x60,0xc0,0x5e,0x5f,0x8a,0xb3,0x6c }, { 0x9d,0xef,0xd1,0xcb,0xc0,0x4e,0x0d,0x8e,0x29,0x4b,0x63,0x41,0x87,0x48,0xdd,0x38,0x8f,0x80,0x94,0xb8,0xef,0x63,0x09,0xb1,0x45,0x0a,0xdf,0xaa,0x57,0x54,0xd8,0x5b,0x65,0xa5,0x40,0x60,0x09,0xfd,0x75,0x05,0x68,0x64,0xc9,0x50,0x5c,0x3c,0x8c,0x55,0x5a,0xf2,0xe5,0x91,0xe0,0x43,0xad,0x58,0xf3,0x77,0x78,0xf4,0xbe,0x75,0x84,0xe7 }, { 0xca,0x8a,0x95,0xa8,0x61,0x03,0x71,0x9d,0xb6,0xa2,0x9e,0xa3,0x71,0x2f,0xac,0xc1,0xe5,0x11,0x09,0xda,0xaf,0x0c,0x64,0xe9,0xce,0x4e,0xc4,0xdb,0x14,0x85,0x0b,0x09,0x59,0xdc,0xbd,0x91,0xe1,0x86,0x75,0x82,0x75,0x27,0xc9,0xf7,0x3e,0xf3,0xdd,0xe2,0x62,0xa7,0x31,0x07,0xf8,0x07,0x47,0x9f,0x1d,0x3d,0xc2,0x52,0x00,0x33,0x18,0x16 }, { 0x5d,0x20,0x9c,0x6f,0xeb,0x60,0x4d,0x6e,0xe0,0xe1,0x6e,0xfe,0x01,0x8e,0x3d,0x0f,0x8b,0x55,0xf7,0xa8,0xa0,0xe4,0xf3,0xa5,0x5c,0x2e,0x56,0xfd,0x38,0x0c,0x30,0x52,0x72,0xbe,0x88,0x02,0xc8,0x19,0x2c,0xb3,0x9c,0xbd,0x62,0xd6,0x3f,0x82,0x56,0xf7,0xe2,0x09,0xa8,0x1d,0xc9,0x02,0x2e,0xfb,0x3d,0x9d,0x9f,0xe2,0xd1,0x64,0x8e,0xb7 }, { 0xe4,0x7d,0x1f,0x66,0x7d,0x3e,0x09,0x89,0xa2,0x93,0x6c,0xe1,0x35,0x68,0x93,0xe7,0xb5,0x11,0xeb,0x8e,0x7c,0x38,0x4e,0x2d,0x5d,0xab,0x1b,0x9f,0x46,0x3a,0x8d,0xb5,0x5e,0xbc,0xa2,0x7d,0xc0,0x26,0xf7,0xc0,0x6a,0x24,0x93,0x8c,0xa1,0x9f,0xcd,0x16,0x2c,0x24,0x6e,0x5d,0x38,0x67,0x93,0x5f,0xaf,0xee,0x83,0x1a,0x99,0x13,0x2f,0x1b }, { 0x04,0xf7,0xf8,0x85,0x98,0xb0,0xb9,0xaf,0x49,0x08,0xb7,0xc6,0x3d,0xd1,0x6b,0x6b,0x1e,0xcf,0x92,0x35,0xe8,0xef,0x58,0x50,0x45,0x80,0x47,0x3e,0x39,0x47,0xca,0x31,0x3d,0xa2,0xb8,0x7e,0xcf,0xc2,0x5d,0x90,0x9e,0x46,0x92,0xbe,0x5b,0xa8,0x12,0x7e,0x7d,0x14,0x6a,0x93,0x13,0xe7,0xd9,0xc2,0x5d,0x16,0x36,0xfa,0xb4,0x5b,0xdb,0xcd }, { 0xf2,0x54,0x31,0xd4,0x7a,0x91,0xb8,0x9a,0xfb,0xa3,0xda,0x46,0xe1,0xc5,0x15,0x67,0xc7,0xdd,0xea,0xe4,0x00,0x42,0x04,0x7e,0x57,0xbe,0x3b,0xcb,0xf4,0x43,0x72,0xca,0x65,0x48,0xf5,0x37,0xc4,0x22,0x80,0x93,0xb5,0xd3,0x0d,0xa3,0x08,0x00,0x81,0x88,0xa6,0x51,0xd8,0xdc,0x72,0x2a,0x8c,0x41,0x45,0x5f,0x26,0x18,0x76,0x85,0x0c,0x7e }, { 0xe7,0x39,0x5e,0xef,0xf6,0x65,0xe4,0x7e,0x83,0xd7,0xcd,0xd7,0x87,0x30,0xb6,0xec,0x5f,0x75,0x06,0xb0,0x46,0x93,0x7e,0xf0,0x94,0x25,0xad,0x7a,0x97,0x4e,0x20,0x87,0xd8,0x39,0xa1,0x23,0x1c,0xce,0x84,0x6d,0xb9,0xed,0x60,0x1e,0xda,0xcb,0xc4,0x7f,0xd3,0x83,0xda,0x27,0x3d,0x5c,0x24,0x3c,0x01,0x83,0x1d,0xef,0x0e,0xd7,0xd6,0x5f }, { 0xa3,0x52,0x32,0x0c,0xa1,0x95,0xc1,0xb8,0x36,0xc6,0x89,0xcc,0xc7,0x64,0xbd,0x6b,0xbf,0xef,0x5d,0x8a,0x8a,0x05,0xbf,0xb5,0xaa,0x22,0xa3,0xa5,0x5a,0xc7,0xa0,0x61,0xfc,0x42,0x95,0xb2,0x6a,0x67,0x00,0x4b,0x1b,0x45,0x7e,0xe9,0x50,0x0d,0x10,0x72,0x5c,0xb7,0x12,0x1e,0x15,0x01,0xe2,0x92,0x48,0x26,0x27,0x95,0x9a,0x1a,0x3c,0x92 }, { 0x26,0xa7,0x7a,0x72,0xfa,0xca,0xed,0x2a,0x45,0x1c,0xa1,0x24,0x78,0xcd,0xcd,0x93,0x43,0xa8,0x66,0x32,0xaf,0x10,0x09,0xa9,0xcf,0x12,0xe2,0x1f,0x0e,0x94,0x31,0xee,0x59,0xa3,0x9f,0xb9,0xc0,0x57,0xf6,0x53,0x23,0xfa,0xa2,0xe2,0x64,0xfc,0xab,0xec,0xa2,0x5c,0xe3,0xf6,0xee,0x7b,0xe9,0xc3,0xfd,0x6b,0xf8,0x37,0xcd,0xa8,0x69,0xb5 }, { 0x40,0xd0,0x63,0x3d,0x50,0xda,0x02,0x9b,0x6a,0x09,0x32,0x58,0xe7,0xb7,0xff,0x87,0xe5,0x7d,0x42,0xea,0xbd,0xe7,0xfe,0x5b,0x6e,0x5f,0x0c,0x8f,0xfc,0x64,0x53,0x9a,0x91,0x93,0x34,0x57,0x89,0x63,0xf7,0x20,0x45,0x72,0x59,0xcf,0x33,0xc2,0x2e,0x5f,0xb4,0x07,0x16,0x9d,0x61,0xe4,0x5b,0xba,0x10,0x73,0x0d,0x17,0x00,0x52,0xf0,0x4a }, { 0x10,0xda,0x82,0x62,0x80,0x9c,0xec,0xb9,0x65,0x9c,0x27,0x55,0x59,0xa1,0xc5,0xff,0xb0,0xbd,0x27,0x47,0x49,0x3e,0x08,0xd4,0x9f,0xfd,0x92,0xf4,0xea,0xf6,0x2c,0x60,0xbf,0xcc,0xe3,0x88,0xd6,0x18,0x67,0x95,0xe5,0x87,0x61,0x51,0x49,0xef,0x0b,0x8d,0xa2,0x66,0xa9,0xeb,0x03,0xe2,0xa8,0xc3,0xfa,0xc0,0xe4,0x04,0x72,0x99,0xf2,0x1e }, { 0xaf,0x38,0x22,0x6f,0xa8,0xfd,0x2c,0x12,0x15,0x05,0x29,0x8a,0x3f,0xcc,0x25,0x20,0x78,0x71,0x8f,0x38,0x0c,0xef,0x8c,0x4a,0x38,0x69,0xae,0x36,0x8d,0x08,0xad,0x6a,0x63,0x32,0xa9,0xfe,0x41,0x32,0xa8,0x87,0x3e,0x9a,0xaa,0x0f,0x3b,0x98,0x63,0xe1,0x87,0xfb,0x1c,0x02,0x3b,0xa2,0x9e,0xf6,0xe5,0xac,0xc3,0x4a,0x59,0x36,0x67,0xf4 }, { 0x3c,0xfc,0xb8,0x01,0x26,0x97,0xa8,0xc1,0x85,0xb1,0xb8,0xa9,0xda,0x35,0x2c,0x2b,0xc5,0xb7,0xe0,0xc7,0x10,0x49,0xcb,0xe6,0x81,0x1b,0x88,0x9e,0x7f,0x6b,0x29,0x1a,0x46,0x7a,0xdf,0x23,0x25,0xff,0x89,0x3f,0x8d,0xbb,0x27,0xb0,0xe5,0xb9,0xa0,0xa8,0x8c,0xb6,0xd8,0xaa,0x7f,0xa4,0xeb,0x97,0x8f,0x1c,0x01,0xe3,0x14,0x46,0x67,0xa6 }, { 0x05,0x4d,0x68,0xf5,0xe0,0x5b,0x16,0x3f,0xb3,0x44,0xde,0xbf,0x65,0x38,0xd7,0xa4,0xf9,0x73,0x1f,0xe0,0xb2,0xb9,0x3a,0x85,0x5c,0x69,0xad,0xc4,0x2c,0xb9,0xe9,0xf3,0x1e,0x14,0x1a,0x80,0x40,0x47,0xaa,0x0c,0x06,0xb0,0x75,0xdc,0x04,0x48,0xa7,0x2f,0x1f,0x2e,0xc5,0x1e,0x7c,0x91,0x5e,0x1d,0x97,0xef,0xf8,0xc8,0x36,0xfb,0xa6,0x3c }, { 0x49,0x79,0xd6,0x72,0x8b,0x75,0x97,0xfa,0x94,0xd9,0x55,0x22,0x34,0x60,0x4c,0xff,0xf8,0xfc,0x05,0x78,0xe0,0x29,0x18,0xdf,0xb7,0x0b,0x0e,0x35,0xcf,0x4a,0x73,0x4d,0x85,0xa2,0xac,0x64,0x81,0x32,0x26,0x9f,0x70,0x7d,0xaf,0x62,0x6c,0x31,0x04,0x63,0xc8,0xec,0xdb,0xa2,0xd3,0xa9,0x74,0x7c,0x3c,0x2a,0x17,0xd9,0xc0,0x51,0x9f,0x69 }, { 0x75,0x6d,0x81,0x73,0xdd,0x31,0x8c,0xb5,0x77,0x45,0xa6,0x70,0x9b,0xfc,0xbb,0x3f,0x08,0x3f,0xcb,0xb4,0xc1,0x02,0x89,0x39,0x3e,0xec,0x52,0x06,0xb1,0x94,0x6d,0xf1,0xf0,0xad,0x0b,0xf4,0x39,0xae,0xd4,0xc4,0xe7,0x3d,0x69,0x8d,0xe6,0x2f,0x3c,0x74,0xf4,0x52,0x97,0x12,0x55,0xa5,0x49,0xa7,0xad,0x02,0x6a,0x95,0x5e,0x60,0xbb,0x23 }, { 0x11,0xd9,0x16,0x96,0x81,0xfe,0xc6,0xee,0x39,0x86,0x37,0x58,0x98,0x1c,0x6a,0xb9,0xb6,0x06,0x8e,0x41,0x44,0x17,0x3d,0x27,0x60,0x12,0x6d,0xd4,0x26,0x55,0xaf,0xff,0x17,0x8c,0x13,0xab,0xb5,0xb6,0x88,0x7b,0x1e,0xbb,0x10,0x48,0x16,0xc4,0x70,0x8c,0x9d,0xe7,0x91,0xf9,0xae,0x82,0x29,0x94,0x23,0x7a,0x45,0xcf,0x93,0x39,0x89,0x58 }, { 0x2f,0xa8,0x0f,0xde,0x83,0x41,0xc0,0x6a,0x3c,0xf4,0xaf,0x17,0x07,0x01,0xc7,0x9b,0xcc,0x08,0x05,0x4f,0x52,0x78,0x17,0x92,0x27,0xe7,0x35,0xb2,0xeb,0x1d,0xc9,0x61,0x66,0xf0,0x53,0xfc,0x8e,0xb8,0x65,0x91,0xb1,0x0b,0x53,0x73,0x79,0xb5,0x27,0x63,0xb9,0x3d,0x76,0x6f,0xf6,0x2e,0x70,0x12,0x8e,0x62,0xb5,0x8f,0x03,0x28,0x3d,0xf6 }, { 0xc1,0xa7,0xae,0x1f,0x7c,0xf1,0x35,0x9a,0x8b,0x59,0xaf,0xa1,0x22,0x70,0x31,0x95,0x0e,0x0a,0x66,0x55,0xbd,0xa7,0xa5,0x1e,0x04,0xc1,0x91,0x4a,0x9e,0xaa,0xf8,0x31,0xa9,0x29,0xe5,0x75,0xa1,0x9d,0x08,0x8f,0xeb,0x33,0x52,0x68,0x11,0xb0,0x2e,0xac,0xf4,0x2e,0xd0,0x68,0x0c,0xaf,0x8f,0x91,0x68,0x90,0x80,0x2d,0xab,0xf9,0x7f,0x28 }, { 0xc4,0xa9,0x31,0xbd,0x5b,0x60,0xd9,0xf4,0xe1,0xce,0x8e,0x9e,0x40,0x95,0x01,0xd7,0x6c,0x4a,0x9c,0x08,0x83,0x86,0x4b,0x94,0x3f,0xc3,0x3c,0x08,0x29,0x6d,0x1d,0x3f,0x30,0x04,0x97,0xd9,0x93,0x7c,0x68,0xb3,0x0f,0x3c,0xca,0xf2,0xba,0xe5,0x59,0x9d,0x68,0x47,0x64,0x94,0x75,0xe4,0xa8,0x1d,0xa2,0x84,0x81,0x17,0x6e,0xbe,0x76,0x62 }, { 0x84,0x90,0x02,0x3d,0xcb,0x12,0x8e,0x39,0xb4,0xda,0x40,0x69,0xd5,0xaf,0x10,0x7c,0x52,0x18,0x30,0x4a,0xe8,0x7a,0xc8,0xf8,0xbe,0x9d,0x9b,0xd6,0xec,0x08,0xe9,0x61,0xa1,0x0a,0xdd,0x02,0xa6,0xc0,0xb5,0xa7,0x0a,0x8c,0x70,0x92,0x2e,0xe2,0xbf,0xa0,0x67,0x10,0xc3,0x56,0xd5,0x66,0x6e,0xac,0x61,0x3b,0x7f,0xe9,0x61,0x11,0xf4,0x36 }, { 0x02,0x68,0xba,0xac,0x46,0x63,0x91,0xef,0x78,0xf9,0x3e,0xdc,0xb0,0x46,0xf3,0x87,0x0e,0x6e,0x8d,0x37,0x74,0xcd,0xcb,0x3b,0xd5,0xc5,0x7b,0x27,0xd7,0x54,0xe7,0x16,0x02,0xb2,0x85,0x44,0x73,0xb5,0x74,0xdf,0x7d,0x5a,0xc9,0xce,0x4d,0x50,0x9d,0xc2,0x7c,0x2c,0xea,0x5e,0x28,0xa1,0x47,0xcc,0x56,0x8c,0x6e,0x16,0x41,0x9a,0x29,0x81 }, { 0xca,0x81,0xfc,0x1a,0xc6,0x93,0x1a,0x79,0x2f,0x7b,0xd0,0xb4,0xdc,0x0e,0x72,0x7c,0xdf,0x9e,0x64,0x8d,0xeb,0xd4,0xde,0xdf,0xa7,0x89,0x13,0x4b,0x20,0xc7,0x1c,0x73,0x4f,0xaf,0xa5,0xbf,0xf9,0xf1,0x0d,0xc8,0xa7,0xd0,0x40,0x07,0x9f,0x89,0x07,0x51,0x02,0x6f,0x8b,0xb9,0x0e,0x27,0xf0,0xfc,0x35,0x71,0x2b,0xd4,0x8c,0x9b,0x8b,0xca }, { 0x71,0xc9,0x9e,0x52,0x86,0xb1,0x75,0x63,0x8a,0x71,0xd9,0xf5,0x96,0x95,0xee,0x5f,0x8e,0x8b,0xaf,0x3c,0xe8,0x64,0xba,0xf8,0x6b,0x05,0x13,0x12,0x6d,0x2c,0xd2,0x3f,0xb9,0xa6,0xa2,0x45,0x63,0x9d,0x9a,0x28,0x7c,0x0e,0xb7,0x17,0x99,0xd8,0x1c,0x12,0xd5,0x73,0xf0,0xea,0x09,0xd7,0x83,0xe3,0xb0,0x0b,0x0d,0xe8,0xe3,0xf4,0xcb,0xae }, { 0x43,0xf3,0xa5,0xf7,0x3c,0x73,0x91,0x55,0xf9,0x04,0x8a,0x59,0xef,0xba,0x19,0x35,0x5c,0xcd,0xd8,0xdf,0x90,0x5c,0xa5,0x02,0x4a,0x3f,0xf3,0xe8,0x51,0xa5,0x1e,0x3f,0xdc,0x11,0xd6,0xe3,0xb5,0xb7,0x09,0xbd,0xbe,0xcb,0xa3,0x93,0x22,0x38,0x15,0x85,0x80,0x29,0xb5,0x3c,0x5a,0x26,0xca,0xd9,0xaf,0x5e,0x8f,0xe9,0xce,0x0e,0x80,0x3c }, { 0x6f,0x15,0xf6,0x3c,0xdd,0x3d,0x40,0x6a,0xb5,0x0f,0x9d,0x70,0xf4,0x7f,0x51,0x8c,0xc7,0xaa,0xda,0xa0,0x25,0xa2,0xa1,0x67,0x5f,0x7f,0x09,0xf6,0xba,0x2e,0x31,0x3d,0x5c,0x2b,0x8a,0x91,0x80,0xb4,0x6c,0xfd,0x26,0x8c,0xa2,0xde,0x36,0x9e,0x2b,0xfc,0x56,0x91,0x2b,0x97,0x47,0xe6,0x84,0xd0,0x7a,0xad,0x48,0xa4,0xa0,0xb5,0x41,0xdf }, { 0x39,0x03,0x45,0xfd,0xe0,0x5e,0xa2,0xde,0x98,0xb1,0xf7,0x31,0x58,0xbc,0x11,0x6e,0x6d,0x2e,0x5e,0xc5,0xe4,0x34,0x83,0xd8,0xda,0x9d,0x03,0x64,0xd2,0xee,0xd4,0xca,0xf6,0x51,0xd3,0x61,0x74,0xbc,0xef,0x53,0x69,0xb1,0xed,0x4b,0x34,0x9d,0x89,0x78,0x43,0xa9,0xc6,0x68,0x15,0x71,0x6c,0x91,0x36,0x42,0xf9,0x09,0xbe,0x5a,0x76,0x15 }, { 0xcb,0xe2,0x01,0x7c,0x82,0xae,0x59,0x94,0xe0,0x61,0x5d,0x0d,0xa8,0x0a,0x79,0x86,0xdb,0xe2,0x14,0x77,0x4a,0x98,0xe1,0x67,0xea,0xc0,0x4a,0x0f,0xaf,0x3e,0x62,0xe1,0x22,0x0d,0xdb,0x9a,0xa8,0x00,0x8f,0x3c,0x64,0x4f,0xbc,0x2c,0x8e,0xad,0x50,0xcc,0x79,0xc2,0xc7,0xc3,0x81,0x82,0x61,0x35,0xca,0x06,0x44,0xb8,0x3b,0xf8,0xb8,0xc2 }, { 0xf0,0x8c,0xf9,0x65,0xa7,0x92,0x60,0xf1,0x4a,0x50,0x47,0xb4,0x29,0x8a,0x87,0xd8,0xe4,0x99,0xc2,0x25,0x46,0x5e,0x94,0x2b,0x65,0x36,0x8f,0x8b,0x69,0x51,0xe0,0x4d,0xd7,0xd6,0x10,0x07,0x10,0xd7,0xf0,0x77,0x3a,0x92,0x41,0x8e,0xe9,0x8b,0x1b,0x9e,0x27,0x5c,0x3e,0xde,0x9e,0xc1,0xdc,0xa5,0x72,0x29,0x19,0x09,0x14,0x2d,0x0a,0x59 }, { 0xe0,0x3e,0x5f,0x6d,0xd9,0x32,0xef,0x32,0xa8,0x31,0x83,0xc2,0x40,0x3d,0x2f,0x3f,0x89,0x67,0x81,0xa8,0xd1,0x13,0x2d,0xde,0x95,0x80,0x2d,0xbb,0xca,0xf8,0xba,0x98,0xe4,0x3e,0xc6,0x99,0xa6,0x01,0x5c,0xa8,0x59,0xa6,0xb7,0x2a,0x7c,0x44,0xf0,0xe3,0x71,0x15,0x43,0x8b,0x24,0xdb,0x8e,0x23,0xe1,0x78,0x03,0xf5,0x7c,0xa4,0x56,0x9e }, { 0x3a,0x8e,0x63,0x9d,0x7c,0x1a,0x66,0x3e,0x15,0xb3,0x36,0xc1,0x66,0x71,0x00,0x64,0x90,0xcf,0xb8,0xd8,0x08,0x7e,0x31,0x86,0xa0,0x38,0x38,0x6d,0x51,0x07,0x43,0xd3,0x9e,0xf8,0xc9,0xc0,0x08,0xd3,0x02,0xb1,0xd2,0xb9,0xc7,0x05,0xac,0xdd,0x9f,0xfb,0xdb,0xa6,0x93,0xd4,0x20,0x77,0x98,0xad,0x62,0xd4,0x1b,0xce,0xb0,0x0c,0x30,0xe6 }, { 0x46,0x56,0x10,0x59,0xd4,0x4a,0x39,0x54,0x21,0xab,0xe3,0x82,0x4d,0xfa,0x68,0xb8,0x9e,0xc9,0xf6,0x4c,0x81,0x58,0x73,0x94,0x9a,0xd6,0x09,0x3c,0xe8,0x30,0x2b,0xbc,0x94,0x71,0xd0,0x1a,0xdf,0x10,0x8e,0x02,0xd6,0x03,0x4b,0xc2,0x19,0xe4,0xfc,0x4f,0xa7,0x80,0x5c,0xc8,0x85,0x1c,0x74,0x58,0x43,0xf3,0x8b,0x65,0xa5,0x4d,0x76,0x97 }, { 0xa7,0x3d,0xe1,0xcf,0x84,0x58,0xd8,0x09,0xe6,0x3e,0x2c,0x5f,0x28,0x78,0x47,0xba,0x34,0x25,0x1f,0xd6,0x19,0x44,0x0b,0xed,0x61,0x63,0x25,0x24,0xf8,0x7d,0xfa,0x70,0x64,0x37,0xe3,0x48,0xc7,0x29,0x07,0x07,0x31,0x68,0x9b,0x5b,0xb0,0x3d,0x7f,0xb2,0xff,0xd5,0xf4,0x1d,0x67,0x96,0x1f,0x90,0xd9,0x78,0x47,0xe1,0xa2,0xd0,0x25,0x93 }, { 0x4b,0xdc,0x1d,0x8c,0x9b,0x24,0x21,0x04,0x65,0xf8,0x10,0xe1,0x56,0x7c,0xb6,0xec,0x03,0xf8,0x9d,0xcd,0x91,0x9a,0x5f,0xad,0x9a,0x6c,0xdb,0x74,0x1a,0x6c,0x7e,0x43,0xc7,0xc9,0x2d,0xaa,0xb9,0x34,0x26,0x8f,0xfc,0x75,0x66,0xc6,0xf4,0xe0,0xa4,0xfa,0xe2,0xc4,0x3f,0x25,0xf8,0x08,0x9c,0x68,0x63,0xd2,0xa4,0xd6,0x1a,0xcc,0x13,0xb8 }, { 0x50,0x0a,0xc8,0x67,0xa8,0x87,0x1d,0x36,0xfe,0x4f,0x8c,0x7b,0x0c,0xe8,0x32,0x60,0x95,0x0c,0x83,0xff,0x60,0xa2,0x1a,0x53,0x52,0x6f,0xae,0x55,0xc8,0xc8,0xfc,0xf1,0x0f,0x64,0xbb,0xde,0x79,0xd1,0x7b,0x4a,0x72,0x9c,0x80,0x60,0x61,0x1c,0x90,0x30,0xca,0x83,0xe7,0x88,0xca,0x90,0x19,0x75,0x4f,0x65,0xed,0x09,0xae,0xf7,0x27,0xd2 }, { 0x4b,0x69,0x00,0x3e,0x50,0x6f,0x58,0x26,0xa1,0x01,0xc4,0x11,0x69,0x21,0x10,0xe9,0x07,0x32,0x78,0xea,0x70,0x8e,0x25,0x02,0xfd,0xad,0x3c,0x61,0xdc,0xd0,0x19,0x89,0xee,0x6e,0x45,0x86,0x68,0x85,0x0e,0x42,0xa8,0x52,0xf8,0x9f,0xba,0xf9,0x19,0xe4,0x38,0x64,0xfb,0x02,0x67,0xf1,0x93,0x8b,0x37,0x03,0x7e,0x7f,0x0e,0xcb,0x4f,0xdd }, { 0xae,0x79,0xfb,0xff,0x99,0xb5,0x0c,0x21,0x6f,0x01,0xa9,0x15,0xb2,0x1f,0xb5,0x41,0x00,0xff,0xfc,0x01,0xb9,0xb5,0x75,0x89,0x03,0x48,0xfc,0xec,0x3f,0x3f,0x87,0x25,0x53,0x92,0xad,0x5c,0xe5,0xbd,0xc2,0x37,0xc5,0x97,0x28,0x57,0x7a,0xdc,0x6d,0x01,0x2d,0xa2,0x9b,0x37,0x8f,0xf8,0x20,0x57,0x8d,0x33,0x3b,0x63,0xd3,0x21,0xee,0x6e }, { 0x1b,0xaf,0x5e,0x8f,0x15,0x7a,0xbc,0xdf,0x0d,0x4d,0x5a,0x0e,0xef,0x1e,0xbf,0xfe,0x41,0x44,0xb8,0xd7,0xd5,0x02,0x1b,0x49,0x77,0x81,0xa8,0x4b,0xf8,0xed,0x55,0xa4,0x74,0x02,0xd2,0x95,0x75,0x08,0x7b,0xb5,0x7b,0x8e,0x5a,0xb1,0xc0,0xe2,0xc8,0x82,0x82,0x18,0xbd,0x3c,0xc8,0xe0,0xc3,0x33,0x11,0x35,0x35,0xa9,0x65,0xd5,0x21,0x7d }, { 0x0d,0x65,0xae,0x6a,0x93,0xb3,0x9b,0x53,0x44,0xbf,0xf5,0x29,0xe9,0x99,0xc9,0x39,0x06,0x92,0x13,0xa4,0xc4,0xaf,0xb3,0xda,0xca,0x5e,0xbf,0x90,0x42,0x58,0xeb,0x65,0xb5,0x6c,0x4b,0x93,0xad,0x6b,0x5f,0xda,0x12,0xf5,0x4b,0x54,0xdd,0xbe,0x6d,0x44,0x12,0xa5,0xa6,0x3b,0xee,0xd7,0x37,0x5a,0xce,0xa5,0xda,0xc2,0xc6,0x16,0xb6,0xd2 }, { 0x11,0xd2,0x57,0xc5,0x1f,0x93,0x91,0x46,0x16,0x68,0x24,0x77,0x20,0xbf,0x62,0xcf,0xec,0x11,0x5b,0x7d,0x04,0x1b,0x36,0x16,0xe4,0x70,0x37,0xa1,0x3e,0x17,0xc5,0xcf,0x7a,0x3a,0xc5,0x99,0x40,0xf9,0xd7,0x80,0x88,0xb3,0x5a,0xc1,0xe8,0x85,0x6b,0x37,0xb3,0x16,0xf4,0x1b,0xd9,0x34,0xc6,0x2d,0x21,0x67,0x84,0x20,0x8e,0xa2,0x2f,0x59 }, { 0x58,0x69,0x3b,0xb9,0xdd,0x7d,0x04,0x1a,0x35,0x57,0x3a,0x08,0x19,0xec,0x00,0x61,0xc1,0x27,0x27,0x77,0xed,0x8e,0x1b,0xd1,0x26,0x37,0x57,0x82,0x10,0x95,0x5d,0x7f,0x53,0xf7,0x64,0x8c,0x39,0xc9,0xdb,0x7d,0x56,0xef,0x0a,0x33,0xf3,0xec,0xe6,0x78,0x2e,0xbe,0x1d,0x51,0x45,0x8b,0x01,0x3b,0xf7,0x89,0xe3,0xbd,0x49,0xee,0x63,0x56 }, { 0xf1,0x8b,0xa4,0xa3,0x8a,0xb6,0x19,0xc2,0xe1,0x31,0x9c,0x01,0x39,0x09,0x0d,0xbb,0xe3,0xb0,0xe0,0xbb,0x73,0x24,0xc6,0x75,0x47,0x91,0xde,0xa4,0x84,0x2e,0x62,0xb8,0x17,0x5c,0xe9,0xa4,0xda,0xd3,0x12,0xbd,0x98,0xa6,0x2a,0x40,0xa9,0xff,0xf8,0x07,0x7e,0x19,0x5e,0x26,0x6f,0xc6,0x09,0x3d,0x7a,0x29,0xd1,0xb0,0x6e,0x4f,0x82,0x08 }, { 0xfc,0xe7,0xb6,0x9a,0xe9,0x9b,0xa7,0xe7,0x76,0x0e,0x2c,0x93,0x81,0x87,0xfe,0x3c,0x8c,0xd1,0x24,0x8a,0xea,0x9c,0x56,0xdd,0x22,0x0d,0x78,0x8f,0x0c,0xbc,0x1e,0xbd,0xfd,0xa8,0x77,0xa6,0x9c,0xea,0x9d,0xdb,0x20,0xb7,0x97,0x74,0x7a,0x27,0xad,0x58,0x04,0x8f,0x0d,0xba,0xaf,0xd9,0x88,0xac,0x9f,0xbc,0x92,0x66,0xe7,0x2f,0x22,0xb9 }, { 0x5e,0xa2,0xa0,0xed,0xa1,0xb7,0x85,0x0b,0xa7,0xa9,0x03,0x96,0xb8,0xf7,0x1a,0x69,0x4f,0x8e,0x95,0x9c,0xd4,0xa3,0xb4,0x81,0x61,0x2f,0x82,0x14,0xd1,0xa0,0xc0,0xaf,0x73,0x19,0x30,0xd2,0xe4,0xc7,0xfc,0x73,0xc1,0x49,0xb2,0x46,0x73,0x5b,0x73,0xe7,0x6a,0x73,0x0f,0x4a,0xad,0x60,0xb3,0x9b,0xdd,0xd7,0xf5,0x5d,0x48,0x21,0x3e,0x39 }, { 0x38,0xd3,0x25,0xe1,0x08,0x9a,0xd7,0x4a,0x34,0x17,0x64,0x31,0x87,0xae,0xea,0x1c,0xdb,0x8d,0x6f,0x8a,0x81,0x84,0xd0,0xf5,0x5e,0xaf,0xe7,0x61,0x54,0x38,0x23,0x33,0xd7,0x4e,0x41,0x52,0x8f,0xd1,0x3c,0x49,0xeb,0x2f,0xd6,0x55,0xf4,0xf3,0xa9,0xa5,0x87,0xe1,0xb1,0x5d,0x90,0x78,0xde,0xe0,0x98,0xf0,0x10,0x4a,0x9a,0x8c,0x84,0x1f }, { 0x43,0x48,0x5a,0x0e,0xae,0x20,0x24,0x2c,0xcf,0x01,0x49,0x9c,0x2f,0xa4,0x1c,0x6c,0x8a,0xb4,0xd1,0x6e,0x35,0xf3,0xd5,0x1e,0x10,0xe5,0x00,0x26,0xcf,0x7a,0xb9,0x91,0x89,0x79,0x79,0xb2,0x81,0x10,0x5c,0x5e,0x7f,0xa6,0x7d,0xa3,0xd5,0xa1,0x81,0xcf,0xcc,0x86,0x66,0xb2,0x7c,0x4d,0x19,0x04,0x64,0x79,0x0d,0xd8,0x96,0xa0,0x41,0x9e }, { 0xf0,0x33,0x31,0x75,0xfc,0xb0,0x27,0x79,0xf1,0x18,0xb6,0x12,0x8b,0x43,0x29,0x62,0xb9,0x35,0xbb,0xf5,0x6a,0xb7,0xfe,0xda,0xf7,0xac,0xdf,0xee,0x49,0xae,0xad,0x3d,0xdf,0x40,0x8c,0xcf,0x0e,0x03,0xc4,0x2a,0x34,0xb8,0xe8,0xad,0x95,0xa1,0x01,0xdc,0x4e,0xed,0xfc,0x67,0x4e,0xc0,0x94,0xa3,0xb9,0xe9,0x9a,0xf2,0xe5,0xc4,0xfc,0x01 }, { 0xb3,0xa3,0x74,0xa1,0xd3,0x5e,0x78,0xc0,0xa0,0xab,0x49,0xf9,0x88,0xe6,0x95,0x78,0x0a,0x0e,0x03,0x61,0x87,0xbc,0xce,0xaf,0x26,0x19,0x23,0x72,0x5f,0x4f,0xec,0x4a,0x8b,0x13,0xd5,0xfe,0xc7,0x06,0x18,0x50,0x16,0xd0,0xca,0xcb,0x72,0x2c,0x8f,0x23,0x95,0x05,0x1d,0xc2,0xd6,0xf0,0x94,0x5e,0xbf,0x6e,0x4c,0xb0,0x27,0x93,0xf9,0x03 }, { 0x61,0x7d,0x6f,0x47,0x3c,0x7b,0x5b,0x89,0xed,0x00,0xb2,0xcd,0x6c,0x97,0xbd,0x1e,0xcd,0x8c,0x8b,0x3e,0x48,0x9d,0x61,0xc0,0x0a,0xc5,0xd5,0x07,0x33,0x57,0xa9,0xc5,0x8a,0xad,0xb5,0x54,0xf5,0x6b,0xdb,0xa9,0x00,0x36,0x93,0x4f,0xe4,0x53,0x16,0xad,0x42,0x80,0x6e,0x86,0x5b,0x8a,0x7d,0x8c,0x55,0x95,0xc6,0x0d,0xad,0xb7,0x06,0x4a }, { 0x23,0x77,0x6b,0x8f,0x63,0xa9,0x08,0x69,0x15,0xee,0x2b,0x48,0x74,0x4f,0x3d,0x8a,0x3d,0x20,0xdd,0x82,0x84,0x44,0xf5,0x9e,0x9b,0xbf,0xce,0xa5,0xc4,0x6c,0xdc,0x1c,0x75,0x2f,0x0a,0x93,0x10,0x50,0x35,0xc7,0xbc,0x07,0xe0,0x35,0x2c,0x25,0x30,0x2c,0xe9,0xf5,0xe1,0xb7,0x7b,0x8b,0x7c,0x38,0xe1,0x9a,0x13,0xd7,0xec,0xbc,0x96,0x5d }, { 0x10,0x6c,0xf9,0xac,0x5d,0x23,0x49,0xac,0x48,0x60,0xf6,0x13,0xa3,0xf1,0x66,0xdc,0xa5,0xec,0xed,0x85,0xe5,0xdb,0x33,0x99,0xad,0xd2,0xed,0x3a,0x28,0x2a,0x1c,0x1a,0x12,0xc9,0xd4,0x20,0xce,0xab,0x90,0x93,0x39,0xb1,0x05,0xea,0x42,0x98,0xcf,0x4a,0x89,0xec,0x38,0xb1,0x48,0x21,0xec,0x1f,0x13,0xc7,0x43,0x21,0x14,0xec,0xe8,0xf2 }, { 0x82,0x77,0x96,0xff,0x4f,0xb5,0x8d,0xc1,0x89,0x79,0xec,0xb3,0x88,0x2c,0xb0,0xf9,0xbe,0x5b,0xf2,0xae,0x97,0x81,0xaf,0xa6,0xb4,0x6b,0x5c,0xd4,0x45,0xfc,0x44,0x56,0x43,0xe3,0xcc,0x8b,0xdf,0xc4,0x65,0xb3,0xd1,0xad,0x09,0xe5,0x7e,0x85,0xee,0x2b,0xf4,0xd0,0x04,0xf2,0x0b,0x49,0x55,0x30,0xad,0x3c,0xf8,0x32,0x79,0x16,0x2a,0xc8 }, { 0xd7,0xe7,0x4a,0x64,0xa4,0x0f,0x76,0xcd,0x2a,0x2b,0xaa,0xd3,0x46,0x19,0x15,0x42,0xab,0x25,0x4f,0xe3,0x44,0x2e,0x3a,0xa5,0xe1,0x7a,0x4d,0x4f,0x48,0xf1,0xc1,0x35,0xb0,0x44,0xf0,0x47,0x7f,0xe2,0xac,0x34,0xe8,0xb6,0x34,0x2d,0xa6,0xe2,0xd9,0xb5,0x80,0x2a,0x1b,0x32,0xb2,0x68,0xcd,0xdd,0xd1,0x29,0x59,0xc0,0x56,0x81,0x21,0x95 }, { 0xcd,0x40,0x15,0x33,0x0a,0xeb,0x6c,0x7e,0x35,0x68,0x2f,0x65,0xdb,0x83,0x51,0x01,0xe5,0x5b,0xc4,0xed,0x5c,0x4e,0x73,0x3a,0x17,0x31,0x5d,0xd5,0x6b,0xe9,0xe8,0xbf,0xd8,0xfd,0x11,0xb1,0xb8,0xfa,0x38,0xee,0xc9,0x9a,0x80,0x33,0x0c,0x01,0x68,0x73,0x82,0xb4,0xb7,0x4b,0xff,0x68,0x5e,0x8a,0xf7,0x82,0x46,0x67,0x67,0x1f,0x1b,0x32 }, { 0xb4,0x5a,0xdf,0x39,0x60,0x98,0x84,0xf2,0x99,0x39,0x6b,0x67,0xe4,0x08,0x35,0xf9,0x8c,0x97,0xa1,0xf4,0x10,0x9a,0x4e,0x13,0xe0,0x8c,0xe1,0x79,0xfc,0x55,0xb2,0x5d,0xc7,0xdc,0x4d,0xba,0x46,0x30,0x57,0xc2,0xa7,0x11,0xa6,0x45,0x9d,0x37,0x5d,0x69,0x16,0x08,0x7b,0x42,0x0a,0x1d,0x5d,0xad,0xb8,0xd4,0xe4,0x92,0xc7,0x8e,0x6b,0xe6 }, { 0x4f,0xf9,0x55,0x91,0xd1,0xb3,0x9f,0xaa,0xb3,0x2e,0x37,0x53,0x3e,0x0b,0xb5,0x55,0x6a,0x58,0xbd,0x5f,0x67,0x7d,0x12,0xae,0x76,0x1a,0x87,0xbb,0xed,0xbe,0xa1,0xd5,0x79,0xda,0x7b,0x4a,0x91,0x23,0xfa,0x06,0x57,0x29,0x7f,0x3a,0x16,0x2e,0x08,0x64,0x52,0xee,0x6a,0xbf,0xfa,0xb8,0x61,0xb2,0x98,0x74,0x9a,0x21,0xe7,0xf1,0x7c,0x9b }, { 0xba,0x92,0xa5,0xe4,0x7a,0xb2,0x32,0x40,0x06,0xe9,0x0d,0x2d,0x23,0xac,0x03,0x85,0x86,0x1a,0x8a,0xbf,0xc2,0xf1,0x2c,0x13,0x73,0x56,0xe8,0x78,0x62,0x5c,0x93,0x3b,0x37,0x02,0xf7,0xdb,0xee,0x50,0x20,0x48,0xde,0xd2,0x42,0x4a,0xb4,0x5f,0x47,0xca,0xec,0xd2,0xf8,0xd9,0xa7,0xe1,0x98,0xfa,0x84,0x2e,0x8a,0xf7,0x63,0x7c,0xca,0x6d }, { 0xdb,0x09,0x43,0xc5,0x83,0xd0,0x1c,0x5e,0x81,0x95,0x10,0xb5,0x4e,0x60,0xf1,0xcc,0x9f,0x8c,0x6e,0x46,0x95,0x6d,0x66,0xc0,0x19,0x65,0x03,0x80,0xc2,0xc0,0x7e,0x9c,0xe7,0x1c,0x3e,0x2a,0x34,0x64,0x26,0x7f,0x0b,0xef,0x1d,0x2c,0xc9,0xf5,0xd8,0xbf,0x17,0x22,0xf0,0x3e,0xba,0xee,0x6c,0x3a,0xe4,0x4f,0xa0,0x4e,0xd2,0x29,0x19,0x7c }, { 0xc7,0xdc,0xe3,0xf3,0xfb,0xf2,0x49,0xeb,0x21,0x9e,0xea,0xe4,0x90,0x9b,0x24,0x5f,0xc5,0x7e,0xfd,0x47,0x0d,0xd4,0xd3,0x3e,0xdc,0x04,0x1e,0xde,0x63,0x1f,0x37,0x4a,0xbf,0xda,0x22,0x09,0xbf,0x30,0x9b,0x8e,0x52,0xa8,0x88,0x02,0x65,0x19,0x80,0xee,0x2d,0x9d,0x43,0x93,0xd9,0x70,0x18,0xba,0x32,0x73,0x2c,0x3f,0x8f,0xba,0x40,0x4e }, { 0xcc,0x81,0xbe,0x13,0xdb,0xe8,0x2b,0xbd,0x71,0x9b,0xa1,0xee,0xa7,0x06,0xe4,0x6f,0x1f,0x98,0xb4,0x86,0xb0,0x8f,0x77,0xa0,0xfc,0xd4,0x6c,0x2a,0x31,0x5a,0x8d,0xef,0xd5,0xc9,0x22,0xee,0x3b,0x1f,0x2f,0x66,0x82,0x21,0x16,0x07,0x85,0xce,0xdd,0x99,0xa5,0x3c,0x50,0x00,0x6a,0xaa,0xdb,0xa3,0x3f,0x63,0x34,0xc2,0x09,0x7c,0x34,0x09 }, { 0x19,0xf3,0xf5,0x7b,0x53,0x0c,0x7f,0xdc,0xf4,0x82,0x46,0xce,0x0a,0x14,0x22,0xaa,0x36,0xee,0x52,0x3e,0x0b,0x59,0x0b,0xf5,0x11,0xf6,0x65,0x29,0x9f,0xeb,0x7b,0x34,0x2b,0x6a,0xdb,0x6b,0x9b,0x89,0x33,0x2f,0xd2,0xb0,0xd9,0x3b,0xd5,0x05,0x3e,0x99,0x3c,0x01,0x42,0x70,0x5d,0xaa,0xdb,0xbb,0xd8,0x3a,0x04,0x4f,0xc3,0x86,0x74,0xc4 }, { 0xf7,0x2c,0xbd,0x24,0x0e,0x26,0xc0,0xd2,0x1b,0x10,0x23,0x17,0x95,0x86,0xeb,0x53,0x2c,0x61,0x02,0xc4,0x9c,0x36,0x77,0xcc,0x1a,0x3d,0x13,0x2b,0x9d,0xb9,0xd3,0x1a,0x43,0xe4,0xca,0x77,0xe2,0xa3,0x66,0x21,0xdc,0x0d,0xbd,0x91,0xbf,0xe7,0xa5,0xd2,0x23,0x25,0x0e,0xf0,0xcd,0xca,0x83,0x1e,0xe4,0x53,0xd9,0x3f,0xa8,0x34,0x08,0xa7 }, tinyssh-20180201/crypto-tests/precomp_nistp256.data.py000066400000000000000000000037421322704306500225430ustar00rootroot00000000000000import binascii p = 2**256 - 2**224 + 2**192 + 2**96 - 1 basepx = 0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296 basepy = 0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5 B = (basepx, basepy) def expmod(b, e, m): if e == 0: return 1 t = expmod(b, e/2, m)**2 % p if e & 1: t = (t * b) % p return t def inv(x): return expmod(x, p - 2, p) def add(P, Q): """ """ x1 = P[0] y1 = P[1] x2 = Q[0] y2 = Q[1] x3 = ((y2-y1)**2)*inv((x2-x1)**2)-x1-x2 y3 = (2*x1+x2)*(y2-y1)*inv(x2-x1)-((y2-y1)**3)*inv((x2-x1)**3)-y1 return [x3 % p, y3 % p] def dbl(P): """ """ x1 = P[0] y1 = P[1] x3 = (3*x1**2-3)**2 * inv((2*y1)**2)-x1-x1 y3 = (2*x1+x1)*(3*x1**2-3)*inv((2*y1))-(3*x1**2-3)**3*inv((2*y1)**3)-y1 return [x3 % p, y3 % p] def scalarmult(P, e): if e == 0: return [0,0] if e == 1: return P Q = scalarmult(P, e/2) Q = dbl(Q) if e & 1: Q = add(Q, P) return Q def pack(n): n = n % p r = "" for i in range(32): r = "%s%s" % (chr(n & 255), r) n = n >> 8 return r def unpack(s): r = 0 for i in range(32): r <<= 8 r += ord(s[i]) return r def publickey(sk): a = unpack(sk) A = scalarmult(B, a) return "%s%s" % (pack(A[0]), pack(A[1])) f = open("precomp.txt") def l(line): l = "" for i in range(64): if i == 63: l += "0x%s%s" % (line[2*i], line[2*i+1]) else: l += "0x%s%s," % (line[2*i], line[2*i+1]) return l while True: line=f.readline() if len(line) == 0: f.close() break print "{", l(binascii.hexlify(publickey(binascii.unhexlify(line[0:-1])))), "}," tinyssh-20180201/crypto-tests/randombytestest.c000066400000000000000000000037731322704306500215410ustar00rootroot00000000000000/* 20140318 Jan Mojzis Public domain. */ #include #include #include #include #include "misc.h" #include "randombytes.h" static int verify(const unsigned char *x, const unsigned char *y) { unsigned int i, d = 0; for(i = 0; i < 16; ++i) d |= x[i] ^ y[i]; return (1 & ((d - 1) >> 8)) - 1; } static int readall(int fd, unsigned char *x, long long xlen) { long long r; while (xlen > 0) { r = read(fd, x, xlen); if (r <= 0) return -1; x += r; xlen -= r; } return 0; } static int writeall(int fd, unsigned char *x, long long xlen) { long long r; while (xlen > 0) { r = write(fd, x, xlen); if (r <= 0) return -1; x += r; xlen -= r; } return 0; } static void run(unsigned char *x, long long xlen) { pid_t pid; int status, fromchild[2]; unsigned char buf[16]; if (pipe(fromchild) == -1) fail("pipe() failure"); pid = fork(); if (pid == -1) fail("fork() failure"); if (pid == 0) { close(fromchild[0]); randombytes(buf, sizeof buf); if (writeall(fromchild[1], buf, sizeof buf) == -1) _exit(111); _exit(0); } close(fromchild[1]); if (readall(fromchild[0], x, xlen) == -1) fail("read() failure"); while (waitpid(pid, &status, 0) != pid) {}; if (!WIFEXITED(status)) fail("process killed"); if (WEXITSTATUS(status)) fail("process exited with status != 0"); } int main(void) { unsigned char buf1[16]; unsigned char buf2[16]; run(buf1, sizeof buf1); run(buf2, sizeof buf2); if (verify(buf1, buf2) == 0) fail("randombytes() cryptographically dangerous"); randombytes(buf1, sizeof buf1); randombytes(buf2, sizeof buf2); if (verify(buf1, buf2) == 0) fail("randombytes() cryptographically dangerous"); run(buf1, sizeof buf1); run(buf2, sizeof buf2); if (verify(buf1, buf2) == 0) fail("randombytes() cryptographically dangerous across fork()"); _exit(0); } tinyssh-20180201/crypto/000077500000000000000000000000001322704306500147745ustar00rootroot00000000000000tinyssh-20180201/crypto/CRYPTOLIBS000066400000000000000000000007341322704306500164150ustar00rootroot00000000000000crypto_onetimeauth_poly1305.o aes.o crypto_core_aes256encrypt.o randombytes.o uint32_pack.o uint32_unpack.o uint32_pack_big.o uint32_unpack_big.o crypto_stream_chacha20.o verify.o crypto_verify_16.o crypto_verify_32.o crypto_hash_sha512.o sha256.o crypto_hash_sha256.o crypto_auth_hmacsha256.o fe.o fe25519.o ge25519.o sc25519.o fep256.o gep256.o scp256.o crypto_scalarmult_curve25519.o crypto_sign_ed25519.o crypto_scalarmult_nistp256.o crypto_sign_nistp256ecdsa.o cleanup.o tinyssh-20180201/crypto/CRYPTOPRIMITIVES000066400000000000000000000006661322704306500173630ustar00rootroot00000000000000crypto_int64 0 crypto_uint16 0 crypto_uint32 0 crypto_uint64 0 crypto_uint8 0 crypto_stream_chacha20 1 crypto_onetimeauth_poly1305 1 crypto_auth_hmacsha256 1 crypto_hash_sha512 1 crypto_hash_sha256 1 crypto_verify_16 1 crypto_verify_32 1 crypto_core_aes256encrypt 1 crypto_scalarmult_curve25519 1 crypto_scalarmult_nistp256 1 crypto_sign_ed25519 1 crypto_sign_nistp256ecdsa 1 randombytes 0 uint32_pack_big 0 uint32_unpack_big 0 cleanup 0 tinyssh-20180201/crypto/CRYPTOSOURCES000066400000000000000000000006441322704306500170070ustar00rootroot00000000000000crypto_onetimeauth_poly1305 aes crypto_core_aes256encrypt randombytes uint32_pack uint32_unpack uint32_pack_big uint32_unpack_big crypto_stream_chacha20 verify crypto_verify_16 crypto_verify_32 sha256 crypto_hash_sha256 crypto_auth_hmacsha256 crypto_hash_sha512 fe fe25519 ge25519 sc25519 fep256 gep256 scp256 crypto_scalarmult_curve25519 crypto_sign_ed25519 crypto_scalarmult_nistp256 crypto_sign_nistp256ecdsa cleanup tinyssh-20180201/crypto/aes.c000066400000000000000000000125211322704306500157110ustar00rootroot00000000000000/* - based on crypto_core/aes256encrypt/ref from supercop-20140622 - added bitsliced 'bytesub' */ #include "cleanup.h" #include "aessbox.h" #include "crypto_uint32.h" #include "aes.h" static unsigned char gmul2(unsigned char a) { unsigned char x = a >> 7; /* 0x00 or 0x01 */ x = -x; /* 0x00 or 0xff */ x &= 0x1b; /* 0x00 or 0x1b */ a <<= 1; return x ^ a; } /* functions for aessbox macro */ static void xor2(crypto_uint32 *r, const crypto_uint32 *x) { *r ^= *x; } static void and2(crypto_uint32 *r, const crypto_uint32 *x) { *r &= *x; } static void or2(crypto_uint32 *r, const crypto_uint32 *x) { *r |= *x; } static void copy2(crypto_uint32 *r, const crypto_uint32 *x) { *r = *x; } /* 16x SubBytes parallel using bitslicing */ static void bytesub(unsigned char *r, unsigned char *c) { crypto_uint32 t0, t1, t2, t3, t4, t5, t6, t7; crypto_uint32 b0 = 0, b1 = 0, b2 = 0, b3 = 0, b4 = 0, b5 = 0, b6 = 0, b7 = 0; long long j; for (j = 0; j < 16; ++j) { b0 <<= 1; b0 |= 1 & (c[j] ); b1 <<= 1; b1 |= 1 & (c[j] >> 1); b2 <<= 1; b2 |= 1 & (c[j] >> 2); b3 <<= 1; b3 |= 1 & (c[j] >> 3); b4 <<= 1; b4 |= 1 & (c[j] >> 4); b5 <<= 1; b5 |= 1 & (c[j] >> 5); b6 <<= 1; b6 |= 1 & (c[j] >> 6); b7 <<= 1; b7 |= 1 & (c[j] >> 7); } aessbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7); for (j = 0; j < 16; ++j) { r[15 - j] = 0; r[15 - j] |= 1 & b5; b5 >>= 1; r[15 - j] <<= 1; r[15 - j] |= 1 & b2; b2 >>= 1; r[15 - j] <<= 1; r[15 - j] |= 1 & b7; b7 >>= 1; r[15 - j] <<= 1; r[15 - j] |= 1 & b3; b3 >>= 1; r[15 - j] <<= 1; r[15 - j] |= 1 & b6; b6 >>= 1; r[15 - j] <<= 1; r[15 - j] |= 1 & b4; b4 >>= 1; r[15 - j] <<= 1; r[15 - j] |= 1 & b1; b1 >>= 1; r[15 - j] <<= 1; r[15 - j] |= 1 & b0; b0 >>= 1; r[15 - j] ^= 0x63; } } void aes_core(unsigned char *out, const unsigned char *in, const unsigned char *k, long long rounds) { unsigned char expanded[4][60]; unsigned char state[4][4]; unsigned char newstate[4][4]; unsigned char a0, a1, a2, a3; long long i, j, r; /* load expanded key */ for (j = 0; j < 4 * (rounds + 1); ++j) for (i = 0; i < 4; ++i) expanded[i][j] = k[j * 4 + i]; /* AddRoundKey */ for (j = 0; j < 4; ++j) for (i = 0; i < 4; ++i) state[i][j] = in[j * 4 + i] ^ expanded[i][j]; for (r = 0; r < rounds; ++r) { /* SubBytes */ bytesub((unsigned char *)newstate, (unsigned char *)state); /* ShiftRows */ for (i = 0; i < 4; ++i) for (j = 0; j < 4; ++j) state[i][j] = newstate[i][(j + i) % 4]; /* MixColumns */ if (r < rounds - 1) for (j = 0; j < 4; ++j) { a0 = state[0][j]; a1 = state[1][j]; a2 = state[2][j]; a3 = state[3][j]; state[0][j] = gmul2(a0 ^ a1) ^ a1 ^ a2 ^ a3; state[1][j] = gmul2(a1 ^ a2) ^ a2 ^ a3 ^ a0; state[2][j] = gmul2(a2 ^ a3) ^ a3 ^ a0 ^ a1; state[3][j] = gmul2(a3 ^ a0) ^ a0 ^ a1 ^ a2; } /* AddRoundKey */ for (i = 0; i < 4; ++i) for (j = 0; j < 4; ++j) state[i][j] ^= expanded[i][r * 4 + 4 + j]; } /* store output */ for (j = 0; j < 4; ++j) for (i = 0; i < 4; ++i) out[j * 4 + i] = state[i][j]; /* cleanup */ cleanup(expanded); cleanup(state); cleanup(newstate); } int aes_expandkey256(unsigned char *o, const unsigned char *k) { unsigned char expanded[4][60], temp[16], roundconstant = 1; long long i, j; for (j = 0; j < 8; ++j) for (i = 0; i < 4; ++i) expanded[i][j] = k[j * 4 + i]; for (j = 8; j < 60; ++j) { if (j % 4) for (i = 0; i < 4; ++i) temp[i] = expanded[i][j - 1]; else if (j % 8) { for (i = 0; i < 4; ++i) temp[i] = expanded[i][j - 1]; bytesub(temp, temp); } else { for (i = 0; i < 4; ++i) temp[i] = expanded[(i + 1) % 4][j - 1]; bytesub(temp, temp); temp[0] ^= roundconstant; roundconstant = gmul2(roundconstant); } for (i = 0; i < 4; ++i) expanded[i][j] = temp[i] ^ expanded[i][j - 8]; } for (j = 0; j < 60; ++j) for (i = 0; i < 4; ++i) o[j * 4 + i] = expanded[i][j]; cleanup(temp); cleanup(expanded); return 0; } int aes_expandkey128(unsigned char *o, const unsigned char *k) { unsigned char expanded[4][44], temp[16], roundconstant = 1; long long i, j; for (j = 0; j < 4; ++j) for (i = 0; i < 4; ++i) expanded[i][j] = k[j * 4 + i]; for (j = 4; j < 44; ++j) { if (j % 4) for (i = 0; i < 4; ++i) temp[i] = expanded[i][j - 1]; else { for (i = 0; i < 4; ++i) temp[i] = expanded[(i + 1) % 4][j - 1]; bytesub(temp, temp); temp[0] ^= roundconstant; roundconstant = gmul2(roundconstant); } for (i = 0; i < 4; ++i) expanded[i][j] = temp[i] ^ expanded[i][j - 4]; } for (j = 0; j < 44; ++j) for (i = 0; i < 4; ++i) o[j * 4 + i] = expanded[i][j]; cleanup(temp); cleanup(expanded); return 0; } tinyssh-20180201/crypto/aes.h000066400000000000000000000006531322704306500157210ustar00rootroot00000000000000#ifndef _AES_H_____ #define _AES_H_____ extern int aes_expandkey256(unsigned char *, const unsigned char *); extern int aes_expandkey128(unsigned char *, const unsigned char *); extern void aes_core(unsigned char *, const unsigned char *, const unsigned char *, long long); extern int aes_stream_xor(unsigned char *, const unsigned char *, unsigned long long, const unsigned char *, const unsigned char *, long long); #endif tinyssh-20180201/crypto/aessbox.h000066400000000000000000000110121322704306500166040ustar00rootroot00000000000000/* Author: Peter Schwabe, ported from an assembly implementation by Emilia Käsper Date: 2009-03-19 Public domain Modifications by J. Mojzis (20140630): renamed common.h -> aessbox.h removed unnecessary macros */ #ifndef _AESSBOX_H_____ #define _AESSBOX_H_____ #define aessbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, s0, s1, s2, s3) \ InBasisChange(b0, b1, b2, b3, b4, b5, b6, b7); \ Inv_GF256(b6, b5, b0, b3, b7, b1, b4, b2, t0, t1, t2, t3, s0, s1, s2, s3); \ OutBasisChange(b7, b1, b4, b2, b6, b5, b0, b3); \ #define InBasisChange(b0, b1, b2, b3, b4, b5, b6, b7) \ xor2(&b5, &b6);\ xor2(&b2, &b1);\ xor2(&b5, &b0);\ xor2(&b6, &b2);\ xor2(&b3, &b0);\ ;\ xor2(&b6, &b3);\ xor2(&b3, &b7);\ xor2(&b3, &b4);\ xor2(&b7, &b5);\ xor2(&b3, &b1);\ ;\ xor2(&b4, &b5);\ xor2(&b2, &b7);\ xor2(&b1, &b5);\ #define OutBasisChange(b0, b1, b2, b3, b4, b5, b6, b7) \ xor2(&b0, &b6);\ xor2(&b1, &b4);\ xor2(&b2, &b0);\ xor2(&b4, &b6);\ xor2(&b6, &b1);\ ;\ xor2(&b1, &b5);\ xor2(&b5, &b3);\ xor2(&b2, &b5);\ xor2(&b3, &b7);\ xor2(&b7, &b5);\ ;\ xor2(&b4, &b7);\ #define Mul_GF4(x0, x1, y0, y1, t0) \ copy2(&t0, &y0);\ xor2(&t0, &y1);\ and2(&t0, &x0);\ xor2(&x0, &x1);\ and2(&x0, &y1);\ and2(&x1, &y0);\ xor2(&x0, &x1);\ xor2(&x1, &t0);\ #define Mul_GF4_N(x0, x1, y0, y1, t0) \ copy2(&t0, &y0);\ xor2(&t0, &y1);\ and2(&t0, &x0);\ xor2(&x0, &x1);\ and2(&x0, &y1);\ and2(&x1, &y0);\ xor2(&x1, &x0);\ xor2(&x0, &t0);\ #define Mul_GF4_2(x0, x1, x2, x3, y0, y1, t0, t1) \ copy2(&t0, = y0);\ xor2(&t0, &y1);\ copy2(&t1, &t0);\ and2(&t0, &x0);\ and2(&t1, &x2);\ xor2(&x0, &x1);\ xor2(&x2, &x3);\ and2(&x0, &y1);\ and2(&x2, &y1);\ and2(&x1, &y0);\ and2(&x3, &y0);\ xor2(&x0, &x1);\ xor2(&x2, &x3);\ xor2(&x1, &t0);\ xor2(&x3, &t1);\ #define Mul_GF16(x0, x1, x2, x3, y0, y1, y2, y3, t0, t1, t2, t3) \ copy2(&t0, &x0);\ copy2(&t1, &x1);\ Mul_GF4(x0, x1, y0, y1, t2);\ xor2(&t0, &x2);\ xor2(&t1, &x3);\ xor2(&y0, &y2);\ xor2(&y1, &y3);\ Mul_GF4_N(t0, t1, y0, y1, t2);\ Mul_GF4(x2, x3, y2, y3, t3);\ ;\ xor2(&x0, &t0);\ xor2(&x2, &t0);\ xor2(&x1, &t1);\ xor2(&x3, &t1);\ #define Mul_GF16_2(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, t0, t1, t2, t3) \ copy2(&t0, &x0);\ copy2(&t1, &x1);\ Mul_GF4(x0, x1, y0, y1, t2);\ xor2(&t0, &x2);\ xor2(&t1, &x3);\ xor2(&y0, &y2);\ xor2(&y1, &y3);\ Mul_GF4_N(t0, t1, y0, y1, t3);\ Mul_GF4(x2, x3, y2, y3, t2);\ ;\ xor2(&x0, &t0);\ xor2(&x2, &t0);\ xor2(&x1, &t1);\ xor2(&x3, &t1);\ ;\ copy2(&t0, &x4);\ copy2(&t1, &x5);\ xor2(&t0, &x6);\ xor2(&t1, &x7);\ Mul_GF4_N(t0, t1, y0, y1, t3);\ Mul_GF4(x6, x7, y2, y3, t2);\ xor2(&y0, &y2);\ xor2(&y1, &y3);\ Mul_GF4(x4, x5, y0, y1, t3);\ ;\ xor2(&x4, &t0);\ xor2(&x6, &t0);\ xor2(&x5, &t1);\ xor2(&x7, &t1);\ #define Inv_GF16(x0, x1, x2, x3, t0, t1, t2, t3) \ copy2(&t0, &x1);\ copy2(&t1, &x0);\ and2(&t0, &x3);\ or2(&t1, &x2);\ copy2(&t2, &x1);\ copy2(&t3, &x0);\ or2(&t2, &x2);\ or2(&t3, &x3);\ xor2(&t2, &t3);\ ;\ xor2(&t0, &t2);\ xor2(&t1, &t2);\ ;\ Mul_GF4_2(x0, x1, x2, x3, t1, t0, t2, t3);\ #define Inv_GF256(x0, x1, x2, x3, x4, x5, x6, x7, t0, t1, t2, t3, s0, s1, s2, s3) \ copy2(&t3, &x4);\ copy2(&t2, &x5);\ copy2(&t1, &x1);\ copy2(&s1, &x7);\ copy2(&s0, &x0);\ ;\ xor2(&t3, &x6);\ xor2(&t2, &x7);\ xor2(&t1, &x3);\ xor2(&s1, &x6);\ xor2(&s0, &x2);\ ;\ copy2(&s2, &t3);\ copy2(&t0, &t2);\ copy2(&s3, &t3);\ ;\ or2(&t2, &t1);\ or2(&t3, &s0);\ xor2(&s3, &t0);\ and2(&s2, &s0);\ and2(&t0, &t1);\ xor2(&s0, &t1);\ and2(&s3, &s0);\ copy2(&s0, &x3);\ xor2(&s0, &x2);\ and2(&s1, &s0);\ xor2(&t3, &s1);\ xor2(&t2, &s1);\ copy2(&s1, &x4);\ xor2(&s1, &x5);\ copy2(&s0, &x1);\ copy2(&t1, &s1);\ xor2(&s0, &x0);\ or2(&t1, &s0);\ and2(&s1, &s0);\ xor2(&t0, &s1);\ xor2(&t3, &s3);\ xor2(&t2, &s2);\ xor2(&t1, &s3);\ xor2(&t0, &s2);\ xor2(&t1, &s2);\ copy2(&s0, &x7);\ copy2(&s1, &x6);\ copy2(&s2, &x5);\ copy2(&s3, &x4);\ and2(&s0, &x3);\ and2(&s1, &x2);\ and2(&s2, &x1);\ or2(&s3, &x0);\ xor2(&t3, &s0);\ xor2(&t2, &s1);\ xor2(&t1, &s2);\ xor2(&t0, &s3);\ ;\ copy2(&s0, &t3);\ xor2(&s0, &t2);\ and2(&t3, &t1);\ copy2(&s2, &t0);\ xor2(&s2, &t3);\ copy2(&s3, &s0);\ and2(&s3, &s2);\ xor2(&s3, &t2);\ copy2(&s1, &t1);\ xor2(&s1, &t0);\ xor2(&t3, &t2);\ and2(&s1, &t3);\ xor2(&s1, &t0);\ xor2(&t1, &s1);\ copy2(&t2, &s2);\ xor2(&t2, &s1);\ and2(&t2, &t0);\ xor2(&t1, &t2);\ xor2(&s2, &t2);\ and2(&s2, &s3);\ xor2(&s2, &s0);\ ;\ Mul_GF16_2(x0, x1, x2, x3, x4, x5, x6, x7, s3, s2, s1, t1, s0, t0, t2, t3);\ #endif tinyssh-20180201/crypto/cleanup.c000066400000000000000000000004241322704306500165670ustar00rootroot00000000000000#include "cleanup.h" #include "hasasmvolatilememory.h" void cleanup_(void *yv, long long ylen) { volatile char *y = (volatile char *)yv; while (ylen > 0) { *y++ = 0; --ylen; } #ifdef HASASMVOLATILEMEMORY __asm__ __volatile__("" : : "r"(yv) : "memory"); #endif } tinyssh-20180201/crypto/cleanup.h000066400000000000000000000002141322704306500165710ustar00rootroot00000000000000#ifndef _CLEANUP_H____ #define _CLEANUP_H____ extern void cleanup_(void *, long long); #define cleanup(x) cleanup_((x), sizeof(x)) #endif tinyssh-20180201/crypto/crypto_auth_hmacsha256.c000066400000000000000000000007731322704306500214310ustar00rootroot00000000000000#include "sha256.h" #include "crypto_verify_32.h" #include "crypto_auth_hmacsha256.h" int crypto_auth_hmacsha256_tinynacl(unsigned char *out, const unsigned char *m, unsigned long long n, const unsigned char *k) { return sha256_auth(out, m, n, k); } int crypto_auth_hmacsha256_tinynacl_verify(const unsigned char *h, const unsigned char *m, unsigned long long n, const unsigned char *k) { unsigned char x[32]; crypto_auth_hmacsha256_tinynacl(x, m, n, k); return crypto_verify_32(h, x); } tinyssh-20180201/crypto/crypto_auth_hmacsha256.h000066400000000000000000000015101322704306500214240ustar00rootroot00000000000000#ifndef crypto_auth_hmacsha256_H #define crypto_auth_hmacsha256_H #define crypto_auth_hmacsha256_tinynacl_BYTES 32 #define crypto_auth_hmacsha256_tinynacl_KEYBYTES 32 extern int crypto_auth_hmacsha256_tinynacl(unsigned char *, const unsigned char *, unsigned long long, const unsigned char *); extern int crypto_auth_hmacsha256_tinynacl_verify(const unsigned char *, const unsigned char *, unsigned long long, const unsigned char *); #define crypto_auth_hmacsha256 crypto_auth_hmacsha256_tinynacl #define crypto_auth_hmacsha256_verify crypto_auth_hmacsha256_tinynacl_verify #define crypto_auth_hmacsha256_BYTES crypto_auth_hmacsha256_tinynacl_BYTES #define crypto_auth_hmacsha256_KEYBYTES crypto_auth_hmacsha256_tinynacl_KEYBYTES #define crypto_auth_hmacsha256_IMPLEMENTATION "tinynacl" #define crypto_auth_hmacsha256_VERSION "-" #endif tinyssh-20180201/crypto/crypto_core_aes256encrypt.c000066400000000000000000000005401322704306500221610ustar00rootroot00000000000000#include "aes.h" #include "cleanup.h" #include "crypto_core_aes256encrypt.h" int crypto_core_aes256encrypt_tinynacl(unsigned char *out, const unsigned char *in, const unsigned char *k, const unsigned char *c) { unsigned char d[240]; aes_expandkey256(d, k); aes_core(out, in, d, 14); cleanup(d); if (c) return -1; return 0; } tinyssh-20180201/crypto/crypto_core_aes256encrypt.h000066400000000000000000000017171322704306500221750ustar00rootroot00000000000000#ifndef crypto_core_aes256encrypt_H #define crypto_core_aes256encrypt_H #define crypto_core_aes256encrypt_tinynacl_OUTPUTBYTES 16 #define crypto_core_aes256encrypt_tinynacl_INPUTBYTES 16 #define crypto_core_aes256encrypt_tinynacl_KEYBYTES 32 #define crypto_core_aes256encrypt_tinynacl_CONSTBYTES 0 extern int crypto_core_aes256encrypt_tinynacl(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_aes256encrypt crypto_core_aes256encrypt_tinynacl #define crypto_core_aes256encrypt_OUTPUTBYTES crypto_core_aes256encrypt_tinynacl_OUTPUTBYTES #define crypto_core_aes256encrypt_INPUTBYTES crypto_core_aes256encrypt_tinynacl_INPUTBYTES #define crypto_core_aes256encrypt_KEYBYTES crypto_core_aes256encrypt_tinynacl_KEYBYTES #define crypto_core_aes256encrypt_CONSTBYTES crypto_core_aes256encrypt_tinynacl_CONSTBYTES #define crypto_core_aes256encrypt_IMPLEMENTATION "tinynacl" #define crypto_core_aes256encrypt_VERSION "-" #endif tinyssh-20180201/crypto/crypto_hash_sha256.c000066400000000000000000000002761322704306500205600ustar00rootroot00000000000000#include "sha256.h" #include "crypto_hash_sha256.h" int crypto_hash_sha256_tinynacl(unsigned char *out, const unsigned char *m, unsigned long long n) { return sha256_hash(out, m, n); } tinyssh-20180201/crypto/crypto_hash_sha256.h000066400000000000000000000006511322704306500205620ustar00rootroot00000000000000#ifndef crypto_hash_sha256_H #define crypto_hash_sha256_H #define crypto_hash_sha256_tinynacl_BYTES 32 extern int crypto_hash_sha256_tinynacl(unsigned char *,const unsigned char *,unsigned long long); #define crypto_hash_sha256 crypto_hash_sha256_tinynacl #define crypto_hash_sha256_BYTES crypto_hash_sha256_tinynacl_BYTES #define crypto_hash_sha256_IMPLEMENTATION "tinynacl" #define crypto_hash_sha256_VERSION "-" #endif tinyssh-20180201/crypto/crypto_hash_sha512.c000066400000000000000000000114421322704306500205500ustar00rootroot00000000000000/* 20180104 */ /* - based on tweetnacl 20140427 (http://tweetnacl.cr.yp.to/software.html) - slightly modified */ #include "crypto_hash_sha512.h" static void store64_bigendian(unsigned char *y, unsigned long long x) { long long i; for (i = 7; i >= 0; --i) { y[i] = x; x >>= 8; } } static unsigned long long load64_bigendian(const unsigned char *x) { unsigned long long y = 0; long long i; for (i = 0; i < 8; ++i) y = (y << 8) | x[i]; return y; } static unsigned long long R(unsigned long long x,int c) { return (x >> c) | ((x & 0xffffffffffffffffULL) << (64 - c)); } static unsigned long long Ch(unsigned long long x, unsigned long long y, unsigned long long z) { return (x & y) ^ (~x & z); } static unsigned long long Maj(unsigned long long x, unsigned long long y, unsigned long long z) { return (x & y) ^ (x & z) ^ (y & z); } static unsigned long long Sigma0(unsigned long long x) { return R(x, 28) ^ R(x, 34) ^ R(x, 39); } static unsigned long long Sigma1(unsigned long long x) { return R(x, 14) ^ R(x, 18) ^ R(x, 41); } static unsigned long long sigma0(unsigned long long x) { return R(x, 1) ^ R(x, 8) ^ (x >> 7); } static unsigned long long sigma1(unsigned long long x) { return R(x, 19) ^ R(x, 61) ^ (x >> 6); } static const unsigned long long K[80] = { 0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL, 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL, 0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL, 0xd807aa98a3030242ULL, 0x12835b0145706fbeULL, 0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL, 0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL, 0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL, 0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL, 0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL, 0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL, 0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL, 0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL, 0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL, 0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL, 0x06ca6351e003826fULL, 0x142929670a0e6e70ULL, 0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL, 0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL, 0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL, 0x81c2c92e47edaee6ULL, 0x92722c851482353bULL, 0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL, 0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL, 0xd192e819d6ef5218ULL, 0xd69906245565a910ULL, 0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL, 0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL, 0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL, 0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL, 0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL, 0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL, 0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL, 0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL, 0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL, 0xca273eceea26619cULL, 0xd186b8c721c0c207ULL, 0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL, 0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL, 0x113f9804bef90daeULL, 0x1b710b35131c471bULL, 0x28db77f523047d84ULL, 0x32caab7b40c72493ULL, 0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL, 0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL, 0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL }; static void blocks(unsigned long long *z, const unsigned char *m, unsigned long long n) { unsigned long long b[8], a[8], w[80], t; long long i, j; for (i = 0; i < 8; ++i) a[i] = z[i]; while (n >= 128) { for (i = 0; i < 16; ++i) w[i] = load64_bigendian(m + 8 * i); for (i = 16; i < 80; ++i) w[i] = (sigma1(w[i - 2]) + w[i - 7] + sigma0(w[i - 15]) + w[i - 16]) & 0xffffffffffffffffULL; for (i = 0; i < 80; ++i) { for (j = 0; j < 8; ++j) b[j] = a[j]; t = a[7] + Sigma1(a[4]) + Ch(a[4], a[5], a[6]) + K[i] + w[i]; b[7] = t + Sigma0(a[0]) + Maj(a[0], a[1], a[2]); b[3] += t; for (j = 0; j < 8; ++j) a[(j + 1) % 8] = b[j] & 0xffffffffffffffffULL; } for (i = 0; i < 8; ++i) { a[i] += z[i]; a[i] &= 0xffffffffffffffffULL; z[i] = a[i]; } m += 128; n -= 128; } } int crypto_hash_sha512_tinynacl(unsigned char *o,const unsigned char *m, unsigned long long n) { long long i; unsigned char x[256]; unsigned long long b = n; unsigned long long h[8] = { 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL }; blocks(h, m, n); m += n; n &= 127; m -= n; for (i = 0; i < sizeof x; ++i) x[i] = 0; for (i = 0; i < n; ++i) x[i] = m[i]; x[n] = 128; n = 256 - 128 * (n < 112); x[n - 9] = b >> 61; store64_bigendian(x + n - 8, b << 3); blocks(h, x, n); for (i = 0; i < 8; ++i) store64_bigendian(o + 8 * i, h[i]); return 0; } tinyssh-20180201/crypto/crypto_hash_sha512.h000066400000000000000000000006531322704306500205570ustar00rootroot00000000000000#ifndef crypto_hash_sha512_H #define crypto_hash_sha512_H #define crypto_hash_sha512_tinynacl_BYTES 64 extern int crypto_hash_sha512_tinynacl(unsigned char *, const unsigned char *, unsigned long long); #define crypto_hash_sha512 crypto_hash_sha512_tinynacl #define crypto_hash_sha512_BYTES crypto_hash_sha512_tinynacl_BYTES #define crypto_hash_sha512_IMPLEMENTATION "tinynacl" #define crypto_hash_sha512_VERSION "-" #endif tinyssh-20180201/crypto/crypto_int64.h000066400000000000000000000001521322704306500175070ustar00rootroot00000000000000#ifndef crypto_int64_h #define crypto_int64_h #include typedef int64_t crypto_int64; #endif tinyssh-20180201/crypto/crypto_onetimeauth_poly1305.c000066400000000000000000000127411322704306500224430ustar00rootroot00000000000000/* 20180104 */ /* Based on poly1305-donna (https://github.com/floodyberry/poly1305-opt/blob/master/extensions/poly1305_ref-32.c) - modified for NaCl API */ #include "crypto_onetimeauth_poly1305.h" static unsigned long unpack(const unsigned char *x) { return (unsigned long) (x[0]) \ | (((unsigned long) (x[1])) << 8) \ | (((unsigned long) (x[2])) << 16) \ | (((unsigned long) (x[3])) << 24); } static void pack(unsigned char *x, unsigned long u) { x[0] = u; u >>= 8; x[1] = u; u >>= 8; x[2] = u; u >>= 8; x[3] = u; } int crypto_onetimeauth_poly1305_tinynacl(unsigned char *o, const unsigned char *m, unsigned long long n, const unsigned char *k) { unsigned long h0, h1, h2, h3, h4; unsigned long r0, r1, r2, r3, r4; unsigned long s1, s2, s3, s4; unsigned long long d0, d1, d2, d3, d4; unsigned long c, mask; unsigned long long f; long long i; /* r &= 0xffffffc0ffffffc0ffffffc0fffffff */ r0 = (unpack(k + 0) ) & 0x3ffffff; r1 = (unpack(k + 3) >> 2) & 0x3ffff03; r2 = (unpack(k + 6) >> 4) & 0x3ffc0ff; r3 = (unpack(k + 9) >> 6) & 0x3f03fff; r4 = (unpack(k + 12) >> 8) & 0x00fffff; s1 = r1 * 5; s2 = r2 * 5; s3 = r3 * 5; s4 = r4 * 5; /* h = 0 */ h0 = h1 = h2 = h3 = h4 = 0; while ((long long)n > 0) { /* h += m[i] */ if (n >= 16) { h0 += (unpack(m ) ) & 0x3ffffff; h1 += (unpack(m + 3) >> 2) & 0x3ffffff; h2 += (unpack(m + 6) >> 4) & 0x3ffffff; h3 += (unpack(m + 9) >> 6) & 0x3ffffff; h4 += (unpack(m + 12) >> 8) | 16777216; } else { unsigned char mm[16]; for (i = 0; i < 16; ++i) mm[i] = 0; for (i = 0; i < n; ++i) mm[i] = m[i]; mm[i] = 1; h0 += (unpack(mm ) ) & 0x3ffffff; h1 += (unpack(mm + 3) >> 2) & 0x3ffffff; h2 += (unpack(mm + 6) >> 4) & 0x3ffffff; h3 += (unpack(mm + 9) >> 6) & 0x3ffffff; h4 += (unpack(mm + 12) >> 8); } /* h *= r */ d0 = ((unsigned long long)h0 * r0) + ((unsigned long long)h1 * s4) + ((unsigned long long)h2 * s3) + ((unsigned long long)h3 * s2) + ((unsigned long long)h4 * s1); d1 = ((unsigned long long)h0 * r1) + ((unsigned long long)h1 * r0) + ((unsigned long long)h2 * s4) + ((unsigned long long)h3 * s3) + ((unsigned long long)h4 * s2); d2 = ((unsigned long long)h0 * r2) + ((unsigned long long)h1 * r1) + ((unsigned long long)h2 * r0) + ((unsigned long long)h3 * s4) + ((unsigned long long)h4 * s3); d3 = ((unsigned long long)h0 * r3) + ((unsigned long long)h1 * r2) + ((unsigned long long)h2 * r1) + ((unsigned long long)h3 * r0) + ((unsigned long long)h4 * s4); d4 = ((unsigned long long)h0 * r4) + ((unsigned long long)h1 * r3) + ((unsigned long long)h2 * r2) + ((unsigned long long)h3 * r1) + ((unsigned long long)h4 * r0); /* (partial) h %= p */ c = (unsigned long)(d0 >> 26); h0 = (unsigned long)d0 & 0x3ffffff; d1 += c; c = (unsigned long)(d1 >> 26); h1 = (unsigned long)d1 & 0x3ffffff; d2 += c; c = (unsigned long)(d2 >> 26); h2 = (unsigned long)d2 & 0x3ffffff; d3 += c; c = (unsigned long)(d3 >> 26); h3 = (unsigned long)d3 & 0x3ffffff; d4 += c; c = (unsigned long)(d4 >> 26); h4 = (unsigned long)d4 & 0x3ffffff; h0 += c * 5; c = (h0 >> 26); h0 = h0 & 0x3ffffff; h1 += c; m += 16; n -= 16; } /* fully carry h */ c = h1 >> 26; h1 = h1 & 0x3ffffff; h2 += c; c = h2 >> 26; h2 = h2 & 0x3ffffff; h3 += c; c = h3 >> 26; h3 = h3 & 0x3ffffff; h4 += c; c = h4 >> 26; h4 = h4 & 0x3ffffff; h0 += c * 5; c = h0 >> 26; h0 = h0 & 0x3ffffff; h1 += c; /* compute h + -p */ r0 = h0 + 5; c = r0 >> 26; r0 &= 0x3ffffff; r1 = h1 + c; c = r1 >> 26; r1 &= 0x3ffffff; r2 = h2 + c; c = r2 >> 26; r2 &= 0x3ffffff; r3 = h3 + c; c = r3 >> 26; r3 &= 0x3ffffff; r4 = h4 + c - (1 << 26); /* select h if h < p, or h + -p if h >= p */ mask = (r4 >> ((sizeof(unsigned long) * 8) - 1)) - 1; r0 &= mask; r1 &= mask; r2 &= mask; r3 &= mask; r4 &= mask; mask = ~mask; h0 = (h0 & mask) | r0; h1 = (h1 & mask) | r1; h2 = (h2 & mask) | r2; h3 = (h3 & mask) | r3; h4 = (h4 & mask) | r4; /* h = h % (2^128) */ h0 = ((h0 ) | (h1 << 26)) & 0xffffffff; h1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff; h2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff; h3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff; /* mac = (h + pad) % (2^128) */ f = (unsigned long long)h0 + unpack(k + 16) ; h0 = (unsigned long)f; f = (unsigned long long)h1 + unpack(k + 20) + (f >> 32); h1 = (unsigned long)f; f = (unsigned long long)h2 + unpack(k + 24) + (f >> 32); h2 = (unsigned long)f; f = (unsigned long long)h3 + unpack(k + 28) + (f >> 32); h3 = (unsigned long)f; pack(o + 0, h0); pack(o + 4, h1); pack(o + 8, h2); pack(o + 12, h3); return 0; } int crypto_onetimeauth_poly1305_tinynacl_verify(const unsigned char *h, const unsigned char *in, unsigned long long l, const unsigned char *k) { unsigned char correct[16]; unsigned int d = 0; long long i; crypto_onetimeauth_poly1305(correct, in, l, k); for (i = 0; i < 16; ++i) d |= correct[i] ^ h[i]; return (1 & ((d - 1) >> 8)) - 1; } tinyssh-20180201/crypto/crypto_onetimeauth_poly1305.h000066400000000000000000000016221322704306500224440ustar00rootroot00000000000000#ifndef crypto_onetimeauth_poly1305_H #define crypto_onetimeauth_poly1305_H #define crypto_onetimeauth_poly1305_tinynacl_BYTES 16 #define crypto_onetimeauth_poly1305_tinynacl_KEYBYTES 32 extern int crypto_onetimeauth_poly1305_tinynacl(unsigned char *,const unsigned char *,unsigned long long,const unsigned char *); extern int crypto_onetimeauth_poly1305_tinynacl_verify(const unsigned char *,const unsigned char *,unsigned long long,const unsigned char *); #define crypto_onetimeauth_poly1305 crypto_onetimeauth_poly1305_tinynacl #define crypto_onetimeauth_poly1305_verify crypto_onetimeauth_poly1305_tinynacl_verify #define crypto_onetimeauth_poly1305_BYTES crypto_onetimeauth_poly1305_tinynacl_BYTES #define crypto_onetimeauth_poly1305_KEYBYTES crypto_onetimeauth_poly1305_tinynacl_KEYBYTES #define crypto_onetimeauth_poly1305_IMPLEMENTATION "tinynacl" #define crypto_onetimeauth_poly1305_VERSION "-" #endif tinyssh-20180201/crypto/crypto_scalarmult_curve25519.c000066400000000000000000000035611322704306500225260ustar00rootroot00000000000000#include "cleanup.h" #include "fe25519.h" #include "crypto_scalarmult_curve25519.h" int crypto_scalarmult_curve25519_tinynacl(unsigned char *q, const unsigned char *n, const unsigned char *p) { unsigned char e[32]; fe x1, x2, z2, x3, z3, tmp0, tmp1; long long i; unsigned int d = 0; int pos; crypto_uint32 swap, b; for (i = 0; i < 32; ++i) e[i] = n[i]; e[0] &= 248; e[31] &= 127; e[31] |= 64; fe25519_frombytes(x1, p); fe_1(x2); fe_0(z2); fe_copy(x3, x1); fe_1(z3); swap = 0; for (pos = 254; pos >= 0; --pos) { b = e[pos / 8] >> (pos & 7); b &= 1; swap ^= b; fe_cswap(x2, x3, swap); fe_cswap(z2, z3, swap); swap = b; fe25519_sub(tmp0, x3, z3); fe25519_sub(tmp1, x2, z2); fe25519_add(x2, x2, z2); fe25519_add(z2, x3, z3); fe25519_mul(z3, tmp0, x2); fe25519_mul(z2, z2, tmp1); fe25519_sq(tmp0, tmp1); fe25519_sq(tmp1, x2); fe25519_add(x3, z3, z2); fe25519_sub(z2, z3, z2); fe25519_mul(x2, tmp1, tmp0); fe25519_sub(tmp1, tmp1, tmp0); fe25519_sq(z2, z2); fe25519_mul121666(z3, tmp1); fe25519_sq(x3, x3); fe25519_add(tmp0, tmp0, z3); fe25519_mul(z3, x1, z2); fe25519_mul(z2, tmp1, tmp0); } fe_cswap(x2, x3, swap); fe_cswap(z2, z3, swap); fe25519_inv(z2, z2); fe25519_mul(x2, x2, z2); fe25519_tobytes(q, x2); cleanup(e); cleanup(tmp0); cleanup(tmp1); cleanup(x1); cleanup(x2); cleanup(x3); cleanup(z2); cleanup(z3); for (i = 0; i < 32; ++i) d |= q[i]; return -(1 & ((d - 1) >> 8)); } static const unsigned char basepoint[32] = {9}; int crypto_scalarmult_curve25519_tinynacl_base(unsigned char *q, const unsigned char *n) { return crypto_scalarmult_curve25519_tinynacl(q, n, basepoint); } tinyssh-20180201/crypto/crypto_scalarmult_curve25519.h000066400000000000000000000015431322704306500225310ustar00rootroot00000000000000#ifndef crypto_scalarmult_curve25519_H #define crypto_scalarmult_curve25519_H #define crypto_scalarmult_curve25519_tinynacl_BYTES 32 #define crypto_scalarmult_curve25519_tinynacl_SCALARBYTES 32 extern int crypto_scalarmult_curve25519_tinynacl(unsigned char *,const unsigned char *,const unsigned char *); extern int crypto_scalarmult_curve25519_tinynacl_base(unsigned char *,const unsigned char *); #define crypto_scalarmult_curve25519 crypto_scalarmult_curve25519_tinynacl #define crypto_scalarmult_curve25519_base crypto_scalarmult_curve25519_tinynacl_base #define crypto_scalarmult_curve25519_BYTES crypto_scalarmult_curve25519_tinynacl_BYTES #define crypto_scalarmult_curve25519_SCALARBYTES crypto_scalarmult_curve25519_tinynacl_SCALARBYTES #define crypto_scalarmult_curve25519_IMPLEMENTATION "tinynacl" #define crypto_scalarmult_curve25519_VERSION "-" #endif tinyssh-20180201/crypto/crypto_scalarmult_nistp256.c000066400000000000000000000014161322704306500223630ustar00rootroot00000000000000/* 20140917 Jan Mojzis Public domain. */ #include "cleanup.h" #include "gep256.h" #include "crypto_scalarmult_nistp256.h" int crypto_scalarmult_nistp256_tinynacl(unsigned char *q, const unsigned char *n, const unsigned char *p) { gep256 P, Q; long long i; int ret = -1; if (gep256_frombytes(P, p) != 0) goto fail; gep256_scalarmult(Q, P, n); if (gep256_tobytes(q, Q) != 0) goto fail; ret = 0; goto cleanup; fail: for (i = 0; i < 64; ++i) q[i] = 0; cleanup: cleanup(P); cleanup(Q); return ret; } int crypto_scalarmult_nistp256_tinynacl_base(unsigned char *q, const unsigned char *n) { gep256 Q; int ret = -1; gep256_scalarmult_base(Q, n); if (gep256_tobytes(q, Q) == 0) ret = 0; cleanup(Q); return ret; } tinyssh-20180201/crypto/crypto_scalarmult_nistp256.h000066400000000000000000000015031322704306500223650ustar00rootroot00000000000000#ifndef crypto_scalarmult_nistp256_H #define crypto_scalarmult_nistp256_H #define crypto_scalarmult_nistp256_tinynacl_BYTES 64 #define crypto_scalarmult_nistp256_tinynacl_SCALARBYTES 32 extern int crypto_scalarmult_nistp256_tinynacl(unsigned char *,const unsigned char *,const unsigned char *); extern int crypto_scalarmult_nistp256_tinynacl_base(unsigned char *,const unsigned char *); #define crypto_scalarmult_nistp256 crypto_scalarmult_nistp256_tinynacl #define crypto_scalarmult_nistp256_base crypto_scalarmult_nistp256_tinynacl_base #define crypto_scalarmult_nistp256_BYTES crypto_scalarmult_nistp256_tinynacl_BYTES #define crypto_scalarmult_nistp256_SCALARBYTES crypto_scalarmult_nistp256_tinynacl_SCALARBYTES #define crypto_scalarmult_nistp256_IMPLEMENTATION "tinynacl" #define crypto_scalarmult_nistp256_VERSION "-" #endif tinyssh-20180201/crypto/crypto_sign_ed25519.c000066400000000000000000000063221322704306500205610ustar00rootroot00000000000000#include "randombytes.h" #include "cleanup.h" #include "crypto_hash_sha512.h" #include "crypto_verify_32.h" #include "ge25519.h" #include "sc25519.h" #include "crypto_sign_ed25519.h" int crypto_sign_ed25519_tinynacl(unsigned char *sm, unsigned long long *smlen, const unsigned char *m, unsigned long long n, const unsigned char *skorig) { long long i; unsigned char nonce[64], hram[64], sk[64], pk[32]; ge25519 R; /* compute secret key from seed sk = H(skorig), H = sha512 */ crypto_hash_sha512(sk, skorig, 32); sk[0] &= 248; sk[31] &= 63; sk[31] |= 64; /* copy m to sm, copy secret key and public key */ *smlen = n + 64; for (i = 31; i >= 0; --i) pk[i ] = skorig[i + 32]; for (i = n - 1; i >= 0; --i) sm[i + 64] = m[i]; for (i = 31; i >= 0; --i) sm[i + 32] = sk[i + 32]; /* get pseudorandom nonce = H(sk2, m) */ crypto_hash_sha512(nonce, sm + 32, n + 32); sc25519_reduce(nonce); /* copy pk to sm */ for (i = 31; i >= 0; --i) sm[i + 32] = pk[i]; /* compute R */ ge25519_scalarmult_base(R, nonce); ge25519_tobytes(sm, R); /* calculate hram = H(r, a, m) */ crypto_hash_sha512(hram, sm, n + 64); sc25519_reduce(hram); /* compute S */ sc25519_muladd(sm + 32, hram, sk, nonce); /* cleanup */ cleanup(nonce); cleanup(hram); cleanup(sk); cleanup(pk); cleanup(R); return 0; } int crypto_sign_ed25519_tinynacl_open(unsigned char *m, unsigned long long *mlen, const unsigned char *sm, unsigned long long n, const unsigned char *pk) { long long i; unsigned char pkcopy[32], rcopy[32], scopy[32], hram[64], rcheck[32]; ge25519 R, S, A; int ret = -1; /* check input */ if (n < 64) goto fail; if (sm[63] & 224) goto fail; /* unpack pk */ if (ge25519_frombytes_negate_vartime(A, pk) != 0) goto fail; /* copy pk, r, s */ for (i = 0; i < 32; ++i) pkcopy[i] = pk[i]; for (i = 0; i < 32; ++i) rcopy[i] = sm[i]; for (i = 0; i < 32; ++i) scopy[i] = sm[i + 32]; /* copy sm to m and copy pk to m */ for (i = n - 1; i >= 0; --i) m[i] = sm[i]; for (i = 0; i < 32; ++i) m[i + 32] = pkcopy[i]; /* calculate hram = H(r, a, m) */ crypto_hash_sha512(hram, m, n); sc25519_reduce(hram); /* compute R */ ge25519_scalarmult(A, A, hram); ge25519_scalarmult_base(S, scopy); ge25519_add(R, S, A); /* check R */ ge25519_tobytes(rcheck, R); if (crypto_verify_32(rcheck, rcopy) != 0) goto fail; /* copy message */ n -= 64; *mlen = n; for (i = 0; i < n; ++i) m[i] = m[i + 64]; for (i = 0; i < 64; ++i) m[i + n] = 0; ret = 0; goto cleanup; fail: for (i = 0; i < n; ++i) m[i] = 0; cleanup: cleanup(pkcopy); cleanup(rcopy); cleanup(scopy); cleanup(hram); cleanup(rcheck); cleanup(R); cleanup(S); cleanup(A); return ret; } int crypto_sign_ed25519_tinynacl_keypair(unsigned char *pk, unsigned char *sk) { unsigned char h[64]; ge25519 A; long long i; randombytes(sk, 32); crypto_hash_sha512(h, sk, 32); h[0] &= 248; h[31] &= 63; h[31] |= 64; ge25519_scalarmult_base(A, h); ge25519_tobytes(pk, A); for (i = 31; i >= 0; --i) sk[i + 32] = pk[i]; cleanup(h); cleanup(A); return 0; } tinyssh-20180201/crypto/crypto_sign_ed25519.h000066400000000000000000000021531322704306500205640ustar00rootroot00000000000000#ifndef crypto_sign_ed25519_H #define crypto_sign_ed25519_H #define crypto_sign_ed25519_tinynacl_SECRETKEYBYTES 64 #define crypto_sign_ed25519_tinynacl_PUBLICKEYBYTES 32 #define crypto_sign_ed25519_tinynacl_BYTES 64 extern int crypto_sign_ed25519_tinynacl(unsigned char *,unsigned long long *,const unsigned char *,unsigned long long,const unsigned char *); extern int crypto_sign_ed25519_tinynacl_open(unsigned char *,unsigned long long *,const unsigned char *,unsigned long long,const unsigned char *); extern int crypto_sign_ed25519_tinynacl_keypair(unsigned char *,unsigned char *); #define crypto_sign_ed25519 crypto_sign_ed25519_tinynacl #define crypto_sign_ed25519_open crypto_sign_ed25519_tinynacl_open #define crypto_sign_ed25519_keypair crypto_sign_ed25519_tinynacl_keypair #define crypto_sign_ed25519_BYTES crypto_sign_ed25519_tinynacl_BYTES #define crypto_sign_ed25519_PUBLICKEYBYTES crypto_sign_ed25519_tinynacl_PUBLICKEYBYTES #define crypto_sign_ed25519_SECRETKEYBYTES crypto_sign_ed25519_tinynacl_SECRETKEYBYTES #define crypto_sign_ed25519_IMPLEMENTATION "tinynacl" #define crypto_sign_ed25519_VERSION "-" #endif tinyssh-20180201/crypto/crypto_sign_nistp256ecdsa.c000066400000000000000000000075351322704306500221640ustar00rootroot00000000000000/* 20140917 Jan Mojzis Public domain. */ #include "fep256.h" #include "scp256.h" #include "gep256.h" #include "crypto_hash_sha512.h" #include "crypto_hash_sha256.h" #include "cleanup.h" #include "randombytes.h" #include "crypto_verify_32.h" #include "crypto_sign_nistp256ecdsa.h" int crypto_sign_nistp256ecdsa_tinynacl(unsigned char *sm, unsigned long long *smlen, const unsigned char *m, unsigned long long n, const unsigned char *skorig) { long long i; unsigned char nonce[64], hm[64], sk[32], zero[32]; gep256 R; int ret = -1; /* copy m to sm and copy secret key */ *smlen = n + 64; for (i = n - 1; i >= 0; --i) sm[i + 64] = m[i]; for (i = 31; i >= 0; --i) sm[i + 32] = skorig[i + 32]; for (i = 31; i >= 0; --i) sk[i ] = skorig[i ]; for (i = 31; i >= 0; --i) zero[i] = 0; /* get pseudorandom nonce = H(sk2, m) */ crypto_hash_sha512(nonce, sm + 32, n + 32); scp256_reduce64(nonce); if (crypto_verify_32(nonce, zero) == 0) goto fail; /* compute R and check whether R != 0 */ gep256_scalarmult_base(R, nonce); if (gep256_tobytes(sm, R) != 0) goto fail; if (crypto_verify_32(sm, zero) == 0) goto fail; /* calculate hm = H(m) */ crypto_hash_sha256(hm, sm + 64, n); /* compute S and check whether S != 0 */ scp256_inv(nonce); scp256_mul(sm + 32, sm , sk); scp256_add(sm + 32, sm + 32, hm); scp256_mul(sm + 32, sm + 32, nonce); if (crypto_verify_32(sm + 32, zero) == 0) goto fail; ret = 0; goto cleanup; fail: for (i = 0; i < 64; ++i) sm[i] = 0; cleanup: cleanup(nonce); cleanup(hm); cleanup(sk); cleanup(R); return ret; } int crypto_sign_nistp256ecdsa_tinynacl_open(unsigned char *m, unsigned long long *mlen, const unsigned char *sm, unsigned long long n, const unsigned char *pk) { long long i; unsigned char rcopy[32], scopy[32], tmp[64]; gep256 R, S, A; int ret = -1; /* check input */ if (n < 64) goto fail; /* unpack pk */ if (gep256_frombytes(A, pk) != 0) goto fail; /* copy pk, r, s */ for (i = 0; i < 32; ++i) tmp[i] = 0; for (i = 0; i < 32; ++i) rcopy[i] = sm[i]; for (i = 0; i < 32; ++i) scopy[i] = sm[i + 32]; /* copy sm to m */ for (i = n - 1; i >= 0; --i) m[i] = sm[i]; /* check whether R != 0 and S != 0 */ scp256_reduce32(rcopy); if (crypto_verify_32(rcopy, tmp) == 0) goto fail; scp256_reduce32(scopy); if (crypto_verify_32(scopy, tmp) == 0) goto fail; /* calculate tmp = H(m) */ crypto_hash_sha256(tmp, m + 64, n - 64); /* compute R */ scp256_inv(scopy); scp256_mul(tmp, tmp, scopy); gep256_scalarmult_base(S, tmp); scp256_mul(tmp, rcopy, scopy); gep256_scalarmult(A, A, tmp); gep256_add(R, S, A); /* check R */ if (gep256_tobytes(tmp, R) != 0) goto fail; scp256_reduce32(tmp); if (crypto_verify_32(tmp, rcopy) != 0) goto fail; /* copy message */ n -= 64; *mlen = n; for (i = 0; i < n; ++i) m[i] = m[i + 64]; for (i = 0; i < 64; ++i) m[i + n] = 0; ret = 0; goto cleanup; fail: for (i = 0; i < n; ++i) m[i] = 0; cleanup: cleanup(rcopy); cleanup(scopy); cleanup(tmp); cleanup(R); cleanup(S); cleanup(A); return ret; } /* creates public key and secret key for signing secret key has 2 parts: 32B - the discrete logarithm of the public key 32B - is used for k-generation (k is generated by hashing the secret key together with the entire message) */ int crypto_sign_nistp256ecdsa_tinynacl_keypair(unsigned char *pk, unsigned char *sk) { gep256 A; int ret = -1; randombytes(sk, 64); /* create random initial value */ crypto_hash_sha512(sk, sk, 64); /* use crypto_hash(iv) as sk */ gep256_scalarmult_base(A, sk); /* create pk */ if (gep256_tobytes(pk, A) == 0) ret = 0; cleanup(A); return ret; } tinyssh-20180201/crypto/crypto_sign_nistp256ecdsa.h000066400000000000000000000023571322704306500221660ustar00rootroot00000000000000#ifndef crypto_sign_nistp256ecdsa_H #define crypto_sign_nistp256ecdsa_H #define crypto_sign_nistp256ecdsa_tinynacl_SECRETKEYBYTES 64 #define crypto_sign_nistp256ecdsa_tinynacl_PUBLICKEYBYTES 64 #define crypto_sign_nistp256ecdsa_tinynacl_BYTES 64 extern int crypto_sign_nistp256ecdsa_tinynacl(unsigned char *,unsigned long long *,const unsigned char *,unsigned long long,const unsigned char *); extern int crypto_sign_nistp256ecdsa_tinynacl_open(unsigned char *,unsigned long long *,const unsigned char *,unsigned long long,const unsigned char *); extern int crypto_sign_nistp256ecdsa_tinynacl_keypair(unsigned char *,unsigned char *); #define crypto_sign_nistp256ecdsa crypto_sign_nistp256ecdsa_tinynacl #define crypto_sign_nistp256ecdsa_open crypto_sign_nistp256ecdsa_tinynacl_open #define crypto_sign_nistp256ecdsa_keypair crypto_sign_nistp256ecdsa_tinynacl_keypair #define crypto_sign_nistp256ecdsa_BYTES crypto_sign_nistp256ecdsa_tinynacl_BYTES #define crypto_sign_nistp256ecdsa_PUBLICKEYBYTES crypto_sign_nistp256ecdsa_tinynacl_PUBLICKEYBYTES #define crypto_sign_nistp256ecdsa_SECRETKEYBYTES crypto_sign_nistp256ecdsa_tinynacl_SECRETKEYBYTES #define crypto_sign_nistp256ecdsa_IMPLEMENTATION "tinynacl" #define crypto_sign_nistp256ecdsa_VERSION "-" #endif tinyssh-20180201/crypto/crypto_stream_chacha20.c000066400000000000000000000160251322704306500214700ustar00rootroot00000000000000/* 20180104 Jan Mojzis Public domain. */ #include "crypto_stream_chacha20.h" static unsigned long unpack32(const unsigned char *x) { return (unsigned long) (x[0]) \ | (((unsigned long) (x[1])) << 8) \ | (((unsigned long) (x[2])) << 16) \ | (((unsigned long) (x[3])) << 24); } static void pack32(unsigned char *x, unsigned long u) { x[0] = u; u >>= 8; x[1] = u; u >>= 8; x[2] = u; u >>= 8; x[3] = u; } #define ROTATE32(x, c) ((x) << (c)) | (((x) & 0xffffffff) >> (32 - (c))) #define QUARTERROUND(a, b, c, d) \ a += b; d = ROTATE32(d ^ a, 16); \ c += d; b = ROTATE32(b ^ c, 12); \ a += b; d = ROTATE32(d ^ a, 8); \ c += d; b = ROTATE32(b ^ c, 7); #define TWOROUNDS \ QUARTERROUND( x0, x4, x8, x12) \ QUARTERROUND( x1, x5, x9, x13) \ QUARTERROUND( x2, x6, x10, x14) \ QUARTERROUND( x3, x7, x11, x15) \ QUARTERROUND( x0, x5, x10, x15) \ QUARTERROUND( x1, x6, x11, x12) \ QUARTERROUND( x2, x7, x8, x13) \ QUARTERROUND( x3, x4, x9, x14) #define XORBLOCK(o, i) \ x0 = s0; \ x1 = s1; \ x2 = s2; \ x3 = s3; \ x4 = k0; \ x5 = k1; \ x6 = k2; \ x7 = k3; \ x8 = k4; \ x9 = k5; \ x10 = k6; \ x11 = k7; \ x12 = n0; \ x13 = n1; \ x14 = n2; \ x15 = n3; \ \ TWOROUNDS /* round 1, 2 */ \ TWOROUNDS /* round 3, 4 */ \ TWOROUNDS /* round 5, 6 */ \ TWOROUNDS /* round 7, 8 */ \ TWOROUNDS /* round 9, 10 */ \ TWOROUNDS /* round 11, 12 */ \ TWOROUNDS /* round 13, 14 */ \ TWOROUNDS /* round 15, 16 */ \ TWOROUNDS /* round 17, 18 */ \ TWOROUNDS /* round 19, 20 */ \ \ pack32(o , (x0 + s0) ^ unpack32(i )); \ pack32(o + 4, (x1 + s1) ^ unpack32(i + 4)); \ pack32(o + 8, (x2 + s2) ^ unpack32(i + 8)); \ pack32(o + 12, (x3 + s3) ^ unpack32(i + 12)); \ pack32(o + 16, (x4 + k0) ^ unpack32(i + 16)); \ pack32(o + 20, (x5 + k1) ^ unpack32(i + 20)); \ pack32(o + 24, (x6 + k2) ^ unpack32(i + 24)); \ pack32(o + 28, (x7 + k3) ^ unpack32(i + 28)); \ pack32(o + 32, (x8 + k4) ^ unpack32(i + 32)); \ pack32(o + 36, (x9 + k5) ^ unpack32(i + 36)); \ pack32(o + 40, (x10 + k6) ^ unpack32(i + 40)); \ pack32(o + 44, (x11 + k7) ^ unpack32(i + 44)); \ pack32(o + 48, (x12 + n0) ^ unpack32(i + 48)); \ pack32(o + 52, (x13 + n1) ^ unpack32(i + 52)); \ pack32(o + 56, (x14 + n2) ^ unpack32(i + 56)); \ pack32(o + 60, (x15 + n3) ^ unpack32(i + 60)); #define _CRYPTO_STREAM_XOR(inttype, fcename) \ static int fcename( unsigned char *c, \ const unsigned char *m, \ unsigned long long l, \ const unsigned char *n, \ const unsigned char *k) { \ \ inttype x0, x1, x2, x3, x4, x5, x6, x7; \ inttype x8, x9, x10, x11, x12, x13, x14, x15; \ inttype k0 = unpack32(k ); \ inttype k1 = unpack32(k + 4); \ inttype k2 = unpack32(k + 8); \ inttype k3 = unpack32(k + 12); \ inttype k4 = unpack32(k + 16); \ inttype k5 = unpack32(k + 20); \ inttype k6 = unpack32(k + 24); \ inttype k7 = unpack32(k + 28); \ inttype n0 = 0; \ inttype n1 = 0; \ inttype n2 = unpack32(n ); \ inttype n3 = unpack32(n + 4); \ inttype s0 = 0x61707865; \ inttype s1 = 0x3320646E; \ inttype s2 = 0x79622D32; \ inttype s3 = 0x6B206574; \ unsigned long long u = 0; \ \ if (!l) return 0; \ \ while (l >= 64) { \ XORBLOCK(c, m); \ \ ++u; \ if (!u) return -1; \ n0 = (inttype)(u & 0xffffffff); \ n1 = (inttype)(u >> 32); \ \ l -= 64; \ c += 64; \ m += 64; \ } \ if (l) { \ unsigned char b[64] = {0}; \ long long j; \ \ for (j = 0; j < l; ++j) b[j] = m[j]; \ XORBLOCK(b, b); \ for (j = 0; j < l; ++j) c[j] = b[j]; \ } \ return 0; \ } _CRYPTO_STREAM_XOR(unsigned int, int_crypto_stream_xor) _CRYPTO_STREAM_XOR(unsigned long, long_crypto_stream_xor) int crypto_stream_chacha20_tinynacl_xor(unsigned char *c, const unsigned char *m, unsigned long long l, const unsigned char *n, const unsigned char *k) { if (sizeof(int) == 4) return int_crypto_stream_xor(c, m, l, n, k); return long_crypto_stream_xor(c, m, l, n, k); } int crypto_stream_chacha20_tinynacl(unsigned char *c, unsigned long long l, const unsigned char *n, const unsigned char *k) { long long j; unsigned char ncopy[8], kcopy[32]; for (j = 0; j < 32; ++j) kcopy[j] = k[j]; for (j = 0; j < 8; ++j) ncopy[j] = n[j]; for (j = 0; j < l; ++j) c[j] = 0; return crypto_stream_chacha20_tinynacl_xor(c, c, l, ncopy, kcopy); } tinyssh-20180201/crypto/crypto_stream_chacha20.h000066400000000000000000000015361322704306500214760ustar00rootroot00000000000000#ifndef crypto_stream_chacha20_H #define crypto_stream_chacha20_H #define crypto_stream_chacha20_tinynacl_KEYBYTES 32 #define crypto_stream_chacha20_tinynacl_NONCEBYTES 8 extern int crypto_stream_chacha20_tinynacl(unsigned char *, unsigned long long, const unsigned char *, const unsigned char *); extern int crypto_stream_chacha20_tinynacl_xor(unsigned char *, const unsigned char *, unsigned long long, const unsigned char *, const unsigned char *); #define crypto_stream_chacha20 crypto_stream_chacha20_tinynacl #define crypto_stream_chacha20_xor crypto_stream_chacha20_tinynacl_xor #define crypto_stream_chacha20_KEYBYTES crypto_stream_chacha20_tinynacl_KEYBYTES #define crypto_stream_chacha20_NONCEBYTES crypto_stream_chacha20_tinynacl_NONCEBYTES #define crypto_stream_chacha20_IMPLEMENTATION "tinynacl" #define crypto_stream_chacha20_VERSION "-" #endif tinyssh-20180201/crypto/crypto_uint16.h000066400000000000000000000001561322704306500176750ustar00rootroot00000000000000#ifndef crypto_uint16_h #define crypto_uint16_h #include typedef uint16_t crypto_uint16; #endif tinyssh-20180201/crypto/crypto_uint32.h000066400000000000000000000001561322704306500176730ustar00rootroot00000000000000#ifndef crypto_uint32_h #define crypto_uint32_h #include typedef uint32_t crypto_uint32; #endif tinyssh-20180201/crypto/crypto_uint64.h000066400000000000000000000001561322704306500177000ustar00rootroot00000000000000#ifndef crypto_uint64_h #define crypto_uint64_h #include typedef uint64_t crypto_uint64; #endif tinyssh-20180201/crypto/crypto_uint8.h000066400000000000000000000001521322704306500176120ustar00rootroot00000000000000#ifndef crypto_uint8_h #define crypto_uint8_h #include typedef uint8_t crypto_uint8; #endif tinyssh-20180201/crypto/crypto_verify_16.c000066400000000000000000000002421322704306500203500ustar00rootroot00000000000000#include "verify.h" #include "crypto_verify_16.h" int crypto_verify_16_tinynacl(const unsigned char *x, const unsigned char *y) { return verify(x, y, 16); } tinyssh-20180201/crypto/crypto_verify_16.h000066400000000000000000000006111322704306500203550ustar00rootroot00000000000000#ifndef crypto_verify_16_H #define crypto_verify_16_H #define crypto_verify_16_tinynacl_BYTES 16 extern int crypto_verify_16_tinynacl(const unsigned char *, const unsigned char *); #define crypto_verify_16 crypto_verify_16_tinynacl #define crypto_verify_16_BYTES crypto_verify_16_tinynacl_BYTES #define crypto_verify_16_IMPLEMENTATION "tinynacl" #define crypto_verify_16_VERSION "-" #endif tinyssh-20180201/crypto/crypto_verify_32.c000066400000000000000000000002421322704306500203460ustar00rootroot00000000000000#include "verify.h" #include "crypto_verify_32.h" int crypto_verify_32_tinynacl(const unsigned char *x, const unsigned char *y) { return verify(x, y, 32); } tinyssh-20180201/crypto/crypto_verify_32.h000066400000000000000000000006111322704306500203530ustar00rootroot00000000000000#ifndef crypto_verify_32_H #define crypto_verify_32_H #define crypto_verify_32_tinynacl_BYTES 32 extern int crypto_verify_32_tinynacl(const unsigned char *, const unsigned char *); #define crypto_verify_32 crypto_verify_32_tinynacl #define crypto_verify_32_BYTES crypto_verify_32_tinynacl_BYTES #define crypto_verify_32_IMPLEMENTATION "tinynacl" #define crypto_verify_32_VERSION "-" #endif tinyssh-20180201/crypto/fe.c000066400000000000000000000107261322704306500155400ustar00rootroot00000000000000/* 20140918 Jan Mojzis Public domain. */ #include "fe.h" /* o = 0 */ void fe_0(fe o) { long long i; for (i = 0; i < 8; ++i) o[i] = 0; } /* o = 1 */ void fe_1(fe o) { fe_0(o); o[0] = 1; } /* o = x */ void fe_copy(fe o, const fe x) { long long i; for (i = 0; i < 8; ++i) o[i] = x[i]; } /* if (b) swap(f, g) */ void fe_cswap(fe f, fe g, crypto_uint32 b) { long long i; fe t; b = -b; for (i = 0; i < 8; ++i) t[i] = b & (f[i] ^ g[i]); for (i = 0; i < 8; ++i) f[i] ^= t[i]; for (i = 0; i < 8; ++i) g[i] ^= t[i]; fe_0(t); } /* if (b) f = g */ void fe_cmov(fe f, const fe g, crypto_uint32 b) { long long i; fe t; b = -b; for (i = 0; i < 8; ++i) t[i] = b & (f[i] ^ g[i]); for (i = 0; i < 8; ++i) f[i] ^= t[i]; fe_0(t); } /* o = a * b */ /* Implementation note: fe_mul_() is unrolled version of: void fe_mul_(fel o, const fe a, const fe b) { crypto_uint64 u; long long i, j; for (i = 0; i < 16; ++i) o[i] = 0; for (i = 0; i < 8; ++i) for (j = 0; j < 8; ++j) { u = (crypto_uint64)a[i] * (crypto_uint64)b[j]; o[i + j ] += u & 0xffffffff; o[i + j + 1] += u >> 32; } } */ #define M(i, j) u = (crypto_uint64)a[i] * (crypto_uint64)b[j]; \ o[i + j ] += u & 0xffffffff; \ o[i + j + 1] += u >> 32; void fe_mul_(fel o, const fe a, const fe b) { crypto_uint64 u; long long i; for (i = 0; i < 16; ++i) o[i] = 0; M(0, 0); M(0, 1); M(0, 2); M(0, 3); M(0, 4); M(0, 5); M(0, 6); M(0, 7); M(1, 0); M(1, 1); M(1, 2); M(1, 3); M(1, 4); M(1, 5); M(1, 6); M(1, 7); M(2, 0); M(2, 1); M(2, 2); M(2, 3); M(2, 4); M(2, 5); M(2, 6); M(2, 7); M(3, 0); M(3, 1); M(3, 2); M(3, 3); M(3, 4); M(3, 5); M(3, 6); M(3, 7); M(4, 0); M(4, 1); M(4, 2); M(4, 3); M(4, 4); M(4, 5); M(4, 6); M(4, 7); M(5, 0); M(5, 1); M(5, 2); M(5, 3); M(5, 4); M(5, 5); M(5, 6); M(5, 7); M(6, 0); M(6, 1); M(6, 2); M(6, 3); M(6, 4); M(6, 5); M(6, 6); M(6, 7); M(7, 0); M(7, 1); M(7, 2); M(7, 3); M(7, 4); M(7, 5); M(7, 6); M(7, 7); } /* o = x ^ 2 */ /* Implementation note: fe_sq_() is unrolled version of: void fe_sq_(fel o, const fe a) { crypto_uint64 u; long long i, j; for (i = 0; i < 16; ++i) o[i] = 0; for (i = 0; i < 8; ++i) for (j = i + 1; j < 8; ++j) { u = (crypto_uint64)a[i] * (crypto_uint64)a[j]; o[i + j ] += 2 * (u & 0xffffffff); o[i + j + 1] += 2 * (u >> 32); } for (i = 0; i < 8; ++i) { u = (crypto_uint64)a[i] * (crypto_uint64)a[i]; o[2 * i ] += (u & 0xffffffff); o[2 * i + 1] += (u >> 32); } } */ #define M2(i, j) u = (crypto_uint64)a[i] * (crypto_uint64)a[j]; \ o[i + j ] += 2 * (u & 0xffffffff); \ o[i + j + 1] += 2 * (u >> 32); #define SQ(i) u = (crypto_uint64)a[i] * (crypto_uint64)a[i]; \ o[2 * i ] += (u & 0xffffffff); \ o[2 * i + 1] += (u >> 32) void fe_sq_(fel o, const fe a) { crypto_uint64 u; long long i; for (i = 0; i < 16; ++i) o[i] = 0; M2(0, 1); M2(0, 2); M2(0, 3); M2(0, 4); M2(0, 5); M2(0, 6); M2(0, 7); M2(1, 2); M2(1, 3); M2(1, 4); M2(1, 5); M2(1, 6); M2(1, 7); M2(2, 3); M2(2, 4); M2(2, 5); M2(2, 6); M2(2, 7); M2(3, 4); M2(3, 5); M2(3, 6); M2(3, 7); M2(4, 5); M2(4, 6); M2(4, 7); M2(5, 6); M2(5, 7); M2(6, 7); SQ(0); SQ(1); SQ(2); SQ(3); SQ(4); SQ(5); SQ(6); SQ(7); } /* if (p < r) r -= p */ void fe_reducesmall(fe r, const fe p, const crypto_uint64 carry) { crypto_uint64 pb = 0, b; long long i; fe t; for (i = 0; i < 8; ++i) { pb += (crypto_uint64)p[i]; b = (crypto_uint64)r[i] - pb; b >>= 63; t[i] = (crypto_uint64)r[i] - pb + (b << 32); pb = b; } b = carry - pb; b >>= 63; b -= 1; for (i = 0; i < 8; ++i) r[i] ^= b & (r[i] ^ t[i]); fe_0(t); } /* if (f == 0 && g == 0 && h == 0) return 1; else return 0; */ int fe_iszero3(const fe f, const fe g, const fe h) { long long i; crypto_uint32 x = 0; for (i = 0; i < 8; ++i) x |= f[i]; for (i = 0; i < 8; ++i) x |= g[i]; for (i = 0; i < 8; ++i) x |= h[i]; return (4294967296ULL - (crypto_uint64)x) >> 32; } /* if (f == 0 && g == 0) return 1; else return 0; */ int fe_iszero2(const fe f, const fe g) { long long i; crypto_uint32 x = 0; for (i = 0; i < 8; ++i) x |= f[i]; for (i = 0; i < 8; ++i) x |= g[i]; return (4294967296ULL - (crypto_uint64)x) >> 32; } tinyssh-20180201/crypto/fe.h000066400000000000000000000011041322704306500155330ustar00rootroot00000000000000#ifndef _FE_H____ #define _FE_H____ #include "crypto_uint32.h" #include "crypto_uint64.h" typedef crypto_uint32 fe[8]; typedef crypto_uint64 fel[16]; extern void fe_0(fe); extern void fe_1(fe); extern void fe_copy(fe, const fe); extern void fe_cswap(fe, fe, crypto_uint32); extern void fe_cmov(fe, const fe, crypto_uint32); extern void fe_mul_(fel, const fe, const fe); extern void fe_sq_(fel, const fe); extern void fe_reducesmall(fe, const fe, const crypto_uint64); extern int fe_iszero3(const fe, const fe, const fe); extern int fe_iszero2(const fe, const fe); #endif tinyssh-20180201/crypto/fe25519.c000066400000000000000000000134341322704306500161450ustar00rootroot00000000000000#include "uint32_pack.h" #include "uint32_unpack.h" #include "crypto_verify_32.h" #include "cleanup.h" #include "fe.h" #include "fe25519.h" /* p = 2^255 - 19 */ static const fe p = { 0xffffffed, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x7fffffff }; /* p3 = 3 * p */ static const crypto_uint64 p3[8] = { 0x2ffffffc7ULL, 0x2fffffffdULL, 0x2fffffffdULL, 0x2fffffffdULL, 0x2fffffffdULL, 0x2fffffffdULL, 0x2fffffffdULL, 0x17ffffffdULL }; /* reduction modulo p: 16 limbs -> 8 limbs */ static void fe25519_reducebig(fe o, fel t) { crypto_uint64 u = 0; long long i; for (i = 0; i < 7; ++i) { u += t[i] + 38ULL * t[i + 8]; t[i] = u & 0xffffffff; u >>= 32; } u += t[i] + 38ULL * t[i + 8]; t[i] = u & 0x7fffffff; u >>= 31; u *= 19ULL; for (i = 0; i < 8; ++i) { u += t[i]; o[i] = u & 0xffffffff; u >>= 32; } } /* o = (a * b) % p */ void fe25519_mul(fe o, const fe a, const fe b) { fel t; fe_mul_(t, a, b); fe25519_reducebig(o, t); cleanup(t); } /* o = (a ^ 2) % p */ void fe25519_sq(fe o, const fe a) { fel t; fe_sq_(t, a); fe25519_reducebig(o, t); cleanup(t); } /* o = (121666 * f) % p; */ void fe25519_mul121666(fe o, const fe f) { crypto_uint64 u = 0; long long i; for (i = 0; i < 7; ++i) { u += (crypto_uint64)121666 * (crypto_uint64)f[i]; o[i] = u & 0xffffffff; u >>= 32; } u += (crypto_uint64)121666 * (crypto_uint64)f[i]; o[i] = u & 0x7fffffff; u >>= 31; u *= 19ULL; for (i = 0; i < 8; ++i) { u += o[i]; o[i] = u & 0xffffffff; u >>= 32; } } /* o = (x + y) % p */ void fe25519_add(fe o, const fe x, const fe y) { crypto_uint64 u = 0; long long i; for (i = 0; i < 7; ++i) { u += (crypto_uint64)x[i] + (crypto_uint64)y[i]; o[i] = u & 0xffffffff; u >>= 32; } u += (crypto_uint64)x[i] + (crypto_uint64)y[i]; o[i] = u & 0x7fffffff; u >>= 31; u *= 19ULL; for (i = 0; i < 8; ++i) { u += o[i]; o[i] = u & 0xffffffff; u >>= 32; } } /* o = (x - y) % p */ void fe25519_sub(fe o, const fe x, const fe y) { crypto_uint64 u = 0; long long i; for (i = 0; i < 7; ++i) { u += p3[i] - (crypto_uint64)y[i] + (crypto_uint64)x[i]; o[i] = u & 0xffffffff; u >>= 32; } u += p3[i] - (crypto_uint64)y[i] + (crypto_uint64)x[i]; o[i] = u & 0x7fffffff; u >>= 31; u *= 19ULL; for (i = 0; i < 8; ++i) { u += o[i]; o[i] = u & 0xffffffff; u >>= 32; } } /* o = -x % p */ void fe25519_neg(fe o, const fe x) { fe t; fe_0(t); fe25519_sub(o, t, x); } /* o = (1 / z) % p ... using Fermat's Little Theorem */ void fe25519_inv(fe o, const fe z) { fe t0, t1, t2, t3; long long i; fe25519_sq(t0, z); for (i = 1; i < 1; ++i) fe25519_sq(t0, t0); fe25519_sq(t1,t0); for (i = 1; i < 2; ++i) fe25519_sq(t1, t1); fe25519_mul(t1, z, t1); fe25519_mul(t0, t0, t1); fe25519_sq(t2, t0); for (i = 1; i < 1; ++i) fe25519_sq(t2, t2); fe25519_mul(t1, t1, t2); fe25519_sq(t2, t1); for (i = 1; i < 5; ++i) fe25519_sq(t2, t2); fe25519_mul(t1, t2, t1); fe25519_sq(t2, t1); for (i = 1; i < 10; ++i) fe25519_sq(t2, t2); fe25519_mul(t2, t2, t1); fe25519_sq(t3, t2); for (i = 1; i < 20; ++i) fe25519_sq(t3, t3); fe25519_mul(t2, t3, t2); fe25519_sq(t2, t2); for (i = 1; i < 10; ++i) fe25519_sq(t2, t2); fe25519_mul(t1, t2, t1); fe25519_sq(t2, t1); for (i = 1; i < 50; ++i) fe25519_sq(t2, t2); fe25519_mul(t2, t2, t1); fe25519_sq(t3, t2); for (i = 1; i < 100; ++i) fe25519_sq(t3, t3); fe25519_mul(t2, t3, t2); fe25519_sq(t2, t2); for (i = 1; i < 50; ++i) fe25519_sq(t2, t2); fe25519_mul(t1, t2, t1); fe25519_sq(t1, t1); for (i = 1; i < 5; ++i) fe25519_sq(t1, t1); fe25519_mul(o, t1, t0); cleanup(t0); cleanup(t1); cleanup(t2); cleanup(t3); } void fe25519_pow22523(fe out, const fe z) { fe t0, t1, t2; long long i; fe25519_sq(t0, z); for (i = 1; i < 1; ++i) fe25519_sq(t0, t0); fe25519_sq(t1, t0); for (i = 1; i < 2; ++i) fe25519_sq(t1, t1); fe25519_mul(t1, z, t1); fe25519_mul(t0, t0, t1); fe25519_sq(t0, t0); for (i = 1; i < 1; ++i) fe25519_sq(t0, t0); fe25519_mul(t0, t1, t0); fe25519_sq(t1, t0); for (i = 1; i < 5; ++i) fe25519_sq(t1, t1); fe25519_mul(t0, t1, t0); fe25519_sq(t1, t0); for (i = 1; i < 10; ++i) fe25519_sq(t1, t1); fe25519_mul(t1, t1, t0); fe25519_sq(t2, t1); for (i = 1; i < 20; ++i) fe25519_sq(t2, t2); fe25519_mul(t1, t2, t1); fe25519_sq(t1, t1); for (i = 1; i < 10; ++i) fe25519_sq(t1, t1); fe25519_mul(t0, t1, t0); fe25519_sq(t1, t0); for (i = 1; i < 50; ++i) fe25519_sq(t1, t1); fe25519_mul(t1, t1, t0); fe25519_sq(t2, t1); for (i = 1; i < 100; ++i) fe25519_sq(t2, t2); fe25519_mul(t1, t2, t1); fe25519_sq(t1, t1); for (i = 1; i < 50; ++i) fe25519_sq(t1, t1); fe25519_mul(t0, t1, t0); fe25519_sq(t0, t0); for (i = 1; i < 2; ++i) fe25519_sq(t0, t0); fe25519_mul(out, t0, z); cleanup(t0); cleanup(t1); cleanup(t2); } /* converts field-element into byte-array */ void fe25519_tobytes(unsigned char *out, const fe in) { long long i; fe x; fe_copy(x, in); fe_reducesmall(x, p, 0); for (i = 0; i < 8; ++i) uint32_pack(out + 4 * i, x[i]); cleanup(x); } /* converts byte-array into field-element */ void fe25519_frombytes(fe out, const unsigned char *in) { long long i; for (i = 0; i < 8; ++i) out[i] = uint32_unpack(in + 4 * i); out[7] &= 0x7fffffff; } /* if (f == 0) return 0; else return -1; */ static const unsigned char zero[32] = {0}; int fe25519_isnonzero(const fe f) { unsigned char s[32]; int r; fe25519_tobytes(s, f); r = crypto_verify_32(s, zero); cleanup(s); return r; } /* if (f >= 0) return 0; else return -1; */ int fe25519_isnegative(const fe f) { unsigned char s[32]; int r; fe25519_tobytes(s,f); r = s[0] & 1; cleanup(s); return r; } tinyssh-20180201/crypto/fe25519.h000066400000000000000000000011561322704306500161500ustar00rootroot00000000000000#ifndef _FE25519_H____ #define _FE25519_H____ #include "fe.h" extern void fe25519_mul(fe, const fe, const fe); extern void fe25519_sq(fe, const fe); extern void fe25519_add(fe, const fe, const fe); extern void fe25519_mul121666(fe, const fe); extern void fe25519_sub(fe, const fe, const fe); extern void fe25519_neg(fe, const fe); extern void fe25519_inv(fe, const fe); extern void fe25519_pow22523(fe, const fe); extern void fe25519_tobytes(unsigned char *, const fe); extern void fe25519_frombytes(fe, const unsigned char *); extern int fe25519_isnonzero(const fe); extern int fe25519_isnegative(const fe); #endif tinyssh-20180201/crypto/fep256.c000066400000000000000000000133741322704306500161570ustar00rootroot00000000000000/* 20140918 Jan Mojzis Public domain. */ #include "uint32_pack_big.h" #include "uint32_unpack_big.h" #include "crypto_verify_32.h" #include "crypto_int64.h" #include "cleanup.h" #include "fe.h" #include "fep256.h" /* p = 2^256 - 2^224 + 2^192 + 2^96 - 1 */ static const fe p = { 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0xffffffff }; /* pl = 2^256 - p */ static const fe pl = { 0x00000001, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xfffffffe, 0x00000000 }; /* reduction modulo p: 9 limbs -> 8 limbs note: 0 < x < 9p */ static void fep256_reduce(fe o, crypto_uint64 t[9]) { crypto_uint64 u; long long i; u = 0; for (i = 0; i < 9; ++i) { u += t[i]; t[i] = u & 0xffffffff; u >>= 32; } u = 0; for (i = 0; i < 8; ++i) { u += t[i] + t[8] * (crypto_uint64)pl[i]; o[i] = u & 0xffffffff; u >>= 32; } fe_reducesmall(o, p, u); } /* reduction modulo p: 16 limbs -> 8 limbs */ static void fep256_reducebig(fe o, fel t) { crypto_uint64 u = 0; crypto_int64 x[9], c, i; for (i = 0; i < 16; ++i) { u += t[i]; t[i] = u & 0xffffffff; u >>= 32; } x[8] = 0; x[7] = t[7] + 2 * t[15] + t[15] + t[ 8] - t[10] - t[11] - t[12] - t[13]; x[6] = t[6] + 2 * t[14] + 2 * t[15] + t[14] + t[13] - t[ 8] - t[ 9] ; x[5] = t[5] + 2 * t[13] + 2 * t[14] + t[15] - t[10] - t[11] ; x[4] = t[4] + 2 * t[12] + 2 * t[13] + t[14] - t[ 9] - t[10] ; x[3] = t[3] + 2 * t[11] + 2 * t[12] + t[13] - t[15] - t[ 8] - t[ 9] ; x[2] = t[2] + + t[10] + t[11] - t[13] - t[14] - t[15] ; x[1] = t[1] + + t[ 9] + t[10] - t[12] - t[13] - t[14] - t[15]; x[0] = t[0] + + t[ 8] + t[ 9] - t[11] - t[12] - t[13] - t[14]; x[0] += x[8]; x[3] -= x[8]; x[6] -= x[8]; x[7] += x[8]; x[8] = 4; for (i = 0; i < 8; ++i) { x[i] += (4LL << 32) - (crypto_uint64)pl[i] * 4LL; c = x[i] >> 32; x[i + 1] += c - 4; x[i ] -= c << 32; } fep256_reduce(o, (crypto_uint64 *)x); cleanup(x); } /* o = (a * b) % p */ void fep256_mul(fe o, const fe a, const fe b) { fel t; fe_mul_(t, a, b); fep256_reducebig(o, t); cleanup(t); } /* o = (a ^ 2) % p */ void fep256_sq(fe o, const fe a) { fel t; fe_sq_(t, a); fep256_reducebig(o, t); cleanup(t); } /* o = (x * y) % p; */ void fep256_mulx_(fe o, const fe x, const crypto_uint64 y) { crypto_uint64 t[9]; long long i; t[8] = 0; for (i = 0; i < 8; ++i) t[i] = (crypto_uint64)x[i] * y; fep256_reduce(o, t); cleanup(t); } /* o = (x * 2) % p; */ void fep256_mul2(fe o, const fe x) { crypto_uint64 u = 0; long long i; for (i = 0; i < 8; ++i) { u += (crypto_uint64)x[i] * 2ULL; o[i] = u & 0xffffffff; u >>= 32; } fe_reducesmall(o, p, u); } /* o = (x + y) % p; */ void fep256_add(fe o, const fe x, const fe y) { crypto_uint64 u = 0; long long i; for (i = 0; i < 8; ++i) { u += (crypto_uint64)x[i] + (crypto_uint64)y[i]; o[i] = u & 0xffffffff; u >>= 32; } fe_reducesmall(o, p, u); } /* o = (x - y) % p; */ void fep256_sub(fe o, const fe x, const fe y) { crypto_uint64 a, b, pb, u; long long i; u = pb = 0; for (i = 0; i < 8; ++i) { pb += (crypto_uint64)y[i]; a = (crypto_uint64)x[i] + (crypto_uint64)p[i]; b = a - pb; b >>= 63; a += (b << 32) - pb; pb = b; u += a; o[i] = u & 0xffffffff; u >>= 32; } fe_reducesmall(o, p, u); } /* o = -x % p */ void fep256_neg(fe o, const fe x) { fe t; fe_0(t); fep256_sub(o, t, x); } /* out = (1 / in) % p; ... using Fermat's Little Theorem 13 * mul, 255 * sq */ void fep256_inv(fe out, const fe in) { fe o, x2, x4, x8, x16, x32; long long i; fep256_sq(o, in); for (i = 0; i < 1 - 1; ++i) fep256_sq(o, o); fep256_mul(x2, o, in); fep256_sq(o, x2); for (i = 0; i < 2 - 1; ++i) fep256_sq(o, o); fep256_mul(x4, o, x2); fep256_sq(o, x4); for (i = 0; i < 4 - 1; ++i) fep256_sq(o, o); fep256_mul(x8, o, x4); fep256_sq(o, x8); for (i = 0; i < 8 - 1; ++i) fep256_sq(o, o); fep256_mul(x16, o, x8); fep256_sq(o, x16); for (i = 0; i < 16 - 1; ++i) fep256_sq(o, o); fep256_mul(x32, o, x16); fep256_sq(o, x32); for (i = 0; i < 32 - 1; ++i) fep256_sq(o, o); fep256_mul(o, o, in); for (i = 0; i < 128; ++i) fep256_sq(o, o); fep256_mul(o, o, x32); for (i = 0; i < 32; ++i) fep256_sq(o, o); fep256_mul(o, o, x32); for (i = 0; i < 16; ++i) fep256_sq(o, o); fep256_mul(o, o, x16); for (i = 0; i < 8; ++i) fep256_sq(o, o); fep256_mul(o, o, x8); for (i = 0; i < 4; ++i) fep256_sq(o, o); fep256_mul(o, o, x4); for (i = 0; i < 2; ++i) fep256_sq(o, o); fep256_mul(o, o, x2); for (i = 0; i < 2; ++i) fep256_sq(o, o); fep256_mul(out, o, in); cleanup(o); cleanup(x2); cleanup(x4); cleanup(x8); cleanup(x16); cleanup(x32); } /* converts field-element into byte-array */ void fep256_tobytes(unsigned char *out, const fe in) { long long i; fe x; fe_copy(x, in); fe_reducesmall(x, p, 0); for (i = 0; i < 8; ++i) uint32_pack_big(out + 28 - 4 * i, x[i]); cleanup(x); } /* converts byte-array into field-element */ void fep256_frombytes(fe out, const unsigned char *in) { long long i; for (i = 0; i < 8; ++i) out[i] = uint32_unpack_big(in + 28 - 4 * i); fe_reducesmall(out, p, 0); } /* if (f == 0) return 0; else return -1; */ static const unsigned char zero[32] = {0}; int fep256_isnonzero(const fe f) { unsigned char s[32]; int r; fep256_tobytes(s, f); r = crypto_verify_32(s, zero); cleanup(s); return r; } tinyssh-20180201/crypto/fep256.h000066400000000000000000000012441322704306500161550ustar00rootroot00000000000000#ifndef _FEP256_H____ #define _FEP256_H____ #include "fe.h" extern void fep256_mul(fe, const fe, const fe); extern void fep256_sq(fe, const fe); extern void fep256_mul2(fe, const fe); extern void fep256_mulx_(fe, const fe, const crypto_uint64); #define fep256_mul3(x, y) fep256_mulx_(x, y, 3) #define fep256_mul6(x, y) fep256_mulx_(x, y, 6) extern void fep256_inv(fe, const fe); extern void fep256_add(fe, const fe, const fe); extern void fep256_sub(fe, const fe, const fe); extern void fep256_neg(fe, const fe); extern void fep256_tobytes(unsigned char *, const fe); extern void fep256_frombytes(fe, const unsigned char *); extern int fep256_isnonzero(const fe); #endif tinyssh-20180201/crypto/ge25519.base000066400000000000000000002222401322704306500166330ustar00rootroot00000000000000{ { { 0xf58c3b85,0x2fbc93c6,0xfb8c0e19,0xcf932dc6,0x643d42c2,0x270b4898,0x33d4ba65,0x07cf9d3a }, { 0xd740913e,0x9d103905,0xd140beb3,0xfd399f05,0x688f8a09,0xa5c18434,0x98f81267,0x44fd2f92 }, { 0x877aaa68,0xabc91205,0xccaac49e,0x26d9e823,0xdd43598c,0x5a1b7dcb,0x9f0c65a8,0x6f117b68 }, }, { { 0x933c71d7,0x9224e7fc,0x7a0ff5b5,0x9f469d96,0xe1d60702,0x5aa69a65,0xa87d2e2e,0x590c063f }, { 0x42b4d5a8,0x8a99a560,0x4e60acf6,0x8f2b810c,0xb16e37aa,0xe09e236b,0x69c92555,0x6bb595a6 }, { 0xa59b7a5f,0x43faa8b3,0x5d9acf78,0x36c16bdd,0x0b3d6a31,0x500fa084,0x3ea50b73,0x701af5b1 }, }, { { 0x4cee9730,0xaf25b0a8,0xe8864b8a,0x025a8430,0x9f016732,0xc11b5002,0x9a80f8f4,0x7a164e1b }, { 0xa4fcd265,0x56611fe8,0xe5c1ba7d,0x3bd353fd,0x214bd6bd,0x8131f31a,0x555bda62,0x2ab91587 }, { 0x0dd0d889,0x14ae933f,0x1c35da62,0x58942322,0x8cf2db4c,0xd170e545,0x12b9b4c6,0x5a2826af }, }, { { 0x8efc099f,0x287351b9,0x7dfd2538,0x6765c6f4,0xfb0a9265,0xca348d3d,0x21e58727,0x680e9103 }, { 0x056818bf,0x95fe050a,0x5660faa9,0x327e8971,0x06a05073,0xc3e8e3cd,0x7445a49a,0x27933f4c }, { 0xc476ff09,0x5a13fbe9,0x7b5cc172,0x6e9e3945,0x102b4494,0x5ddbdcf9,0x63553e2b,0x7f9d0cbf }, }, { { 0x08a5bb33,0xa212bc44,0xc75eed02,0x8d5048c3,0x5abfec44,0xdd1beb0c,0x46e206eb,0x2945ccf1 }, { 0xa447d6ba,0x7f9182c3,0x4b2729b7,0xd50014d1,0xb864a087,0xe33cf11c,0xeb1b55f3,0x154a7e73 }, { 0x812a8285,0xbcbbdbf1,0xd0bdd1fc,0x270e0807,0x1bbda72d,0xb41b670b,0x6b3bb69a,0x43aabe69 }, }, { { 0x77157131,0x3a0ceeeb,0x00c8af88,0x9b271589,0xda59a736,0x8065b668,0xa2cc38bd,0x51e57bb6 }, { 0x7b7d8ca4,0x499806b6,0x27d22739,0x575be284,0x204553b9,0xbb085ce7,0xae417884,0x38b64c41 }, { 0x02ea4b71,0x85ac3267,0x41a1bb01,0xbe70e003,0x083bc144,0x53e4a24b,0x9f0d61e3,0x10b8e91a }, }, { { 0x944ea3bf,0x6b1a5cd0,0xb39dc0d2,0x7470353a,0x28542e49,0x71b25282,0x283c927e,0x461bea69 }, { 0xaa3221b1,0xba6f2c9a,0x3bba23a7,0x6ca02153,0x92192c3a,0x9dea764f,0x2e5317e0,0x1d6edd5d }, { 0x01b8b3a2,0xf1836dc8,0x053ea49a,0xb3035f47,0x5877adf3,0x529c41ba,0x6a0f90a7,0x7a9fbb1c }, }, { { 0x04dd3e8f,0x59b75966,0xe288702c,0x6cb30377,0x5ed9c323,0xb1339c66,0x61bce52f,0x0915e760 }, { 0xf39234d9,0xe2a75ded,0xe1b558f9,0x963d7680,0x6e3c23fb,0x2c2741ac,0x320e01c3,0x3a9024a1 }, { 0xc9a2911a,0xe7c1f5d9,0x8bcca7d7,0xb8a37178,0x0eb62a32,0x63641219,0x2ecc4e95,0x26907c5c }, }, }, { { { 0x632f9c1d,0x2eccdd0e,0x76893115,0x51d0b696,0xa8637a58,0x52dfb76b,0xa00eef39,0x6dd37d49 }, { 0x49aa515e,0xed5b6354,0x0bc6823a,0xa865c49f,0x5b42d1c4,0x850c1fe9,0x03d315b9,0x30d76d6f }, { 0x2106e4c7,0x6c444417,0x928d7f69,0xfb53d680,0x694d3f26,0xb4739ea4,0x2e864bb0,0x10c69711 }, }, { { 0x8358c805,0x0ca62aa0,0x7a204247,0x6a3d4ae3,0x3b11eddc,0x7464d3a6,0x550806ef,0x03bf9baf }, { 0x7dbe5fde,0x6493c427,0x19ad7ea2,0x265d4fad,0x46304590,0x0e00dfc8,0xed66fe09,0x25e61cab }, { 0xcc586604,0x3f13e128,0xb459747e,0x6f5873ec,0xcc1268f5,0xa0b63ded,0x4586e22c,0x566d7863 }, }, { { 0xc65a2fd0,0xa1054285,0xf31667c3,0x6c64112a,0x731aee58,0x680ae240,0x4793b22a,0x14fba5f3 }, { 0x9cc10834,0x1637a49f,0xa89bc451,0xbc8e56d5,0x7f7fd2db,0x1cb5ec0f,0x5ecc35d9,0x33975bca }, { 0x6985f7d4,0x3cd74616,0xc9c80057,0x593e5e84,0x7b61131e,0x2fc3f2b6,0x83fc526c,0x14829cea }, }, { { 0x4e71ecb8,0x21e70b2f,0x40a477e3,0xe656ddb9,0xce1d4f80,0xbf6556ce,0x535d7b7e,0x05fc3bc4 }, { 0x97dd95c2,0xff437b84,0xaa4eb5a7,0x6c744e30,0x3c85e88b,0x9e0c5d61,0x5f758173,0x2fd9c71e }, { 0x52afdedd,0x24b8b3ae,0xed3b30cf,0x3495638c,0xa9be8195,0x33a4bc83,0x5c651f04,0x37376747 }, }, { { 0x14246590,0x634095cb,0x16c15535,0xef121440,0x8910bc60,0x9e38140c,0x30907c8c,0x6bf59057 }, { 0x40d1add9,0x2fba99fd,0x96f4d027,0xb307166f,0x15f03bae,0x4363f052,0x3b18f999,0x1fbea56c }, { 0xe1415b8a,0x0fa778f1,0xbac3a77e,0x06409ff7,0x9aa29a50,0x6f52d7b8,0x7a635a56,0x02521cf6 }, }, { { 0x772f5ee4,0xb1146720,0x96079ace,0xe8f894b1,0x00ac824a,0x4af8224d,0xf7cd6cc4,0x001753d9 }, { 0x0a9d5294,0x513fee0b,0x0fdf5a66,0x8f98e75c,0xbfe107ce,0xd4618688,0x71382ced,0x3fa00a7e }, { 0x963ddb34,0x3c69232d,0xb4973858,0x1dde87da,0xa091f285,0xaad7d1f9,0xa048edb6,0x12b5fe2f }, }, { { 0xad6f1e92,0xdf2b7c26,0x504b8913,0x4b66d323,0x751c8bc3,0x8c409dc0,0x0796c7b8,0x6f7e93c2 }, { 0x96fce34d,0x71f0fbc4,0xadf35bed,0x73b9826b,0xff28c561,0xd2047261,0x6fb1206f,0x749b76f9 }, { 0xaea6ae05,0x1f5af604,0xbee49c99,0xc12351f1,0xeeff6b66,0x61a808b5,0x01e02151,0x0fcec10f }, }, { { 0xc4244e45,0x3df2d29d,0x93d8de0a,0x2b020e74,0x820c214d,0x6cc8067e,0x6feab90a,0x41377916 }, { 0x49fe1e44,0x644d58a6,0x31ad777e,0x21fcaea2,0x887fd0d2,0x02441c5a,0x83c511f3,0x4901aa71 }, { 0x8c1af8f0,0x08b1b754,0x246299b4,0xce0f7a7c,0x1e06d939,0xf760b0f9,0x726d1213,0x41bb887b }, }, }, { { { 0x7c6691ae,0x7e234c59,0x0a85b4c8,0x64889d3d,0x354afae7,0xdae2c90c,0x0c6a9e1d,0x0a871e07 }, { 0x744346be,0x40e87d44,0x15b52b25,0x1d48dad4,0xa13b603e,0x7c3a8a18,0x2fcdbdf7,0x4eb728c1 }, { 0x4bbc8989,0x3301b599,0x5bdd4260,0x736bae3a,0x19d59e3c,0x0d61ade2,0x2685d464,0x3ee7300f }, }, { { 0x841e7518,0x43fa7947,0x639c46d7,0xe5c6fa59,0xe3052b74,0xa1065e1d,0xcfb89030,0x7d47c6a2 }, { 0x9e7dd6b7,0xf5d255e4,0x610b1eac,0x8016115c,0x92e187ca,0x3c99975d,0x979125c2,0x13815762 }, { 0x8ef0d6e0,0x3fdad014,0x91546f3c,0x9d3e749a,0x26bb8157,0x71ec6210,0x34c9ec80,0x148cf58d }, }, { { 0x9ae4756d,0xe2572f7d,0x88f3487f,0x56c345bb,0x6960a88d,0x9fd10b6d,0x4eaea1b9,0x278febad }, { 0x7934f027,0x46a492f6,0xf6840aa9,0x469984be,0x89611854,0x5ca1bc2a,0xbd5dbbd4,0x3ff2fa1e }, { 0x8c933966,0xb1aa681f,0x20290c98,0x8c21949c,0x219d3c52,0x39115291,0xfe9c677b,0x4104dd02 }, }, { { 0xdb096ab8,0x81214e06,0x0ce44f35,0x21a8b6c9,0x409e2af5,0x6524c12a,0x8efca481,0x0165b5a4 }, { 0x1124422a,0x72b2bf5e,0x98a33ab5,0xa1fa0c33,0xfa52b666,0x94cb6101,0xafaf53d5,0x2c863b00 }, { 0xa0846a76,0xf190a474,0xcd2f7cc0,0x12eff984,0x58aa2b8f,0x695e2906,0xbffec8b8,0x591b67d9 }, }, { { 0x9f18b55d,0x99b9b371,0xa18c641e,0xe465e5fa,0xc29f05ed,0x61081136,0x7030128b,0x489b4f86 }, { 0x80b49bfa,0x312f0d1c,0xabf3ec8a,0x5979515e,0x9ef01c88,0x727033c0,0xca8f7bcb,0x3de02ec7 }, { 0x3aeb92ef,0xd232102d,0x6116a861,0xe16253b4,0x190baa24,0x3d7eabe7,0x496cbebf,0x49f5fbba }, }, { { 0x1e9c572e,0x155d628c,0xc5884741,0x8a4d86ac,0x515763eb,0x91a352f6,0x8867515b,0x06a1a6c2 }, { 0x8a5bcfd4,0x30949a10,0xbc6473eb,0xdc40dd70,0x307c0d1c,0x92c294c1,0xcbfa6e74,0x5604a86d }, { 0x7c1764b6,0x7288d1d4,0xe0418b51,0x72541140,0x18acf6d1,0x9f031a60,0xfe2742c6,0x20989e89 }, }, { { 0x85eaec2e,0x1674278b,0x7acb2bdf,0x5621dc07,0x61cbf45a,0x640a4c16,0xf70595d3,0x730b9950 }, { 0x3a2dcc7f,0x499777fd,0xa54fd892,0x32857c2c,0xd207e3a0,0xa279d864,0x0ca67e29,0x0403ed1d }, { 0x874ec552,0xc94b2d35,0x98246f8d,0xc5e6c8cf,0x16c035ce,0xf7cb46fa,0x08303dcc,0x5bd74543 }, }, { { 0x15e7792a,0x85c49321,0xbdcdddc9,0xc64c89a2,0xada3d762,0x9d1e3da8,0x3067f82c,0x5bb7db12 }, { 0x28b24cc2,0x7f9ad195,0x6335c181,0x7f6b5465,0x4fc07236,0x66b8b66e,0x7380ad83,0x133a7800 }, { 0xc6ca62be,0x0961f467,0x211952ee,0x04ec21d6,0x9bd54770,0x18236077,0x58f0e0d2,0x740dca6d }, }, }, { { { 0x0478433c,0x231a8c57,0xc281439d,0xb7b5270e,0xe3d9079f,0xdbaa99ea,0x6c2b03d9,0x2c03f525 }, { 0x52cfce4e,0xdf48ee07,0x06ec08b7,0xc3fffaf3,0xb95459c4,0x05710b2a,0x963ea38d,0x161d25fa }, { 0x7b53a47d,0x790f1875,0xcf0c5879,0x307b0130,0x257ef7f9,0x31903d77,0xbd96bbaf,0x699468bd }, }, { { 0x6aa91948,0xd8dd3de6,0x2fc0d2cc,0x485064c2,0x34fdea2f,0x9b482466,0x6c4a2e3a,0x293e1c4e }, { 0xf4dafecf,0xbd1f2f46,0xa47fd6f7,0x7cef0114,0x4a47b37f,0xd31ffdda,0x73905785,0x525219a4 }, { 0x925112e1,0x376e134b,0xdca15da0,0x703778b5,0x461c3111,0xb04589af,0x7f032823,0x5b605c44 }, }, { { 0xf0e7f04c,0x3be9fec6,0x75e34962,0x866a579e,0x1e1de61a,0x5542ef16,0xcc5abdd5,0x2f12fef4 }, { 0x20c47c89,0xb9658059,0x923b8fcc,0xe7f0100c,0x02e2ef77,0x00012565,0xa8aeb3ee,0x24a76dce }, { 0xdfc0c740,0x0a4522b2,0x40c9a407,0x10d06e7f,0x78cff668,0xc6cf1441,0x18a43790,0x5e607b25 }, }, { { 0xa596cf14,0xa02c431c,0xaed3e400,0xe3c42d40,0x2e0f26db,0xd2452680,0x9e457068,0x201f3313 }, { 0x6cdf1818,0x58b31d8f,0xc36258a2,0x35cfa74f,0x66e61d6e,0xe1b3ff4f,0x6ccdd5f7,0x5067acab }, { 0x08039d51,0xfd527f6b,0x017c0006,0x18b14964,0x2e25a4a8,0xd5220eb0,0x62460375,0x397cba88 }, }, { { 0xc81379e7,0x7815c3fb,0xdde12af1,0xa6619420,0x85a8fdd5,0xffa9c0f8,0xc1e1c252,0x771b4022 }, { 0xf05959b2,0x30c13093,0xe9a97976,0xe23aa18d,0x721d5e26,0x222fd491,0x766e6c3a,0x2339d320 }, { 0x513a2fa7,0xd87dd986,0xf9d4cf08,0xf5ac9b71,0x1ea283b3,0xd06bc31b,0x19971a76,0x331a1892 }, }, { { 0x9d7572af,0x26512f3a,0x68074a9e,0x5bcbe288,0x1180f7c4,0x84edc1c1,0xf649a67b,0x1ac9619f }, { 0xfb4f80c6,0xf5166f45,0x61c775cf,0x9c36c7de,0x9041d91c,0xe3d4e81b,0x83bdfe21,0x31167c6b }, { 0x524b1068,0xf22b3842,0xee9ce987,0x5068343b,0x4a6250c8,0xfc9d7184,0x1f08b111,0x61243634 }, }, { { 0x1a2d2638,0x8b6349e3,0x9bd3fd35,0x9ddfb700,0xa3a06ba4,0x7f8bf1b8,0x78d90445,0x1522aa31 }, { 0x874e898d,0xd99d41db,0x6c07dc20,0x09fea5f1,0xd00f9bbc,0x793d2c67,0x9e5eff40,0x46ebe230 }, { 0x69614938,0x2c382f53,0xb72d6d10,0xdafe409a,0xb646f227,0xe8c83391,0x0524306c,0x45fe70f5 }, }, { { 0xc8951491,0x62f24920,0x3f630ca2,0x05f007c8,0xf5c9d4b8,0x6fbb45d2,0xb57a2245,0x16619f6d }, { 0x960c0b8c,0xda4875a6,0xef0e2f20,0x5b68d076,0x3d0b8fd4,0x07fb51cf,0xa0e392d4,0x428d1623 }, { 0x01a308fd,0x084f4a44,0x76a5caac,0xa82219c3,0x43d1bc7d,0xdeb8de46,0x60bd38c6,0x1d81592d }, }, }, { { { 0x7b85c5e8,0x8765b69f,0xd168bab2,0x6ff0678b,0x1d330f9b,0x3a70e77c,0xb0af8e7c,0x3a5f6d51 }, { 0xa60dac5f,0x61368756,0xebabdc57,0x17e02f6a,0x4cce0f7d,0x7f193f2d,0x89ecdcf0,0x20234a77 }, { 0x7178b252,0x76d20db6,0xd51ed160,0x071c34f9,0xb3e41170,0xf62a4a20,0x3cffe366,0x7cd68235 }, }, { { 0x68acf4f3,0xa665cd60,0x3cd7e3d3,0x42d92d18,0x336025d9,0x5759389d,0x2b2cd8ff,0x3ef0253b }, { 0xd887fab6,0x0be1a45b,0xba403b6e,0x2a846a32,0xe96e6000,0xd9921012,0x3bdc0943,0x2838c886 }, { 0x4a465030,0xd16bb0cf,0x15c577ab,0xfa496b41,0xf4ab419d,0x82cfae8a,0x06a82812,0x21dcb8a6 }, }, { { 0xbe7731ba,0x9a8d00fa,0x629e1889,0x8203607e,0x43f3d97f,0xb2cc0237,0x6c6f678b,0x5d840dbf }, { 0x8c9d9fc8,0x5c600446,0xd42aa3cb,0x2540096e,0x12ee2f9c,0x125b4d4c,0x94a31dab,0x0bc3d081 }, { 0x309fe18b,0x706e380d,0xb9e165c7,0x6eb02da6,0x7dae20ab,0x57bbba99,0x2ac196dd,0x3a427623 }, }, { { 0xdb447ecb,0x3bf8c172,0xc6282dbd,0x5fcfc41f,0x75aa15fe,0x80acffc0,0x24e1a9f9,0x0770c9e8 }, { 0x8a7084fa,0x4b42432c,0xdfb9e545,0x898a19e3,0x9c58e45d,0xbe9f0021,0xa16debd1,0x1ff177ce }, { 0x45b5b5fd,0xcf61d99a,0x1b3a7924,0x860984e9,0x303e3e89,0xe7300919,0x41500b1e,0x39f264fd }, }, { { 0xfe097be1,0xd19b4aab,0xdfe01929,0xa46dfce1,0x2ca6f1ff,0xc3c90894,0x2c35f14e,0x65c62127 }, { 0xdbe7e29c,0xa7ad3417,0x2b9c139c,0xbd94376a,0x93597ba9,0xa0e91b8e,0x68889840,0x1712d734 }, { 0xce3193dd,0xe72b89f8,0xa125c0bb,0x4d103356,0x2e1cfe83,0x0419a93d,0xb19ce272,0x22f9800a }, }, { { 0x9a6efdac,0x42029fdd,0x34a54941,0xb912cebe,0x87bdf37b,0x640f64b9,0x8598cab4,0x4171a4d3 }, { 0x3e9ef8cb,0x605a368a,0xa5504715,0xe3e9c022,0x5f24248f,0x553d48b0,0x647626e5,0x13f416cd }, { 0x99c94c8c,0xfa2758aa,0xb000b807,0x23006f6f,0xadda5392,0xfbd291dd,0x574bd1ab,0x508214fa }, }, { { 0x53d003d6,0x461a15bb,0xbcf3c965,0xb2102888,0x6c683a5a,0x27c57675,0xc86cb447,0x3a7758a4 }, { 0x3ed6fe4b,0xc2026915,0x511d77c4,0xa65a6739,0x2c14af94,0xcbde2646,0x6faba74b,0x22f960ec }, { 0x93ae5076,0x548111f6,0x1dfd54a6,0x1dae21df,0xf3115e65,0x12248c90,0x8de7f494,0x5d9fd15f }, }, { { 0xeed7521e,0x3f244d2a,0x432e9615,0x8e3a9028,0x2e9c16d4,0xe164ba77,0x47eb98d8,0x3bc187fa }, { 0x6d63727f,0x031408d3,0xd7c7b533,0x6a379aef,0xccaee24b,0xa9e18fc5,0x4f8fbed3,0x332f3591 }, { 0xea86c20c,0x6d470115,0x6c46d125,0x998ab7cb,0x3a660188,0xd77832b5,0x906fba03,0x450d81ce }, }, }, { { { 0x1cae743f,0xd074d896,0xee1c63ed,0xf86d18f5,0xe7f4ed29,0x97bdc55b,0x663ab108,0x4cbad279 }, { 0xa6205275,0x6e7bb6a1,0x413c8e83,0xaa4f21d7,0xe88f5cb2,0x6f56d155,0xa6345be1,0x2de25d4b }, { 0xa0d71fcd,0x80d19024,0xfb288af8,0xc525c20a,0x5f3a6419,0xb1a3974b,0xe2007233,0x7d7fbcef }, }, { { 0xf3c29094,0xcd7c5dc5,0x2a9105ab,0xc781a29a,0x421c3058,0x80c61d36,0xdcd8d4d7,0x4f9cd196 }, { 0x266b2801,0xfaef1e6a,0xd5739f16,0x866c68c4,0x1b03762c,0xf68a2fbc,0x87b75a8d,0x5975435e }, { 0x6a7b3768,0x199297d8,0x1ad17a63,0xd0d05824,0x5c1c0c17,0xba029cad,0x387a0307,0x7ccdd084 }, }, { { 0x6760cc93,0x9b0c8418,0x1ab32a99,0xcdae007a,0x620bda18,0xa88dec86,0x8190ca44,0x3593ca84 }, { 0x6d260417,0xdca6422c,0x948240bd,0xae153d50,0xfb68c677,0xa9c0c1b4,0x61d0cf53,0x428bd0ed }, { 0x5e849aa7,0x9213189a,0x65d8facd,0xd4d8c335,0x53fdbbd1,0x8c52545b,0xda2d63e6,0x27398308 }, }, { { 0x0a702453,0xb9a10e4c,0xd57d1bde,0x0fa25866,0xcd27daf7,0xffb9d9b5,0x492c33fd,0x572c2945 }, { 0x435ed413,0x42c38d28,0x3278ccc9,0xbd50f360,0x79da03ef,0xbb07ab1a,0xbe8c3355,0x269597ae }, { 0xd6cd30be,0xc77fc745,0xe3baaefb,0xe4dfe8d3,0xaa5dda0c,0xa22c8830,0xc05bca80,0x7f985498 }, }, { { 0x0fbf6363,0xd3561552,0xcf4dfba6,0x08045a45,0x873fa0c2,0xeec24fbc,0xd69b12e7,0x30f2653c }, { 0x9f0be117,0x3849ce88,0x7b54a288,0x8005ad1b,0x23fc921c,0x3da3c39f,0x0a31f304,0x76c2ec47 }, { 0xaac10c85,0x8a08c938,0xdb276bcb,0x46179b60,0x0e6fac70,0xa920c01e,0x596473da,0x2f1273f1 }, }, { { 0x55a70bc0,0x30488bd7,0xf1d442e7,0x06d6b5a4,0xbc596162,0xead1a69e,0xedc5f784,0x38ac1997 }, { 0x8ae01e11,0x4739fc7c,0x4a6aab9f,0xfd527490,0x87728f2e,0x41d98a82,0xd85b69f2,0x5d9e572a }, { 0xa751b13b,0x0666b517,0x7e9b858c,0x747d0686,0x454dde49,0xacacc011,0xbfe9e69c,0x22dfcd9c }, }, { { 0x103be0a1,0x56ec59b4,0xd259f969,0x2ee3baec,0x13f5cd32,0x797cb294,0x24cde472,0x0fe98778 }, { 0xc30d0cd9,0x8ddbd2e0,0xacbb4333,0xad8e665f,0x322a961f,0x8f6b258c,0x5448c1c7,0x6b2916c0 }, { 0x0aba913b,0x7edb34d1,0x2e6dac0e,0x4ea3cd82,0x6578f815,0x66083dff,0x7ff00a17,0x4c303f30 }, }, { { 0x0dd94500,0x29fc0358,0x6fbbec93,0xecd27aa4,0xc2e2a7f8,0x130a155f,0xb706a1d5,0x416b151a }, { 0x17b28c85,0xd30a3bd6,0x39773bea,0xc5d377b7,0x1e6a5cbf,0xc6c6e78c,0x8b2ab7c4,0x0d61b8f7 }, { 0xe9c136b0,0x56a8d7ef,0x58e44b20,0xbd07e5cd,0x1b57e0ab,0xafe62fda,0x4277e8d2,0x191a2af7 }, }, }, { { { 0x4f460efb,0x9fe62b43,0xa63607d6,0xded303d4,0xb7a0da24,0xf052210e,0x00545b93,0x237e7dbe }, { 0xc53c1431,0xce16f74b,0x2072edde,0x2b9725ce,0xb5b23ee7,0xb8b9c36f,0x0b5cc908,0x7e2e0e45 }, { 0x6701b430,0x013575ed,0x9f0bfd10,0x231094e6,0x83e47f22,0x75320f15,0xb11155e3,0x71afa699 }, }, { { 0x473b50d6,0xea423c1c,0x3b38ef10,0x51e87a1f,0xb2c9be95,0x9b84bf5f,0x78f89a1c,0x00731fbc }, { 0x3953b61d,0x65ce6f9b,0xafa141e6,0xc65839ea,0xa9f759fe,0x0f435ffd,0xc2b1c28e,0x021142e9 }, { 0x48f81880,0xe430c718,0x5ecec119,0xbf960c22,0x6bba15e3,0xb6dae083,0x47e15808,0x4c4d6f33 }, }, { { 0x988f1970,0x2f0cddfc,0xb0b9f51b,0x6b916227,0x779176be,0x6ec7b6c4,0xa88f9fa8,0x38bf9500 }, { 0xc17d1fc9,0x18f7eccf,0x51403c14,0x6c75f5a6,0xf7ee0cdf,0xdbde712b,0xa7e47a22,0x193fddaa }, { 0x37e8876f,0x1fd2c93c,0x18d1462c,0xa2f61e5a,0x39241276,0x5080f582,0xbf0d4969,0x6a6fb99e }, }, { { 0xb6e423c6,0xeeb122b5,0xf286ff8e,0x939d7010,0x1dcf5d8c,0x90a92a83,0x42c5eb10,0x136fda9f }, { 0x560855eb,0x6a46c1bb,0xf893f09d,0x2416bb38,0x8f71acc1,0xd71d1137,0xa31896ea,0x75f76914 }, { 0xa305bdd1,0xf94cdfb1,0x9ff82c08,0x0f364b9d,0xc3bb588a,0x2a87d8a5,0x0be8dcba,0x02218351 }, }, { { 0x43307a7f,0x9d5a7101,0xc47da45f,0xb063de9e,0xbe927ad3,0x22bbfe52,0xfd40426c,0x1387c441 }, { 0x5ead2d14,0x4af76638,0xca7c5830,0xa08ed880,0x10211e3d,0x0d13a6e6,0x7b806c03,0x6a071ce1 }, { 0x87978af8,0xb5d3c3d1,0x7f0e4413,0x722b5a3d,0xbb477ca0,0x0d7b4848,0xaf1edc92,0x3171b26a }, }, { { 0xb28a47d1,0xa60db7d8,0x1770a4f1,0xa6bf14d6,0x53ddbd58,0xd4a1f893,0x344243e9,0x6c514a63 }, { 0x97564ca8,0xa92f3190,0x2275e119,0xff7bb84c,0xa4875150,0x4f55fe37,0x3cf0835a,0x221fd487 }, { 0x3a156341,0x2322204f,0xba0a032d,0xfb73e0e9,0x410f030e,0xfce0dd4c,0xfb924aaa,0x48daa596 }, }, { { 0xc84c9793,0x14f61d5d,0xef418206,0x9941f9e3,0x346277ac,0xcdf5b88f,0x0e8a79a9,0x58c837fa }, { 0x5ca59cc7,0x6eca8e66,0x2e38aca0,0xa847254b,0xd21e17ce,0x31afc708,0xcad84af7,0x676dd6fc }, { 0x96fc9058,0x0cf96885,0x7b56a01b,0x1ddcbbf3,0x4935d66a,0xdcc2e77d,0xc6a57f0a,0x1c4f73f2 }, }, { { 0xfc7c3484,0xb36e706e,0xc3c1cf61,0x73dfc9b4,0x781cc7e5,0xeb1d79c9,0x7daf675c,0x70459adb }, { 0x305fa0bb,0x0e7a4fbd,0x54c663ad,0x829d4ce0,0x2fe33848,0xf421c383,0x1bf64c42,0x795ac80d }, { 0x91b42bb3,0x1b91db49,0x4b02dcca,0x57269623,0x1f8c78dc,0x9fdf9ee5,0x8ce21fd3,0x5fe16284 }, }, }, { { { 0x5d7cb208,0x2879852d,0x687df2e7,0xb8dedd70,0x21687891,0xdc0bffab,0x677daa35,0x2b44c043 }, { 0xe194961a,0x4e59214f,0x0d71cd4f,0x49be7dc7,0x3b50f22d,0x9300cfd2,0xfc917232,0x4789d446 }, { 0x074eb78e,0x1a1c87ab,0x99daf467,0xfac6d18e,0x484f9067,0x3eacbbcd,0x2bb9a4e4,0x60c52eef }, }, { { 0x7cae6d11,0x702bc5c2,0x54a48cab,0x44c7699b,0xba492eb2,0xefbc4056,0xd9b6676d,0x70d77248 }, { 0x3bfd8bf1,0x0b5d89bc,0xc9f3551a,0xb06b9237,0xd53028f5,0x0e4c16b0,0x2ccfcaab,0x10bc9c31 }, { 0x3ec2a05b,0xaa8ae84b,0xed1781e0,0x98699ef4,0x708e85d1,0x794513e4,0xa976f413,0x63755bd3 }, }, { { 0x97f1acb7,0x3dc71018,0xc165bbd8,0x5dda7d5e,0x0fa1020f,0x508e5b9c,0x37c52a56,0x27637517 }, { 0x2ad10853,0xb55fa03e,0x9ee63569,0x356f7590,0xbe69b890,0x9ff9f1fd,0x8bc16f84,0x0d8cc1c4 }, { 0x6eb419a9,0x029402d3,0x77b460a5,0xf0b44e7e,0xd43c4956,0xcfa86230,0x7ad166e7,0x70c2dd8a }, }, { { 0xb8ed7e13,0x91d4967d,0xd776817a,0x74252f0a,0x0d852564,0xe40982e0,0x16a53ce5,0x32b86138 }, { 0x9f6fec0e,0x65619450,0x46c6518d,0xee2e7ea9,0x67e09b5c,0x9733c1f3,0x63948495,0x2e0fac63 }, { 0xe448cd64,0x79e7f7be,0x087886d0,0x6ac83a67,0xa0e4db2e,0xf89fd4d9,0x735a4f41,0x4179215c }, }, { { 0x286bcd34,0xe4ae33b9,0x559dd6dc,0xb7ef7eb6,0xb3d38e1f,0x278b141f,0x2241c286,0x31fa8566 }, { 0xd7dced2a,0x8c7094e7,0x47d39c70,0x97fb8ac3,0xa906d902,0xe13be033,0x0cd99d76,0x700344a3 }, { 0x2e3622f4,0xaf826c42,0x9833502d,0xc1202987,0x2b389123,0x9bc1b7e1,0xa9952489,0x24bb2312 }, }, { { 0xf5f85c6b,0x41f80c2a,0x04fa6794,0x687284c3,0xa3ba1bad,0x8945df99,0xffeb5d16,0x0d1d2af9 }, { 0x32de67c3,0xb1a8ed17,0x461b4948,0x3cb49418,0x76cfbcd2,0x8ebd4343,0x1e188008,0x0fee3e87 }, { 0x32621edf,0xa9da8aa1,0x59226579,0x30b822a1,0xa79ac193,0x4004197b,0x18531d76,0x16acd797 }, }, { { 0x7887b6ad,0xc959c6c5,0x5f90feba,0x94e19ead,0xa342f504,0x16e24e62,0x18161700,0x164ed34b }, { 0x2d9b1d3d,0x72df72af,0xa432245a,0x63462a36,0x16b39637,0x3ecea079,0xb9302309,0x123e0ef6 }, { 0x192fe69a,0x487ed94c,0x3a911513,0x61ae2cea,0xb9a4de27,0x877bf6d3,0x1073f3eb,0x78da0fc6 }, }, { { 0x680c3a94,0xa29f80f1,0x1ae9e7e6,0x71f77e15,0x48017973,0x1100f158,0x16b38ddd,0x054aa4b3 }, { 0xe52bc66a,0x5bf15d28,0x70f01a8e,0x2c47e318,0x06c28bdd,0x2419afbc,0x256b173a,0x2d25deeb }, { 0x19267cb8,0xdfc8468d,0x66e54daf,0x0b28789c,0x666eec17,0x2aeb1d2a,0xab7da760,0x134610a6 }, }, }, { { { 0x77d1f515,0xcd2a65e7,0x8faa60f1,0x54899187,0xdabc06e5,0xb1b73bbc,0xa97cc9fb,0x654878cb }, { 0x8df6b0fe,0x51138ec7,0xe575f51b,0x5397da89,0x717af1b9,0x09207a1d,0x2b20d650,0x2102fdba }, { 0x055ce6a1,0x969ee405,0x1251ad29,0x36bca768,0xaa7da415,0x3a1af517,0x29ecb2ba,0x0ad725db }, }, { { 0x9b056f85,0xfec7bc0c,0xe7f5ffd7,0x537d5268,0x4312aefa,0x77afc662,0x02399fd9,0x4f675f53 }, { 0x834e2457,0xdc4267b1,0x70ce1bc5,0xb67544b5,0xf7d15ed7,0x1af07a0b,0x71a03650,0x4aefcffb }, { 0x0415171e,0xc32d3636,0x8998483b,0xcd2bef11,0xd0945110,0x870a6ead,0xa2a86561,0x0bccbb72 }, }, { { 0x50fe1296,0x186d5e4c,0xfee89f7e,0xe0397b82,0x507031b0,0x3bc7f6c5,0x108f37c2,0x6678fd69 }, { 0xeab1a9c8,0x185e962f,0x65147dcd,0x86e7e635,0xbb5b6df2,0xb092e031,0x59d6b73e,0x4024f0ab }, { 0x636863c2,0x1586fa31,0x572d33f2,0x07f68c48,0x789eaefc,0x4f73cc9f,0x8ead4701,0x2d42e210 }, }, { { 0x0f537593,0x21717b0d,0x131e064c,0x914e690b,0x752ae09f,0x1bb687ae,0x9b423c6e,0x420bf3a7 }, { 0x94dfd29b,0x97f51315,0x313f4c6a,0x6155985d,0x08455010,0xeba13f07,0xb8d2d322,0x676b2608 }, { 0x1c5b2b47,0x8138ba65,0x311b1b80,0x8671b6ec,0xbc3135b0,0x7bff0cb1,0x9c0cf1e0,0x745d2ffa }, }, { { 0x21d34e6a,0x6036df57,0x997bb3d0,0xb1db8827,0xc8756afa,0xd3c209c3,0x4c1dc839,0x06e15be5 }, { 0x2bc9c8bd,0xbf525a1e,0x26479d81,0xea5b2608,0xdf0155db,0xd511c70e,0x960cf5d0,0x1ae23ceb }, { 0x1932994a,0x5b725d87,0xceb1dab0,0x32351cb5,0xdab7ca05,0x7dc41549,0x278ec1f7,0x58ded861 }, }, { { 0xb6c2c9a8,0x2dfb5ba8,0xf52c598c,0x48eeef8e,0xf12d1573,0x33809107,0x531d5bd8,0x08ba696b }, { 0xf266c55c,0xd8173793,0xcc454e49,0xc8c976c5,0xbc26c3a8,0x5ce382f8,0x5485f6f9,0x2ff39de8 }, { 0xc3efc57a,0x77ed3eee,0xd4ff4811,0x04e05517,0xf1a671cb,0xea3d7a3f,0x947cfe54,0x120633b4 }, }, { { 0x4912100a,0x82bd3147,0x7e6fbe06,0xde237b6d,0x11ea79c6,0xe11e7619,0xcb393bde,0x07433be3 }, { 0x91610042,0x0b949878,0xecebfae8,0x4ee7b13c,0x94f0a4c0,0x70be7395,0xb4d59185,0x35d30a99 }, { 0x5ce997f4,0xff7944c0,0xb05c51a3,0x575d3de4,0x5a76847c,0x583381fd,0x7af6da9f,0x2d873ede }, }, { { 0x4e5df981,0xaa6202e1,0x5015e1f5,0xa20d5917,0xbae21d6c,0x18a275d3,0x01600253,0x0543618a }, { 0x43373409,0x157a3164,0xf4aa81d9,0xfab8b7ee,0xf5a64806,0xb093fee6,0x707fa7b6,0x2e773654 }, { 0x974c23c1,0x0deabdf4,0x9dce4693,0xaa6f0a25,0xa29aba2c,0x04202cb8,0x2d07960d,0x4b144336 }, }, }, { { { 0x1c529ccb,0x967c54e9,0x64c635fb,0x30f62692,0x78121965,0x2747aff4,0xeaf66f5c,0x17038418 }, { 0xb66e1f7a,0xccc4b7c7,0xf50c2f7e,0x44157e25,0x713eaf1c,0x3ef06dfc,0x52da63f7,0x582f4467 }, { 0x20324ce4,0xc6317bd3,0xa4488bc4,0xa81042e8,0x4e5a1364,0xb21ef18b,0xcda28dc9,0x0c2a1c4b }, }, { { 0x69bd6945,0xedc48148,0xbe1c8d22,0x0d6d907d,0xd55cc5ab,0xc63bd212,0xa314dc83,0x5a6a9b30 }, { 0x6f1f0447,0xd24dc7d0,0xdb87c059,0xb2269e3e,0xfbb2d28f,0xd15b0272,0xc6f64877,0x7c558bd1 }, { 0xd396463d,0xd0ec1524,0xc35a24f0,0x12bb628a,0x1cbc5fa4,0xa50c3a79,0x0afbafc3,0x0404a5ca }, }, { { 0x2a416fd1,0x62bc9e1b,0xe350598b,0xb5c6f728,0x3d5d6967,0x04343fd8,0xe7f8ee98,0x39527516 }, { 0x0aa743d6,0x8c1f4007,0x5b265ee8,0xccbad0cb,0x668fd2de,0x574b046b,0xcadd9633,0x46395bfd }, { 0x1a5d9a9c,0x117fdb2d,0xd1005c2a,0x9c7745bc,0x54d56fea,0xefd4bef1,0xe822d016,0x76579a29 }, }, { { 0x52b434f2,0x333cb513,0x93de80e1,0xd8322849,0x750d35ce,0xb5512887,0x2a2777c1,0x02c514bb }, { 0x49c02a17,0x45b68e7e,0xbca9a37f,0x23cd51a2,0xec224c1b,0x3ed65f11,0x9e05bdb1,0x43a384dc }, { 0x8bf1b645,0x684bd5da,0xf6b54b53,0xfb8bd37e,0xa9b0d253,0x313916d7,0x61548059,0x11609209 }, }, { { 0x369b4dcd,0x7a385616,0x655c3563,0x75c02ca7,0xd4f18021,0x7dc21bf9,0x91e6e042,0x2f637d74 }, { 0x29dacfaa,0xb44d1669,0x8413598f,0xda529f4c,0x453d5559,0xe9ef63ca,0xc5698e0b,0x351e125b }, { 0x1af67bbe,0xd4b49b46,0xc8ab8961,0xd603037a,0xf9a699fb,0x71dee19f,0xe7ce2a9a,0x7f182d06 }, }, { { 0x8e217522,0x09454b72,0xd484b8d8,0xaa58e8f4,0x7f46903c,0xd358254d,0x241c5217,0x44acc043 }, { 0xab0168ec,0x7a7c8e64,0x15edc543,0xcb5a4a55,0x47cd0eda,0x095519d3,0x343e93b0,0x67d4ac8c }, { 0x4f7a5777,0x1c7d6bbb,0x918313e1,0x8b35fed4,0xc96b4684,0x4adca1c6,0x12ad71bd,0x556d1c83 }, }, { { 0xb11be821,0x81f06756,0x10a3f3dd,0x0faff823,0x6a99465d,0xf8b2d055,0xcc8c7f05,0x097abe38 }, { 0x0c8d3982,0x17ef40e3,0x15a3fa34,0x31f7073e,0x0773646e,0x4f21f3cb,0x1d824eff,0x746c6c6d }, { 0x7ea52da4,0x0c49c987,0x9bdc1d43,0x4c436955,0xf7ccebd2,0x022c3809,0x4bee84bd,0x577e14a3 }, }, { { 0xbd4dd72b,0x94fecebe,0x060f2211,0xf46a4fda,0xc0c8d1ff,0x124a5977,0xfb009295,0x705304b8 }, { 0x61a73b0a,0xf0e268ac,0x3791a5f5,0xf2fafa10,0x6b6d00e9,0xc1e13e82,0x6fd78f42,0x60fa7ee9 }, { 0x4d296ec6,0xb63d1d35,0x5fad31d8,0xf3c3053e,0xb4bd42ec,0x670b958c,0xa16353fd,0x21398e0c }, }, }, { { { 0xb4b75601,0x2798aaf9,0x5c8dad72,0x5eac7213,0x61b7a023,0xd2ceaa61,0xe98f7d4e,0x1bbfb284 }, { 0x382b33f3,0x89f5058a,0xad48c0b4,0x5ae2ba0b,0xa53db36e,0x8f93b503,0x95a232e6,0x5aa3ed9d }, { 0xc7d96561,0x656777e9,0x72c78036,0xcb2b1254,0xd9506eee,0x65053299,0x5e8957cc,0x4a07e14e }, }, { { 0xc477a49b,0x240b58cd,0x6447f017,0xfd38dade,0xa7c86aad,0x19928d32,0x84afa081,0x50af7aed }, { 0x980df999,0x4ee412cb,0x3c6ec771,0xa315d76f,0x925c77fd,0xbba5edde,0x1d313402,0x3f0bac39 }, { 0x15f65be5,0x6e4fde01,0x216109b2,0x29982621,0x0badd6d9,0x78020581,0xbaebd006,0x1921a316 }, }, { { 0xd9f3c18b,0xd75aad9a,0x60b1c19c,0x566a0eef,0x255c0ed9,0x3e9a0bac,0xa062c7f5,0x7b049dec }, { 0xdfb870fc,0x89422f7e,0x4f76b3bd,0x2c296beb,0x36c24df7,0x0738f1d4,0xe273aeb0,0x6458df41 }, { 0x35444483,0xdccbe37a,0x0fedbe93,0x75887933,0x12c5dd87,0x786004c3,0xc2950e64,0x6093dccb }, }, { { 0x6084034b,0x6bdeeebe,0x780fb854,0x3199c2b6,0xb62d0695,0x973376ab,0x8b647d90,0x6e3180c9 }, { 0x85e0706d,0x1ff39a85,0xb3e73933,0x36d0a5d8,0x718f453b,0x43b9f2e1,0x4827a97c,0x57d1ea08 }, { 0xa128b071,0xee7ab6e7,0x93a88baa,0xa4c1596d,0xb2216130,0xf7b4de82,0xdd97bd18,0x363e999d }, }, { { 0xe24baec6,0x2f1848dc,0xbabcaf60,0x769b7255,0x3cefe931,0x90cb3c6e,0xc6f9b355,0x231f979b }, { 0x35ee1fc4,0x96a843c1,0x08e4c8cf,0x976eb355,0xb58cd330,0xb42f6801,0x693a052b,0x48ee9b78 }, { 0xcc2af3c6,0x5c31de4b,0xfe208d1f,0xb04bb030,0xc14fb466,0xb78d7009,0x08792413,0x079bfa9b }, }, { { 0xa2d54245,0xf3c9ed80,0x77f63952,0x0aa08b78,0xd1085475,0xd76dac63,0x9470636b,0x1ef4fb15 }, { 0xda300df4,0xe3903a51,0x3da95ab0,0x84396423,0x0b356480,0xed3cf12d,0x84817194,0x038c77f6 }, { 0x5b167bec,0x854e5ee6,0x96d0cdc2,0x59590a42,0x98102199,0x72b2df34,0x4a0bff56,0x575ee92a }, }, { { 0x0aa4d801,0x5d46bc45,0xa533b9d8,0xc3af1227,0x2b8906c2,0x389e3b26,0x382f581b,0x200a1e7e }, { 0x8a182fcf,0xd4c08090,0x99489dbd,0x30e170c2,0x52f733de,0x05babd57,0x2cd3fd00,0x43d4e711 }, { 0xeaf93ac5,0x518db967,0x056652c0,0x71bc989b,0x567197f5,0xfe2b85d9,0x651e4e38,0x050eca52 }, }, { { 0x60e668ea,0x97ac3976,0x153ab497,0x9b19bbfe,0x34eca79f,0x4cb179b5,0xa131ae57,0x6151c09f }, { 0x453f0c9c,0xc3431ade,0xff703b9b,0xe9f5045e,0xed847b3d,0xfcd97ac9,0x1c58f4c6,0x4b0ee6c2 }, { 0xfdf05d96,0x3af55c0d,0x2ab4ee7a,0xdd262ee0,0x12171709,0x11b2bb87,0x800f030b,0x1fef24fa }, }, }, { { { 0x30976b86,0x22d2aff5,0xc2d24604,0x8d90b806,0x4de5bae5,0xdca1896c,0xc8340c17,0x28005fe6 }, { 0x1aa73196,0x37d653fb,0x3fd76418,0x0f949530,0xfb3a17b2,0xad200b09,0x2fc8613e,0x544d4929 }, { 0x34528688,0x6aefba9f,0x25107da1,0x5c1bff94,0x66d94b36,0xf75bbbcd,0x0f316dfa,0x72e47293 }, }, { { 0xd32a7627,0x07f3f635,0x5f6566f0,0x7aaa4d86,0x28d04450,0x3c85e797,0x0fe06438,0x1fee7f00 }, { 0x9781084f,0x2695208c,0x23450ee1,0xb1502a0b,0x03efde02,0xfd9daea6,0x2733a34c,0x5a9d2e8c }, { 0x03dbf7e5,0x765305da,0x1434cdbd,0xa4daf249,0xd24a88ec,0x7b4ad5cd,0xee040543,0x00f94051 }, }, { { 0x07af9753,0xd7ef93bb,0x3db766a7,0x583ed0cf,0x6e0b1ec5,0xce6998bf,0x5dd40452,0x47b7ffd2 }, { 0xc3d330b2,0x8d356b23,0xb0471b06,0xf21c8b9b,0x6e42b83c,0xb36c316c,0x8beab10d,0x07d79c7e }, { 0xbc08dd12,0x87fbfb9c,0xe1eec29b,0x8a066b3a,0xdb1fc1bf,0x0d57242b,0x5ea64bb6,0x1c3520a3 }, }, { { 0x216bc059,0xcda86f40,0x12bcd87e,0x1fbb231d,0x17c70990,0xb4956a9e,0x66d12e55,0x38750c3b }, { 0xbccba34a,0x80d253a6,0x3838219b,0x3e61c3a1,0x9882e396,0x90c3b601,0x5d0ee66f,0x1c3d0577 }, { 0x9422e51a,0x692ef140,0x2b5df671,0xcbc0c73c,0x744ce029,0x21014fe7,0xd330487c,0x0621e2c7 }, }, { { 0xb0dbf0f3,0xb7ae1796,0xe17ce196,0x54dfafb9,0xe9aaa3b4,0x25923071,0xa1002e9d,0x5d8e589c }, { 0x8259838d,0xaf9860cc,0xc69f9adc,0x90ea48c1,0x65581e30,0x65264837,0x7bd3a5bc,0x0007d609 }, { 0x0842a94b,0xc0bf1d95,0x588f2e3e,0xb2d3c363,0xbb51e2ef,0x0a961438,0x3c1cbf86,0x1583d778 }, }, { { 0xcc9d28c7,0x90034704,0xf72cc58f,0x1d1b679e,0xbe5b8726,0x16e12b5f,0x83c5580a,0x4958064e }, { 0x5da27ae1,0xeceea2ef,0x55670174,0x597c3a14,0x6609167a,0xc9a62a12,0x81ed8f70,0x252a5f2e }, { 0x5066e80d,0x0d289426,0x307c8c6b,0xfcc3f785,0x0c1112fd,0x1b53da78,0xd843b388,0x079c170b }, }, { { 0xc0d5d056,0xcdd6cd50,0xbb03573b,0x9af7686d,0xf3c3ef48,0x3ca6723f,0x317b8acc,0x6768c0d7 }, { 0x64fa6fff,0x0506ece4,0x6205e523,0xbee3431e,0x51b8ea42,0x35794224,0x4ac9fb00,0x6dec05e3 }, { 0xf155c1b3,0x94b625e5,0x997b7b91,0x417bf3a7,0x6d6b2600,0xc22cbddc,0xddcd52f4,0x51445e14 }, }, { { 0x2bbea455,0x893147ab,0x92079129,0x8c53a24f,0xbe30f7a7,0x4b49f948,0x6e4fd43d,0x12e99008 }, { 0x3b144951,0x57502b4b,0x444bbcb3,0x8e67ff6b,0x166385db,0xb8bd6927,0xe39295c8,0x13186f31 }, { 0x7fdfbb2e,0xf10c96b3,0x121ceaf9,0x9f9a935e,0x3a5b983f,0xdf1136c4,0x5d3e99af,0x77b2e3f0 }, }, }, { { { 0x12ddb0a4,0xd598639c,0xc024866b,0xa5d19f30,0x58fce460,0xd17c2f03,0x2e095e8a,0x07a19515 }, { 0x9c2ec4de,0x296fa9c5,0x4f84f3cb,0xbc8b61bf,0x17a8f908,0x1c7706d9,0x7ad3255d,0x63b795fc }, { 0x389e5fc8,0xa8368f02,0xcf8de43b,0x90433b02,0xc5412643,0xafa1fd5d,0x032f0137,0x3e8fe83d }, }, { { 0xe8efd13c,0x08704c8d,0x33e03731,0xdfc51a8e,0x1260cde3,0xa59d5da5,0xa6258c86,0x22d60899 }, { 0x0570a294,0x2f8b15b9,0x67084549,0x94f24270,0x61bbfd84,0xde1c5ae1,0x7fac4007,0x75ba3b79 }, { 0x70cdd196,0x6239dbc0,0x6c7d8a9a,0x60fe8a8b,0xeb401260,0xb38847bc,0x87779e5e,0x0904d07b }, }, { { 0x48f940b9,0xf4322d66,0xbd2d0c39,0x06952f0c,0xa081f931,0x167697ad,0xbaf72a6c,0x6240aace }, { 0xddba919c,0xb4ce1fd4,0xc74c8daa,0xcf31db3e,0xad86cc51,0x2c63cc63,0xbc1dde07,0x43e2143f }, { 0x5ba295a0,0xf834749c,0xca37d25a,0xd6947c5b,0xe7c9316a,0x66f13ba7,0x8db40cac,0x56bdaf23 }, }, { { 0xc19d3bb2,0x1310d36c,0x622386b9,0x062a6bb7,0xd7a14f5c,0x7c9b8591,0x7e1e5754,0x03aa3150 }, { 0xf53533eb,0x362ab9e3,0x6eb93d40,0x338568d5,0x1d5a5572,0x9e0e1452,0x83741318,0x1d24a86d }, { 0xffd4ce1f,0xf4ec7648,0x54ac8c1c,0xe045eaf0,0x1d09357c,0x88d22582,0x9aeb4859,0x43b261dc }, }, { { 0x6c951364,0x19513d8b,0x000bf47b,0x94fe7126,0xd54f9567,0x028d10dd,0x42940964,0x02b4d5e2 }, { 0x88bb79bb,0xe55b1e19,0xc17a359d,0xa09ed07d,0x603dea33,0xb02c2ee2,0x5b276bc2,0x326055cf }, { 0x28d18df2,0xb4a155cb,0x186ce508,0xeacc4646,0x6c824389,0xc49cf493,0xae5d3410,0x27a6c809 }, }, { { 0xc43d6954,0xcd2c270a,0x6a66cab2,0xdd4a3e57,0x69d7036c,0x79fa5924,0x3d8c2599,0x22150360 }, { 0x1f0db188,0x8ba6ebcd,0x675a5be8,0x37d3d73a,0x15f5585a,0xf22edfa3,0xff60a17e,0x2cb67174 }, { 0x390be1d0,0x59eecdf9,0x728ce3f1,0xa9422044,0x7a94f0f4,0x82891c66,0x3890f436,0x7b1df4b7 }, }, { { 0x07f8f58c,0x5f2e2218,0xd49409d4,0xe3555c9f,0x1fb6a630,0xb2aaa88d,0xd352e03d,0x68698245 }, { 0xb3b2a224,0xe492f2e0,0x2b551160,0x7c6c9e06,0x0d7f7b0e,0x15eb8fe2,0x58fc5992,0x61fcef26 }, { 0x2a18187a,0xdbb15d85,0x86ddacd7,0xf3e4aad3,0x0ff6c482,0x44bae281,0x3daf01cf,0x46cf4c47 }, }, { { 0xf1498140,0x213c6ea7,0x392b4854,0x7c1e7ef8,0x5629ceba,0x2488c38c,0x0d8cc5bb,0x1065aae5 }, { 0x9ec4e5f9,0x426525ed,0x16903303,0x0e5eda01,0xcbe5cadc,0x72b1a7f2,0x14eb5f40,0x29387bcd }, { 0xdf200d57,0x1c2c4525,0xbfca674a,0x5c3b2dd6,0xe1834030,0x0a07e7b1,0x4f1ce716,0x69a198e6 }, }, }, { { { 0xdcc5caed,0xe1014434,0x3c84fb33,0x47ed5d96,0xed86a0e7,0x70019576,0xd267f9e4,0x25b2697b }, { 0xd91a78bc,0x9062b2e0,0xc8509667,0x47c9889c,0x405070b8,0x9df54a66,0x2493a1bf,0x7369e6a9 }, { 0x13986864,0x9d673ffb,0x415dc7b8,0x3ca5fbd9,0xdf273b5e,0xe04ecc3b,0xb54e4cd2,0x1420683d }, }, { { 0xc1cc5ad0,0x34eebb6f,0x9646ac8b,0x6a1b0ce9,0xa66bde53,0xd3b0da49,0x61d081c1,0x31e83b41 }, { 0x249dd197,0xb478bd1e,0x5e58c102,0x620c3500,0xccbaac5c,0xfb02d32f,0xf508a72d,0x60b63beb }, { 0x9e062b4f,0x97e8c712,0x29320ad8,0x49e48f4f,0x6f18683f,0x5bece14b,0x2d550317,0x55cf1eb6 }, }, { { 0x7df58c52,0x3076b5e3,0xe799cc36,0xd73ab9dd,0x4913ee20,0xbd831ce3,0x62ba0133,0x1a56fbaa }, { 0x65c23d58,0x58791010,0x5094819c,0x8b9d086d,0x12c55fa7,0xe2402fa9,0x570891d4,0x669a6564 }, { 0x5c9dc9ec,0x943e6b50,0xa77c371a,0x302557bb,0x41347651,0x9873ae56,0x99c58a5c,0x13c48367 }, }, { { 0x5d8bd080,0xc4dcfb6a,0x571a4842,0xdeebc4ec,0xb8e55365,0xd4b2e883,0xc8e5b827,0x50bdc87d }, { 0x5ab3e1b9,0x423a5d46,0xc7f13f61,0xfc13c187,0xecb5b9b6,0x19f83664,0xa637b607,0x66f80c93 }, { 0x6edfe111,0x606d3783,0xf011abd9,0x32353e15,0x25b73b96,0x64b03ac3,0x725fd5ae,0x1dd56444 }, }, { { 0x08bac89a,0xc297e600,0xeae1c3e0,0x7d4cea11,0x9fe7977c,0xf3e38be1,0x63a305cd,0x3a3a450f }, { 0x3362127d,0x8fa47ff8,0x71cd7c15,0xbc9f6ac4,0x49220c8b,0x6e714543,0x219f732e,0x0e645912 }, { 0xd8394627,0x078f2f31,0xde94a510,0x389d3183,0x17996f80,0xd1e36c6d,0x93a9a87b,0x318c8d93 }, }, { { 0xab1dd398,0x5d669e29,0x342d9e3b,0xfc921658,0xf35973cd,0x55851dfd,0x25950af6,0x509a41c3 }, { 0x2afffe19,0xf2745d03,0x7f24db66,0x0c9f3c49,0xba8598ef,0xbc98d3e3,0x9a1d5314,0x224c7c67 }, { 0xa6f925e9,0xbdc06edc,0x641b1f33,0x793ef3f4,0x9d833e89,0x82ec1280,0x28a11389,0x05bff023 }, }, { { 0x0dc512e4,0x6881a0dd,0x44a5fafe,0x4fe70dc8,0x8f4a5240,0x1f748e6b,0xee01a3ea,0x576277cd }, { 0x23cae00b,0x36321370,0xd1accf59,0x544acf0a,0xd21a1c88,0x96741049,0xfa2a44a7,0x780b8cc3 }, { 0x234f305f,0x1ef38abc,0x1405de08,0x9a577fbd,0x34e62a0d,0x5e82a514,0x6271b7a1,0x5ff41872 }, }, { { 0x13b69540,0xe5db47e8,0x432610e1,0xf35d2a3b,0x38781276,0xac1f26e9,0xa0a0cb69,0x29d4db8c }, { 0x1789db9d,0x398e080c,0xf3e778f5,0xa7602025,0x06bd035d,0xfa98894c,0x25a966be,0x106a03dc }, { 0x333353d0,0xd9ad0aaf,0xacd309e5,0x38669da5,0xc888f7f0,0x3c57658a,0x052cbefa,0x4ab38a51 }, }, }, { { { 0x5fddc09c,0xd6cfd1ef,0xf7575dce,0xe82b3efd,0x201634c2,0x25d56b5d,0x04ed2b9b,0x3041c6bb }, { 0x6768d593,0xda7c2b25,0x4422ca13,0x98c1c057,0xca0ace1d,0xf1a80bd5,0xc088a690,0x29cdd1ad }, { 0xd956e148,0x0ff2f2f9,0x9f356b2e,0xade79775,0x5f6c025c,0x1a4698bb,0x14049a7b,0x104bbd68 }, }, { { 0xd67ff163,0xa95d9a5f,0x4cc75681,0xe92be69d,0xde20f257,0xb7f8024c,0xfb072df5,0x204f2a20 }, { 0x68f1ed67,0x51f0fd31,0xd86f3bc2,0x2c811dcd,0x04d2f2de,0x44dc5c43,0x092a7149,0x5be8cc57 }, { 0x30ebb079,0xc8143b3d,0xbd652e30,0x7589155a,0x8f6d5c31,0x653c3c31,0xc279161f,0x2570fb17 }, }, { { 0x0bb8245a,0x192ea955,0x8f9050d1,0xc8e6fba8,0x88a4c935,0x7986ea2d,0xde018668,0x241c5f91 }, { 0x2cb61575,0x3efa367f,0x1cd6026c,0xf5f96f76,0x65b52562,0xe8c7142a,0x53030acd,0x3dcb65ea }, { 0x40de6caa,0x28d81729,0x22d9733a,0x8fbf2cf0,0x235b01d1,0x16d7fcdd,0x5fcdf0e5,0x08420edd }, }, { { 0x04f410ce,0x0358c34e,0x276e0685,0xb6135b5a,0xebb91521,0x5d9670c7,0x21db889c,0x04d654f3 }, { 0x8362fa4a,0xcdff20ab,0xe21a3e6e,0x57e118d4,0xfc39e62b,0xe3179617,0xbc1769fd,0x0d9a53ef }, { 0xddbdb5d5,0x5e7dc116,0x8da5dd2d,0x2954deb6,0x3334a292,0x1cb60817,0x18991ad7,0x4a7a4f26 }, }, { { 0xaf372a4b,0x24c3b291,0x718147f2,0x93da8270,0x86899ef2,0xdd848564,0x23e0ee33,0x4a963142 }, { 0x5fb15f95,0xf4a71802,0x6b5c1b8f,0x3df65f34,0x00e01112,0xcdfcf085,0xddd31848,0x11b50c4c }, { 0x08a4ffd6,0xa6e82744,0x9c1576d9,0x738e177e,0x3d02b3f2,0x773348b6,0xce6bcc51,0x4f4bce4d }, }, { { 0xc49d0b6f,0x30e2616e,0xcaec2317,0xe456718f,0xf26b4fa6,0x48eb409b,0x61595f37,0x3042cee5 }, { 0xe2242584,0xa71fce5a,0x92f58a9e,0x26ea7256,0x1cea3cf4,0xd21a09d7,0xb71c01e6,0x73fcdd14 }, { 0x449bac41,0x427e7079,0xbce2310a,0x855ae36d,0x5f841a7c,0x4cae7621,0x9a9ce1d6,0x389e740c }, }, { { 0x570eac28,0xc9bd78f6,0x27919ce1,0xe55b0b32,0xa19b91ed,0x65fc3eab,0xd6263690,0x25c425e5 }, { 0x34dcb9ce,0x64fcb3ae,0xe348d0ad,0x97500323,0x62c6381b,0x45b3f07d,0x465a6788,0x61545379 }, { 0xf1d7de6e,0x3f3e06a6,0x8e062308,0x3ef97627,0x4e8a6c77,0x8c14f626,0x15484759,0x6539a089 }, }, { { 0x14bb4a19,0xddc4dbd4,0x98424f8e,0x19b2bc3c,0x36ca7169,0x48a89fd7,0xf019bd90,0x0f65320e }, { 0xc3d2f773,0xe9d21f74,0x25c46845,0xc1505441,0xf9b99e33,0x624e5ce8,0xc5cd186c,0x11c5e4aa }, { 0xcafde0c6,0xd486d1b1,0x163b5181,0x4f3fe6e3,0xfaf2939a,0x59a8af0d,0xec33072a,0x4cabc7bd }, }, }, { { { 0x3f78d289,0xc08f788f,0xa1404d9f,0xfe30a72c,0xcf65cc9d,0xf2778bfc,0x5acb2021,0x7ee49816 }, { 0x089c0a2e,0x239e9624,0x3afe4738,0xc748c4c0,0x764fa12a,0x17dbed2a,0x321c8582,0x639b93f0 }, { 0x9111a1c3,0x7bd508e3,0x80907489,0x2b2b90d4,0xae72fd19,0xe7d2aec2,0x85b602a6,0x0edf493c }, }, { { 0x84764113,0x6767c4d2,0xf7f5f835,0xa090403f,0xcae6bede,0x1c8fcffa,0xd1dfa369,0x04c00c54 }, { 0x599b5a68,0xaecc8158,0xebade20e,0xea574f0f,0x22b67f07,0x4fe41d74,0x019d4fb4,0x403b92e3 }, { 0x8b465cf8,0x4dc22f81,0x1480eff8,0x71a0f35a,0x04c7d657,0xaee8bfad,0xb26176f4,0x355bb12a }, }, { { 0x5a8c7318,0xa301dac7,0xb3ceaa11,0xed90039d,0x3bae3f2d,0x6f077cbf,0xe052ad8e,0x7518eaf8 }, { 0x7493bbf4,0xa71e64cc,0xeca3b0c3,0xe5bd84d9,0xfa05e785,0x0a6bc50c,0x182ec312,0x0f9b8132 }, { 0x1b7f6c32,0xa48859c4,0xf4383298,0x0f2d60bc,0xc9b1d1d9,0x1815a929,0xbb1755c4,0x47c3871b }, }, { { 0xc85066b0,0xfbe65d50,0xb3a299b0,0x62ecc4b0,0x441ae8e0,0xe53754ea,0xe8d48d5f,0x08fea02c }, { 0x71ec4f48,0x51445397,0xc98c5d6e,0xf805b17d,0x47c3c66b,0xf762c11a,0x764699dc,0x00b89b85 }, { 0x68deead0,0x824ddd76,0x4b685d23,0xc8644520,0x5d89d665,0xb514cfcd,0x4f75d537,0x473829a7 }, }, { { 0xad3902c9,0x23d9533a,0xef03588f,0x64c2ddce,0xcfe12fb4,0x15257390,0x44e4d390,0x6c668b4d }, { 0x4679c418,0x82d2da75,0xb2618df0,0xe63bd7d8,0xac47eb0a,0x355eef24,0x4833c6b4,0x2078684c }, { 0x7a78820c,0x3b48cf21,0x81273e97,0xf76a0ab2,0x8c8eed7b,0xa96c65a7,0x4f8a433f,0x7411a605 }, }, { { 0x18b175b4,0x579ae53d,0xf392a102,0x68713159,0x1eef35f5,0x8455ecba,0x458c398f,0x1ec9a872 }, { 0xb99dc86d,0x4d659d32,0x603af115,0x044cdc75,0xdcc2e488,0xb34c712c,0xfb8134ff,0x7c136574 }, { 0x00a2509b,0xb8e6a4d4,0x0bc882b4,0x9b81d702,0xf1957561,0x57e7cc9b,0xc7cd6460,0x3add88a5 }, }, { { 0x59393046,0x85c298d4,0x5ff659ec,0x8f7e3598,0xf2f66e3a,0x1d2ca22a,0xa406a720,0x61ba1131 }, { 0xb635dcf2,0xab895770,0xf66c1fbc,0x02dfef6c,0xbeb6d187,0x85530268,0xcc879e74,0x249929fc }, { 0x16959029,0xa3d0a0f1,0xba7ebd89,0x023b6b6c,0x26783307,0x7bf15a3e,0xbbd8ece7,0x5620310c }, }, { { 0x77e285d6,0x6646b5f4,0x6c8f6193,0x40e8ff67,0xabb594dd,0xa6ec7311,0x658cec4d,0x7ec846f3 }, { 0x4934d643,0x52899343,0xa51222f5,0xb9dbf806,0xc3f41c22,0x8f6d878f,0x4d9d9730,0x37676a2a }, { 0x1da22ec7,0x9b5e8f3f,0x6c01cd13,0x130f1d77,0xa2989fb8,0x214c8fcf,0x399b9dd5,0x6daaf723 }, }, }, { { { 0xacad8ea2,0x583b04bf,0x148be884,0x29b743e8,0x0810c5db,0x2b1e583b,0x8eb3bbaa,0x2b5449e5 }, { 0xeb3dbe47,0x5f3a7562,0x8ebda0b8,0xf7ea3854,0x45747299,0x00c3e531,0x1627d551,0x1304e9e7 }, { 0x6adc9cfe,0x789814d2,0x8b48dd0b,0x3c1bab3f,0xf979c60a,0xda0fe1ff,0x7c2dd693,0x4468de2d }, }, { { 0xf86307ce,0x4b9ad8c6,0x435d0c28,0x21113531,0x657a772c,0xd4a866c5,0x63247352,0x5da6427e }, { 0x9419469e,0x51bb355e,0x23ddc754,0x33e6dc4c,0x447f9962,0x93a5b6d6,0xfb44bd63,0x6cce7c6f }, { 0xdeac22ca,0x1a94c688,0xbbae1ff8,0xb9066ef7,0x8d59580f,0x88ad8c38,0xe79f2ca8,0x58f29abf }, }, { { 0x710ecdf6,0x4b5a64bf,0x462c293c,0xb14ce538,0xd50b3ab9,0x3643d056,0x185b4870,0x6af93724 }, { 0x8de73e68,0xe90ecfab,0x377e76a5,0x54036f9f,0xbe015982,0xf0495b0b,0xa7f41e36,0x577629c4 }, { 0x09c6a888,0x32200245,0x4b558973,0xd2e03613,0x3c33289f,0x83e23623,0x0caec18f,0x701f25bb }, }, { { 0x7cbec113,0x9d18f6d9,0x74bfdbe4,0x844a06e6,0xac4e60d6,0x20f5b522,0x50955e51,0x720a5bc0 }, { 0xe4616ced,0xc3a8b0f8,0x9e25a87d,0xf700660e,0xf4bca59c,0x61e3061f,0xbdc40be9,0x2e0c92bf }, { 0x9b805a35,0x0c3f0943,0x6242abfc,0xe84e8b37,0x5c229346,0x691417f3,0x144ef0ec,0x0e9b9cbb }, }, { { 0x5db1beee,0x8dee9bd5,0x0a723fb9,0xc9c3ab37,0x1c68d791,0x44a8f1bf,0x1cfd3cde,0x366d4419 }, { 0xfb5720ad,0xfbbad48f,0xdbf90d0e,0xee81916b,0x635543bf,0xd4813152,0x3f337bd8,0x221104eb }, { 0xf2bc8c14,0x9e3c1743,0xb5856c3b,0x2eda26fc,0x68a7fb97,0xccb82f0e,0xbc593244,0x4167a4e6 }, }, { { 0xf8ce8fee,0xc2be2665,0xe880d62c,0xe967ff14,0x2f364eee,0xf12e6e7e,0xcb7ed2f6,0x34b33370 }, { 0x76f62700,0x643b9d28,0x0e7668eb,0x5d1d9d40,0x21fc0684,0x1b4b4303,0x2255246a,0x7938bb7e }, { 0x8681d6cc,0xcdc591ee,0xed85a753,0xce02109c,0x58808883,0xed7485c1,0x2dfe65e4,0x1176fc6e }, }, { { 0x49770eb8,0xdb90e289,0xacf440a3,0x98fbcc2a,0xded7879b,0x21354ffe,0xf26906b6,0x1f6a3e54 }, { 0x5b9c619b,0xb4af6cd0,0xb2a58480,0x2ddfc9f4,0xebe94dc4,0x3d4fa502,0x677d5f34,0x08fc3a4c }, { 0xd30734ea,0x60a4c199,0x31165cd6,0x40c085b6,0xf7598295,0xe2333e23,0x16b900d1,0x4f2fad01 }, }, { { 0xb73bb638,0x962cd91d,0xfc129c08,0xe60577aa,0xf3b61689,0x6f619b39,0x2944ee81,0x3451995f }, { 0x94ae4e54,0x44beb241,0x1857ef6c,0x5f541c51,0x368d0498,0xa61e6b2d,0x972ef7ab,0x445484a4 }, { 0x9fea7d7c,0x9152fcd0,0xb0935cf6,0x4a816c94,0x47285c40,0x258e9aaa,0x042893b7,0x10b89ca6 }, }, }, { { { 0x5a45f06e,0x753941be,0x6d9c5f65,0xd07caeed,0x72ff51b6,0x11776b9c,0xef0d4da9,0x17d2d1d9 }, { 0x9718289c,0x3d594749,0x24533f26,0x12ebf8c5,0x14c3ef15,0x0262bfcb,0x77b7518e,0x20b878d5 }, { 0x073f3e6a,0x27f2af18,0xd7521069,0xfd3fe519,0x3ca60022,0x22e3b72c,0xcc65c6a7,0x72214f63 }, }, { { 0xf43b29c9,0x1d9db7b9,0x4f518f75,0xd605824a,0x312f9dc4,0xf2c072bd,0x5a1545b0,0x1f24ac85 }, { 0x5307a693,0xb4e37f40,0x2f336795,0xaba714d7,0x73761099,0xd6fbd0a7,0x8171cbc9,0x5fdf48c5 }, { 0x8e9505aa,0x24d60832,0x0c1420ee,0x4748c1d1,0x06fb25a2,0xc7ffe45c,0x2ae395e6,0x00ba739e }, }, { { 0xea88bb26,0xae4426f5,0x84973bfb,0x360679d9,0x26694e50,0x5c9f030c,0xd518d226,0x72297de7 }, { 0x5c8790d6,0x592e98de,0x45c2a2df,0xe5bfb7d3,0xf9b49922,0x115a3b60,0x67ad78f3,0x03283a3e }, { 0xbe0cb939,0x48241dc7,0x8b633080,0x32f19b4d,0x02289308,0xd3dfc90d,0x46271945,0x05e12968 }, }, { { 0x242c4550,0xadbfbbc8,0xd03081d9,0xbcc80cec,0xf5c8df92,0x843566a6,0x8258ce4c,0x78cf25d3 }, { 0x2d9c495a,0xba82eeb3,0xf12bb97c,0xceefc8fc,0x93b5d1e0,0xb02dabae,0x13698d9b,0x39c00c9c }, { 0x31489d68,0x15ae6b8e,0x9c2bf087,0xaa851cab,0xf04efa05,0xc9a75a97,0x6b3ff832,0x006b5207 }, }, { { 0xb9ce082d,0xf5cb7e16,0x417abc29,0x3407f14c,0x2bf4a7ab,0xd4b36bce,0x1a9f75ce,0x7de2e956 }, { 0x9d95781c,0x29e0cfe1,0x966310e2,0xb681df18,0x70516b39,0x57df39d3,0x3bc76122,0x4d57e344 }, { 0xb6a55ecb,0xde70d4f4,0x5d85db99,0x4801527f,0xd3ee9a81,0xdbc9c440,0x1a6029ed,0x6b2a90af }, }, { { 0x5bb2d80a,0x77ebf324,0x2fb9079b,0xd8301b47,0x4cee7333,0xc647e6f2,0x276c2109,0x465812c8 }, { 0x9ae61e97,0x6923f4fc,0xe03f5fd1,0x5735281d,0xe6edd12d,0xa764ae43,0xd12d3e4a,0x5fd8f4e9 }, { 0x2a1062d9,0x4d43beb2,0x3831dc16,0x7065fb75,0xde2968d7,0x180d4a7b,0x1cb16790,0x05b32c2b }, }, { { 0x7ad58195,0xf7fca42c,0x4333f3cc,0x3214286e,0x340b979d,0xb6c29d0d,0x567307e1,0x31771a48 }, { 0xd24da8fd,0xc8c05ecc,0x05dfef83,0xa1cf1aac,0x7df9cd61,0xdbbeeff2,0x7b471e99,0x3b5556a3 }, { 0xe14dd482,0x32b0c524,0x1a2ba4b6,0xedb35154,0x282b5af3,0xa3d16048,0x7a7336eb,0x4fc079d2 }, }, { { 0x0c86c50d,0xdc348b44,0xcc94e651,0x1337cbc9,0x643e3cb9,0x6422f74d,0xbae3cd08,0x241170c2 }, { 0x89bf2f7f,0x51c938b0,0x02dfe9a7,0x2497bd65,0x7880e453,0xffffc09c,0xcaf98e92,0x124567ce }, { 0x0ac473b4,0x3ff9ab86,0x0113e435,0xf0911dee,0xebc6c4af,0x4ae75060,0x6c87000d,0x3f861296 }, }, }, { { { 0x36048d13,0x9c18fcfa,0x73899ddd,0x29159db3,0x9f92d0aa,0xdc9f350b,0x878a19d4,0x26f57eee }, { 0x782a0dde,0x559a0cc9,0xea718385,0x551dcdb2,0x31ef238c,0x7f62865b,0x7973613d,0x504aa776 }, { 0x5687efb1,0x0cab2cd5,0x247af17b,0x5180d162,0x4f5a2467,0x85c15a34,0x9dba3069,0x4041943d }, }, { { 0xa26caadd,0x4b217743,0x648ab7ce,0x47a6b424,0x03fbc9e3,0xcb1d4f7a,0x9800d019,0x12d93142 }, { 0x43ebcc96,0xc3c0eeba,0x26ea9caf,0x8d749c9c,0x1c77ccc6,0xd9fa95ee,0x7684340f,0x1420a1d9 }, { 0xd337594f,0x00c67799,0xb23aa47b,0x5e3c5140,0xe35ff395,0x44182854,0x4359a012,0x1b4f9231 }, }, { { 0xa49866b1,0x33cf3030,0x215f4859,0x251f73d2,0x51def4f6,0xab82aa40,0x6f9a23f6,0x5ff191d5 }, { 0x89150951,0x3e5c109d,0x2de9696a,0x39cefa91,0x975f3020,0x20eae43f,0x7f132dae,0x239b572a }, { 0xac2d9068,0x819ed433,0x5fc98523,0x2883ab79,0x5593eb3d,0xef457280,0x758f36cb,0x020c526a }, }, { { 0xf042cc89,0xe931ef59,0x8e124bb6,0x2c589c9d,0xaec75997,0xadc8e18a,0x5602c50c,0x452cfe0a }, { 0x9ed8dbbc,0x779834f8,0xdc7ca46c,0xc8f2aaf9,0xa3e1b074,0xa9524cdc,0x15313877,0x02aacc46 }, { 0x647877df,0x86a0f7a0,0x0e607c9f,0xbbc46427,0xf1fb11c9,0xab17ea25,0x304b877b,0x4cfb7d7b }, }, { { 0x9789ef12,0xe28699c2,0xdf57190d,0x2b6ecd71,0xecc970d0,0xc343c857,0x434d3ac5,0x5b1d4cbc }, { 0xb89b75fe,0x72b43d6c,0x9c6adc80,0x54c694d9,0x3ee34c9f,0xb8c3aa37,0x39075364,0x14b4622b }, { 0xcc0a9f26,0xb6fb2615,0xb88dcce5,0x3a4f0e2b,0x3369a705,0x1301498b,0x58592dd1,0x2f98f712 }, }, { { 0x4f54a701,0x2e12ae44,0xa9cbd7de,0xfcfe3ef0,0x75835de0,0xcebf890d,0xe7614554,0x1d8062e9 }, { 0xb50f9e56,0x0c94a74c,0x8e8e1320,0x5b1ff4a9,0x82300f67,0x9a2acc21,0xd806aaf9,0x3a6ae249 }, { 0xa9907c5a,0x657ada85,0x91b90f62,0x1a0ea8b5,0xdf34b4e9,0x8d0e1dfb,0xaef25ff3,0x298b8ce8 }, }, { { 0x0a2165de,0x837a72ea,0x0bcf79f6,0x3fab07b4,0x7738ae70,0x521636c7,0x03a7d7dc,0x6ba62718 }, { 0xeff70cb2,0x2a927953,0x79157076,0x4b89c92a,0x30a7cf6a,0x9418457a,0x4d5ce485,0x34b8a840 }, { 0x83693335,0xc26eecb5,0x63b5fefd,0xd5a813df,0xa4b22573,0xa293aa9a,0x465e1c6a,0x71d62bdd }, }, { { 0xb1f75ef5,0xcd2db5da,0x16b065f5,0xd77f95cf,0x3f49f085,0x14571fea,0x262b2b3d,0x1c333621 }, { 0xd378df80,0x6533cc28,0x0a0fa4b4,0xf6db4379,0xf701da5a,0xe3645ff9,0xf3172ba4,0x74d5f317 }, { 0x67d9ca81,0xa86fe554,0x2b298c37,0x398b7c75,0xe3ac623b,0xda6d0892,0x47e9d98c,0x4aebcc45 }, }, }, { { { 0x7354b610,0x0b408d9e,0x5ba85b6e,0x806b3253,0x4a58a207,0xdbe63a03,0xc9a1df2c,0x173bd9dd }, { 0x276d01c9,0x12f0071b,0x86c48c70,0xe7b8bac5,0x71d6fba9,0x5308129b,0x5a3db792,0x5d88fbf9 }, { 0xfe5872df,0x2b500f1e,0xd43918c1,0x58d6582e,0xc9673ae0,0xe6ed278e,0xb19ea319,0x06e1cd13 }, }, { { 0x9e5b0353,0x472baf62,0x278d0447,0x3baa0b90,0x9643bf27,0x0c785f46,0x8d837b13,0x7f3a6a1a }, { 0x6f166f23,0x40d0ad51,0x1fab6abe,0x118e3293,0xa04d088e,0x3fe35e14,0x26e16266,0x30806035 }, { 0x5d3d800b,0xf7e64439,0xc901edf6,0x95a8d555,0x592c6339,0x68cd7830,0x2e51307e,0x30d0fded }, }, { { 0x68b84750,0x9cb4971e,0x6664bbcf,0xa0957229,0x72fa412b,0x5c8de726,0x51c589d9,0x46150843 }, { 0xf21233b3,0xe0594d1a,0xf0cc4d9c,0x1bdbe78e,0x8f499a77,0x6965187f,0x2c099868,0x0a921420 }, { 0xaeb9a02e,0xbc9019c0,0x16034cae,0x55c7110d,0x659932ec,0x0e6df501,0x95ca5dfe,0x3bca0d28 }, }, { { 0x9ecc01bf,0x9c688eb6,0xa644896f,0xf0bc83ad,0x5f7a9fe2,0xca2d955f,0x8df28241,0x4ea8b403 }, { 0x3c5d62a4,0x40f031bc,0xcff07a60,0x19fc8b3e,0x130fb545,0x98183da2,0xae8f13cd,0x5631dedd }, { 0xf1cad202,0x2aed460a,0xa48cee83,0x46305305,0x49f11a5f,0x91217745,0x542ca463,0x24ce0930 }, }, { { 0xfdf30b85,0x3fcfa155,0x36372ea4,0xd2f7168e,0x6492f844,0xb2e064de,0x324f4280,0x549928a7 }, { 0xfd06c106,0x1fe890f5,0x5d8810f2,0xb5c46835,0x6e8caf3e,0x827808fe,0x8a06d74b,0x41d4e3c2 }, { 0x63ee1a2e,0xf26e32a7,0xd25ffdea,0xae91e4b7,0xd17f4d69,0xbc3bd33b,0xc0dcff6a,0x491b66de }, }, { { 0xd0da64a1,0x75f04a8e,0x67e2284b,0xed222caf,0x1f7b7ba4,0x8234a379,0xb7018b67,0x4cf6b8b0 }, { 0xc7ea32a7,0x98f5b13d,0x7e16db98,0xe3d5f8cc,0xcbf8d947,0xac0abf52,0xc85ee4ac,0x08f338d0 }, { 0x991a73bd,0xc383a821,0xdf320c7a,0xab27bc01,0x84777063,0xc13d331b,0xeb078a99,0x530d4a82 }, }, { { 0x6c9abf9e,0x6d697345,0x4900a880,0x257fb2fc,0xc8cfb850,0x2bacf412,0x0cbfbd5b,0x0db3e7e0 }, { 0xe1f94825,0x004c3630,0x8cab535a,0x7e2d7826,0xcc84ff8b,0xc7482323,0x101770b9,0x65ea753f }, { 0xe2096363,0x3d66fc3e,0x61b5cb6b,0x81d62c7f,0x13443b1a,0x0fbe0442,0x21e1a1db,0x02a4ec19 }, }, { { 0xf1cf795f,0xf5c86162,0x26ee57f2,0x118c8619,0x1c063578,0x17212485,0xec067fcf,0x36d12b5d }, { 0x3b24b8a2,0x5ce6259a,0x45afa0b8,0xb8577acc,0x8ba07037,0xcccbe6e8,0x127809bf,0x3d143c51 }, { 0x79154557,0x126d2791,0xfc783a0a,0xd5e48f5c,0xdf179bac,0x36bdb6e8,0x5ba82859,0x2ef51788 }, }, }, { { { 0x305b2f51,0x96eebffb,0x889596b8,0xd3f938ad,0x46d5dd25,0xf0f52dc7,0xbb3a0095,0x57968290 }, { 0x8c58aedc,0x4637974e,0xabf041a4,0xb9ef22fb,0xe980718a,0xe185d956,0xb143a8a6,0x2f1b78fa }, { 0x0a20e101,0xf71ab843,0x24f0ec47,0xf393658d,0x6ee2eed1,0xcf7509a8,0xdc2aa3e1,0x7dc43e35 }, }, { { 0x273e9718,0x5a782a5c,0x5e4efd94,0x3576c699,0x1f237d3e,0x0f2ed805,0x82d50a99,0x044fb81d }, { 0x887dd9c3,0x85966665,0x4bb05355,0xc90f9b31,0xef2079b1,0xc6e08df8,0x758cc12f,0x7ef72016 }, { 0xa907e3d9,0xc1df18c5,0xce4c6359,0x57b3371d,0xb201bb49,0xca704534,0x9c30dd2e,0x7f79823f }, }, { { 0x68f587ba,0x6a9c1ff0,0x0050c8de,0x0827894e,0x7ded5be7,0x3cbf9955,0x1c06d6f0,0x64a9b043 }, { 0xa3b513e8,0x8334d239,0xb91fa8d8,0xc13670d4,0xf590bd33,0x12b54136,0xd784d9b4,0x0a4e0373 }, { 0x5b7d2919,0x2eb3d6a1,0xd53a8235,0xb0b4f6a0,0x89a45d47,0x7156ce43,0xce18346c,0x071a7d0a }, }, { { 0x20e14431,0xcc0c3552,0x09b15141,0x0d659507,0x209d5f36,0x9af5621b,0x617755d3,0x7c69bcf7 }, { 0xc887ba0b,0xd3072daa,0xbfa562ee,0x01262905,0xc0ef768b,0xcf543002,0x46ea7e9c,0x2c3bcc71 }, { 0x04e8295f,0x07f0d7eb,0x2f50f37d,0x10db1825,0x171798d7,0xe951a9a3,0x22aca51d,0x6f5a9a73 }, }, { { 0xa3d944be,0xe729d4eb,0x8078af9e,0x8d9e0940,0x47869c03,0x4525567a,0xee8d3b24,0x02ab9680 }, { 0x2f41c6c5,0x8ba1000c,0x0cfefb9b,0xc49f79c1,0x3cc51c9f,0x4efa4770,0xe147afca,0x494e21a2 }, { 0xdde50d9a,0xefa48a85,0x0fb9a249,0x219a224e,0xd91ef6d9,0xfa091f1d,0xea46bb34,0x6b5d76cb }, }, { { 0x1e782522,0xe0f94117,0x036936d3,0xf1e6ae74,0xd0fcc746,0x408b3ea2,0x03dd313e,0x16fb869c }, { 0xec0cd994,0x8857556c,0x5cd01dba,0x6472dc6f,0x8f42b477,0xaf016914,0x85277354,0x0ae333f6 }, { 0x33b60962,0x288e1997,0xd8abe133,0x24fc72b4,0x0991d03e,0x4811f7ed,0x8f70d075,0x3f81e38b }, }, { { 0x5f17c824,0x0adb7f35,0xd74299a4,0x74b923c3,0xcbf8eaf7,0xd57c3e8b,0x4cdedc3d,0x0ad3e2d3 }, { 0x7ed9affe,0x7f910fcc,0x2465874b,0x545cb8a1,0x4b0c4704,0xa8397ed2,0x04f50993,0x50510fc1 }, { 0x336e249d,0x6f0c0fc5,0xc331cfd9,0x745ede19,0x09eefe1c,0xf2d6fd00,0xf0fa1ebe,0x127c158b }, }, { { 0xae51b974,0xdea28fc4,0x744dfe96,0x1d9973d3,0x873848a8,0x6240680b,0xd167df95,0x4ed82479 }, { 0x2e9879a2,0xf6197c42,0x52ca3647,0xa44addd4,0x4b4eaccb,0x9b413fc1,0x07ef4f68,0x354ef87d }, { 0x60c5d975,0xfee3b522,0xeb41b0b8,0x50352efc,0xa9f6653c,0x8808ac30,0x0539236d,0x302d92d2 }, }, }, { { { 0xe4e0f177,0x2dbc6fb6,0xa4bd6a93,0x04e1bf29,0x787af6e8,0x5e1966d4,0xb426d060,0x0edc5f5e }, { 0xbca4283d,0x7813c1a2,0xa1863dd9,0xed62f091,0xc268fa86,0xaec7bcb8,0x6f1cae4c,0x10e5d3b7 }, { 0x53da8e67,0x5453bfd6,0x24a9f641,0xe9dc1eec,0x03578a23,0xbf87263b,0x361cba72,0x45b46c51 }, }, { { 0x8a7fe3e4,0xce9d4ddd,0x76620e30,0xab136456,0xb30e9958,0x4b594f7b,0x321229df,0x5c1c0aef }, { 0x314f7fa1,0xa9402abf,0x8e8cf450,0xe257f1dc,0x23a8be84,0x1dbbd54b,0x6dcb713b,0x2177bfa3 }, { 0xfa79db8f,0x37081bbc,0xc25f59b3,0x6048811e,0x9c832487,0x087a7665,0x7d8ab5bb,0x4ae61938 }, }, { { 0x985bfb83,0x61117e44,0x71963136,0xfce0462a,0xd425904b,0x83ac3448,0x5ba43d64,0x75685abe }, { 0x5344a32e,0x8ddbf6aa,0xb41b4078,0x7d88eab4,0x4a130d60,0x5eb0eb97,0x17bf3e03,0x1a00d91b }, { 0xeb61f2b2,0x6e960933,0xc9ff4952,0x543d0fa8,0x7af66569,0xdf727510,0x23b0e6aa,0x135529b6 }, }, { { 0xe22e83fe,0xf5c716bc,0xe80985c1,0xb42beb19,0x14254aae,0xec9da637,0x1590a613,0x5972ea05 }, { 0xadd1d518,0x18f0dbd7,0xcfc11f11,0x979f7888,0x7114759b,0x8732e1f0,0x65ca3a01,0x79b5b81a }, { 0xdc8f7811,0x0fd4ac20,0xac4d4fa8,0x9a9ad294,0xb3360434,0xc01b2d64,0x905f3bdb,0x4f7e9c95 }, }, { { 0x355299fe,0x71c8443d,0xdbebead7,0x8bcd3b1c,0xf1a49466,0x8092499e,0xa144adc8,0x1942eec4 }, { 0x5781302e,0x62674bbc,0x89addc0f,0xd8520f39,0x53fbd9c6,0x8c2999ae,0x2e638e4c,0x31993ad9 }, { 0xae234992,0x7dac5319,0x0cea3e92,0x2c1b3d91,0x253c1122,0x553ce494,0x4ef9ca75,0x2a0a6531 }, }, { { 0x3c1c793a,0xcf361acd,0x5a35bc3b,0x2f9ebcac,0xa8cda6ab,0x60e860e9,0x6dea1a13,0x055dc39b }, { 0xf7f927c2,0x2db7937f,0x17d0a635,0xdb741f06,0x1155af76,0x5982f3a2,0x647c2ded,0x4cf6e218 }, { 0xc28d5bb6,0xb119227c,0x774dffab,0x07e24ebc,0xe4a32c89,0xa83c78ce,0x10aa24b6,0x121a3077 }, }, { { 0xc77483c9,0xd659713e,0xb82b96af,0x88bfe077,0x1097bcd3,0x289e2823,0x6ced3a9b,0x527bb94a }, { 0x9f034a97,0xe4db5d5e,0x3034bc2d,0xe153fc09,0x9551d3b1,0x46054691,0x7a40e52d,0x333fc76c }, { 0x995b482e,0x563d992a,0x6e383801,0x3405d07c,0x2f64d8e5,0x485035de,0x20a7a9f7,0x6b89069b }, }, { { 0xb5c7db77,0x4082fa8c,0xc734c155,0x068686f8,0xf6e7a57e,0x29e6c8d9,0xa7639bcf,0x0473d308 }, { 0x6270220d,0x812aa041,0xf9245b4e,0x995a89fa,0x5072ef05,0xffadc4ce,0xaa73eb73,0x23bc2103 }, { 0x03589e05,0xcaee7926,0x46dcc492,0x2b4b4212,0xe601a94f,0x02a1ef74,0xde04341a,0x102f73bf }, }, }, { { { 0xb5511c9a,0xa2b4dae0,0x2bffff06,0x7ac86029,0xf5504234,0x981f375d,0xda4ea12d,0x3f6bd725 }, { 0x7f5745c6,0xeb18b9ab,0x5787c690,0x023a8aee,0x2df7afa9,0xb72712da,0xea5c013d,0x36597d25 }, { 0x106058ac,0x734d8d7b,0x6fc6905f,0xd940579e,0x9202932d,0x6466f8f9,0xda60d6d0,0x7b7ecc19 }, }, { { 0xa77cfa9b,0x6dae4a51,0xe7a38650,0x82263654,0x8f2d82db,0x09bbffcd,0x1bf5caba,0x03bedc66 }, { 0x695c690d,0x78c2373c,0x0642906e,0xdd252e66,0x4ae12bd2,0x951d4444,0x01743956,0x4235ad76 }, { 0x078975f5,0x6258cb0d,0x9189f298,0x49294254,0xe2e36ee4,0xa0cab423,0xcdf066a1,0x0e7ce2b0 }, }, { { 0xd94b70f9,0xfea6fedf,0xc1fcba2d,0xf130c051,0x7f2fab89,0x4882d47e,0x8aeceeb5,0x61525613 }, { 0xc48c85a3,0xc494643a,0x3c6139ad,0xfd361df4,0x3ae94d48,0x09db17dd,0x8fb4674a,0x666e0a5d }, { 0x4870cb0d,0x2abbf64e,0xaa458b6b,0xcd65bcf0,0x75e8985d,0x9abe4eba,0xd514dee4,0x7f0bc810 }, }, { { 0x737213a0,0x83ac9dad,0x2ef72e98,0x9ff6f8ba,0x43ec6957,0x311e2edd,0xdec5ab75,0x1d3a907d }, { 0x26f4136f,0xb9006ba4,0x57e03035,0x8d67369e,0x4f463c28,0xcbc8dfd9,0xf8eedbf5,0x0d1f8dbc }, { 0x3ed081dc,0xba169331,0x851b3480,0x29329fad,0x030321cb,0x0128013c,0xa31bfde3,0x00011b44 }, }, { { 0x6a0aa75c,0x16561f69,0x5852bd6a,0xc1bf725c,0x9a7966ad,0x11a8dd7f,0xd2851026,0x63d988a2 }, { 0x3fc66c0c,0x3fdfa06c,0x4dd60dd2,0x5d40e38e,0x268e4d71,0x7ae38b38,0x6e8357e1,0x3ac48d91 }, { 0xafbd232e,0x00120753,0xfdd8f683,0xe92bceb8,0x84e72b91,0xf81669b3,0x2368a066,0x33fad52b }, }, { { 0xc422cfe8,0x8d2cc8d0,0x05a13acb,0x072b4f7b,0xecf6a56f,0xa3feb6e6,0xb90a71e2,0x3cc355cc }, { 0xc5e41e16,0x540649c6,0x333f7735,0x0af86430,0xf305e746,0xb2acfcd2,0xa256dca7,0x16c0f429 }, { 0x903e9131,0xe9b69443,0x7a5637ce,0xb8a494cb,0xbaba9244,0xc87cd1a4,0x6bae7568,0x631eaf42 }, }, { { 0xa3700de8,0x47d975b9,0xe2f80552,0x7280c5fb,0x32e45de1,0x53658f27,0x665f80b5,0x431f2c7f }, { 0xda66fe9f,0xb3e90410,0x6c16e5a6,0x85dd4b52,0x1ef9bf83,0xbc3d9761,0x1ea919b5,0x5599648b }, { 0x858f7b19,0xd6026344,0xa1ea514a,0x14ab352f,0x2090a9d7,0x8900441a,0x91253b26,0x7b04715f }, }, { { 0xc4e6bac6,0xb376c280,0x6d1d9b0b,0x970ed3dd,0x450bf944,0xb09a9558,0x57cde223,0x48d0acfa }, { 0xacf6ae43,0x83edbd28,0x7d5c7ab4,0x86357c8b,0xb7eb2c44,0xc0404769,0xc2f6583f,0x59b37bf5 }, { 0x7dabe671,0xb60f26e4,0x622f3a37,0xf1d1a197,0xe9960394,0x4208ce7e,0x336d3bdb,0x16234191 }, }, }, { { { 0x1ff38640,0xdd499cd6,0x063625a0,0x29cd9bc3,0x3dd73dc3,0x51e2d802,0x203b9231,0x4a25707a }, { 0xf6267ff6,0xb9e499de,0x742c0843,0x7772ca7b,0xe9a4f2b1,0x23a0153f,0xd5d05006,0x2cdfdfec }, { 0x53f6ed6a,0x2ab7668a,0x1dd170a1,0x30424258,0x3ae20161,0x4000144c,0x248e49fc,0x5721896d }, }, { { 0xa1d0da4e,0x285d5091,0xb5fe3e08,0x4baa6fa7,0xe19393b3,0x63e5177c,0xc4b030fd,0x03c935af }, { 0xfd181bae,0x0b6e5517,0x2bb963b4,0x9022629f,0x32064625,0x5509bce9,0xf63c13da,0x578edd74 }, { 0x492b0c3d,0x997276c6,0xdfe205fc,0x47ccc2c4,0xdd623a3c,0xdcd29b84,0x0288c7a2,0x3ec2ab59 }, }, { { 0xae32d1cb,0xa7213a09,0x40f5c2d5,0x0f2b87df,0xe81eab29,0x0baea4c6,0x6adbac5e,0x0e1bf66c }, { 0xe4d87bb9,0xa1a0d27b,0x61391aed,0xa98b4deb,0x73cb9b83,0x99a0ddd0,0x200fcace,0x2dd5c25a }, { 0x792c887e,0xe2abd5e9,0xcb926d5d,0x1a020018,0xbaae5f1e,0xbfba69cd,0x5ae88f5f,0x730548b3 }, }, { { 0xa1d6e334,0x805b094b,0x09353f19,0xbf3ef177,0x0622702b,0x423f06cb,0xd87845dd,0x585a2277 }, { 0xcba8b8ee,0xc43551a3,0xb2115f16,0x65a26f1d,0xab8c3850,0x760f4f52,0x411db8ca,0x3043443b }, { 0x33d48962,0xa18a5f82,0xec78257f,0x6698c4b5,0x373e41ff,0xa78e6fa5,0x50ef981f,0x76562789 }, }, { { 0xea86cf9d,0xe17073a3,0x07155fdc,0x3a8cfbb7,0x31838a8e,0x4853e7fc,0xb613f616,0x28bbf484 }, { 0xd51fc8c0,0x38c3cf59,0x0506b6f2,0x9bedd2fd,0xab570e8f,0x26bf109f,0xc1b846a6,0x3f4160a8 }, { 0x6f136c7c,0xf2612f5c,0xf6dd11be,0xafead107,0x13de6f33,0x527e9ad2,0x8188f75d,0x1e79cb35 }, }, { { 0xf5e08181,0x77e953d8,0x299dded9,0x84a50c44,0x864525e5,0xdc6c2d0c,0x39d1f2f4,0x478ab52d }, { 0xeef7e3f1,0x013436c3,0xfe9e10f8,0x828b6a7f,0xbcf9defc,0x7ff908e5,0x3a3b3831,0x65d7951b }, { 0x9252d159,0x66a6a4d3,0x871ac807,0xe5dde1bc,0xa6c1c96f,0xb82c6b40,0x1a212214,0x16d87a41 }, }, { { 0xd54e0583,0xfba4d5e2,0x2ebd99fa,0xe21fafd7,0x6ee9778f,0x497ac273,0x7a5a6dde,0x1f990b57 }, { 0x42066215,0xb3bd7e5a,0x0c5a24c1,0x879be3cd,0xd6f994b7,0x57c05db1,0x65f38ca6,0x28f87c81 }, { 0x1be8f7d6,0xa3344ead,0xacea798f,0x7d1e50eb,0x520de052,0x77c6569e,0x534d6d3e,0x45882fe1 }, }, { { 0x943c6fe4,0xd8ac9929,0xa38392a2,0xb5f9f161,0xbec89af3,0x2699db13,0xe405f074,0x7dcf843c }, { 0x757983d6,0x6669345d,0x17aa11a6,0x62b6ed11,0x985e128f,0x7ddd1857,0xf626f6dd,0x688fe5b8 }, { 0x4a4732c0,0x6c90d648,0xca563299,0xd52143fd,0x915dc6e1,0xb3be28c3,0x7327191b,0x6739687e }, }, }, { { { 0xc80c1ac0,0xa66dcc9d,0x1b38a436,0x97a05cf4,0x95dbd7c6,0xa7ebf3be,0x8d7e7dab,0x7da0b8f6 }, { 0x385675a6,0xef782014,0xaafda9e8,0xa2649f30,0x5cdfa8cb,0x4cd1eb50,0x1d4dc0b3,0x46115aba }, { 0xc3b5da76,0xd40f1953,0x21119e9b,0x1dac6f73,0xfeb25960,0x03cc6021,0x83674b4b,0x5a5f887e }, }, { { 0xa0a643b9,0x9e9628d3,0xe6c32064,0xb5c3cb00,0x7c2dec32,0x9b530289,0xd5d1c70c,0x43e37ae2 }, { 0x70a13d11,0x8f6301cf,0x350dd0c4,0xcfceb815,0xa4bca47e,0xf70297d4,0xe44d1434,0x3669b656 }, { 0xeda6e133,0x387e3f06,0x99a13ac0,0x67301d51,0x36263811,0xbd5ad8f8,0x4fd5e9be,0x6a21e6cd }, }, { { 0x6699b2e3,0xef412912,0x708d1301,0x71d30847,0x1182b0bd,0x325432d0,0x001e8b36,0x45371b07 }, { 0x3046e65f,0xf1c6170a,0x00d23524,0x58712a2a,0x8c82b755,0x69dbbd3c,0xa195ff57,0x586bf9f1 }, { 0x5ef8790b,0xa6db088d,0x610937e5,0x5278f0dc,0x61a16eb8,0xac0349d2,0x90e52179,0x0eafb037 }, }, { { 0x0f75ae1d,0x5140805e,0x2662cc30,0xec02fbe3,0xea92396d,0x2cebdf1e,0xc5435bb3,0x44ae3344 }, { 0x3748042f,0x960555c1,0x820baa11,0x219a41e6,0x73486d0c,0x1c81f738,0x5a02c661,0x309acc67 }, { 0xbba543ee,0x9cf289b9,0x5ac97142,0xf3760e9d,0x4f9360aa,0x1d82e5c6,0x7f94678f,0x62d5221b }, }, { { 0x3af77a3c,0x7585d426,0xfee9144d,0xdfae7b11,0x59f7193d,0xa5067080,0x83922037,0x14f29a53 }, { 0x18d0936d,0x524c299c,0x8a0c1a0c,0xc86bb56c,0xdb4a8631,0xa375052e,0xbc754562,0x5c0efde4 }, { 0x25b2d7f5,0xdf717edc,0x99b53040,0x21f970db,0xc3ed4c62,0xda9234b7,0x7bee093e,0x5e72365c }, }, { { 0x2f08b33e,0x7d933906,0xdf9f32be,0x5b9659e5,0x1f9ebdfd,0xacff3dad,0xcb7349b7,0x70b20555 }, { 0x4571217f,0x575bfc07,0x0694d95b,0x3779675d,0xf4191e33,0x9a0a37bb,0x47b4eabc,0x77f1104c }, { 0x55112c4c,0xbe5113c5,0x9a881fcd,0x6688423a,0x5e503b47,0x44667785,0x4a06404a,0x0e34398f }, }, { { 0x3e4b1928,0x18930b09,0x73f3f640,0x7de3e10e,0x73395d6f,0xf43217da,0xca379c3e,0x6f8aded6 }, { 0x3ecebde8,0xb67d22d9,0x27822f07,0x09b3e841,0xb05b6d8d,0x743fa61f,0x8a362372,0x5e540536 }, { 0xfdb7b29a,0xe340123d,0xa21ab291,0x487b97e1,0xfde6949e,0xf9967d02,0xc8d3de97,0x780de72e }, }, { { 0x00f42772,0x671feaf3,0x2a8c41aa,0x8f72eb2a,0x97373292,0x29a17fd7,0x32b587a6,0x1defc6ad }, { 0x089ae7bc,0x0ae28545,0x1c7f4d06,0x388ddecf,0x0a4811b8,0x38ac1551,0x71928ce4,0x0eb28bf6 }, { 0xef5195a7,0xaf5bbe1a,0x917b15ed,0x148c1277,0x7ae5da2e,0x2991f7fb,0xf8dd2867,0x467d201b }, }, }, { { { 0x567ae7a9,0xbc1ef4bd,0xd64498bd,0x3f624cb2,0x2c1f4ec8,0xe41064d2,0xba384001,0x2ef9c5a5 }, { 0x74ef4fad,0x95fe919a,0xf6a308a2,0x3a827bec,0x09a47b01,0x964e01d3,0x5ba3c797,0x71c43c4f }, { 0xfa9e74cd,0xb6fd6df6,0xe4af267a,0xf18278bc,0xf1ef990e,0x8255b3d0,0x90c5f293,0x5a758ca3 }, }, { { 0x1d61dc94,0x8ce0918b,0x9a813066,0x8ded3646,0xafe8aad3,0xd4e6a829,0xf639d43f,0x0a738027 }, { 0xd9462495,0xa2b72710,0xd57d5003,0x3aa8c6d2,0xa0b487ca,0xe3d400bf,0xb3eb72ec,0x2dbae244 }, { 0x57ffe1cc,0x980f4a2f,0xe1839843,0x00670d0d,0x49fb15fd,0x105c3f4a,0x5126a69c,0x2698ca63 }, }, { { 0x5e3dd90e,0x2e3d702f,0xe4d25386,0x9e3f0918,0x024da96a,0x5e773ef6,0x4afa3332,0x3c004b0c }, { 0x32b0ba78,0xe7653188,0x925cff8b,0x381831f7,0xa0291fcc,0x08a81b91,0x49caeb07,0x1fb43dcc }, { 0x06f4b82b,0x9aa946ac,0xa806c4f3,0x1ca284a5,0xc6cd4787,0x3ed3265f,0xcd1fd217,0x6b43fd01 }, }, { { 0x3e760ef3,0xb5c74258,0xee0ab990,0x75dc52b9,0x072b923f,0xbf1427c2,0x6ff0d9f0,0x73420b2d }, { 0x4697c544,0xc7a75d4b,0xdf0fffbf,0x15fdf848,0xaa46785a,0x2868b9eb,0x5b52f714,0x5a68d710 }, { 0x9e851e06,0xaf2cf6cb,0xc62238c4,0x8f593913,0x99fbf373,0xda8ab896,0xea34bc9e,0x3db5632f }, }, { { 0x829825d5,0x2e4990b1,0x3e9a8991,0xedeaeb87,0x4c704af8,0xeef03d39,0x95df2b0e,0x59197ea4 }, { 0xf75dd9d8,0xf46eee2b,0x396759a5,0x0d17b1f6,0x499e7273,0x1bf2d131,0x49d75f13,0x04321adf }, { 0xe4e55aae,0x04e16019,0x7e2f92e9,0xe77b437a,0x6f159aa4,0xc7ce2dc1,0xf4d70cc0,0x45eafdc1 }, }, { { 0xcfccb1ed,0xb60e4624,0xbd5c0395,0x59dbc292,0xdc0481c9,0x31a09d1d,0x5d56d940,0x3f73ceea }, { 0x8045d72b,0x69840185,0xcf2f0651,0x4c22faa2,0x6b222dc6,0x941a3665,0x0362dade,0x5a5eebc8 }, { 0x0a4e8dc6,0xb7a7bfd1,0x44c9b339,0xbe57007e,0x1557aefa,0x60c1207f,0x266218db,0x26058891 }, }, { { 0xc676e542,0x4c818e3c,0x03ceccad,0x5e422c93,0xb4129f08,0xec07ccca,0xb24443b8,0x0dedfa10 }, { 0x8360ff04,0x59f704a6,0x7661e6f4,0xc3d93fde,0x12873551,0x831b2a73,0x4e615d57,0x54ad0c2e }, { 0xb82b522a,0xee3b67d5,0x9fa5c1eb,0x36f16346,0x6ec19fd3,0xa5b4d2f2,0xa77a9408,0x62ecb2ba }, }, { { 0xafb62874,0x92072836,0x79e104a5,0x5fcd5e85,0xc630a14a,0x5aad01ad,0x75663f98,0x61913d50 }, { 0x61152b3d,0xe5ed7952,0x0eddd7d1,0x4962357d,0xb96b4c71,0x7482c8d0,0xa966d8be,0x2e59f919 }, { 0x1a3231da,0x0dc62d36,0x94200270,0xfa475832,0x3f9594ce,0x02d80151,0x31c05d5c,0x3ddbc2a1 }, }, }, { { { 0x2796bb14,0xf3aa57a2,0x9b07da21,0x883abab7,0x31a0391c,0xe54be218,0xd83205f9,0x5ee7fb38 }, { 0xce5ec54b,0x9adc0ff9,0x8c2f130d,0x039c2a6b,0xf0f89515,0x028007c7,0xac04b36b,0x78968314 }, { 0x41446a8e,0x538dfdcb,0x434937f9,0xa5acfda9,0x263c8c78,0x46af908d,0x9bca0d09,0x61d0633c }, }, { { 0xf8fc73df,0xada328bc,0xa6f037fc,0xee84695d,0x38c2a909,0x637fb4db,0xf8067bdc,0x5b23ac2d }, { 0xffdb2566,0x63744935,0x780b68bb,0xc5bd6b89,0x553eec03,0x6f1b3280,0x47aed7f5,0x6e965fd8 }, { 0xee80527b,0x9ad2b953,0xfade6d8d,0xe88f19aa,0x150e82cf,0x0e711704,0xdd95dedc,0x79b9bbb9 }, }, { { 0x8e9f7374,0xd1997dae,0xcfbb0816,0xa032a2f8,0x6d445f0a,0xcd6cba12,0x0accb834,0x1ba81146 }, { 0x6a3126c2,0xebb35540,0x68c8c393,0xd26383a8,0xe5b97a82,0x6c0c6429,0xc9fd2147,0x5065f158 }, { 0x0c429954,0x708169fb,0xd76ecf67,0xe14600ac,0x70e645ba,0x2eaab98a,0x58a4faf2,0x3981f39e }, }, { { 0x6de66fde,0xc845dfa5,0x2c40483a,0xe152a500,0xc7b4f632,0xe9d2e163,0xdcbc1b65,0x30f4452e }, { 0x59230a93,0x18fb8a75,0x60e6f45d,0x1d168f69,0x14a93cb5,0x3a85a945,0x05acd0fd,0x38dc0837 }, { 0xc5759740,0x856d2782,0xf99cbecc,0xfa134569,0xc0ea4e71,0x8844fc73,0x593f2469,0x632d9a1a }, }, { { 0xed0c84a7,0xbf09fd11,0x0d9f693a,0x63f07181,0x57cf8779,0x21908c2d,0x8af64ba2,0x3a5a7df2 }, { 0xb807cba6,0xf6bb6b15,0xbc54f0d7,0x1823c7df,0x6e29670b,0xbb1d9703,0x47ed4a57,0x0b24f488 }, { 0x511beac7,0xdcdad4be,0xed26ccf2,0xa4538075,0x005f9a65,0xe19cff9f,0x75481f63,0x34fcf744 }, }, { { 0x78cfaa98,0xa5bb1dab,0x190b72f2,0x5ceda267,0x0a92608e,0x9309c911,0x2fb374b0,0x0119a304 }, { 0x789767ca,0xc197e04c,0x38d9467d,0xb8714dcb,0x83f95fa8,0x55de8882,0x4dfa63f7,0x3d3bdc16 }, { 0xe8c2177d,0x67a2d89c,0x6895d0c1,0x669da5f6,0xb282a2b0,0xf56598e5,0xede20a73,0x56c088f1 }, }, { { 0x24f38f02,0x581b5fac,0xbae30cbd,0xa90be9fe,0x8acf92f0,0x9a216902,0x8359038f,0x038b7ea4 }, { 0x10a86e17,0x336d3d11,0x0b75b2fa,0xd7f38832,0x25072988,0xf9153376,0x99108b87,0x09674c6b }, { 0x99316ff8,0x9f4ef821,0xeaa78d4f,0x2f49d282,0x5aef3174,0x0971a5ab,0x5969eb65,0x6e5e3102 }, }, { { 0x63066222,0x3304fb0e,0x87acba3f,0xfb350689,0x8c1061a3,0xbd192477,0xd1838620,0x3058ad43 }, { 0x87e593fb,0xb16c62f5,0xca5d3e71,0x4999edde,0x14cc3e6d,0xb491c1e0,0x89a8dba8,0x08f51147 }, { 0xe57663d0,0x323c0ffd,0xa22ea610,0x05c3df38,0xac994f9a,0xbdc78abd,0xefe3dc99,0x26549fa4 }, }, }, { { { 0xaf3f666e,0xdb468549,0xf14a0ea5,0xd77fcf04,0xa4ba0c47,0x3df23ff7,0x32ce3c85,0x3a10dfe1 }, { 0x1e6bf9d6,0x741d5a46,0x7777a581,0x2305b3fc,0x6474d3d9,0xd45574a2,0x6401e0ff,0x1926e1dc }, { 0xea17cea0,0xe07f4e8a,0x3a1fc1fd,0x2fd51546,0x31f2c0f1,0x175322fd,0x861e5d15,0x1fa1d01d }, }, { { 0xd1df94ab,0x38dcac00,0xd1080de9,0x2e712bdd,0xfdd5e262,0x7f13e93e,0xee9a01e5,0x73fced18 }, { 0x7d599832,0xcc805594,0x37f15520,0x1e4656da,0x4e059320,0x99f6f774,0x6a75cf33,0x773563bc }, { 0x63139cb3,0x06b1e908,0xc5a03ecd,0xa493da67,0xad638932,0x8d77cec8,0x1b864f44,0x1f426b70 }, }, { { 0x91a12552,0xf17e35c8,0x575e9c76,0xb76b8153,0x0d9b723e,0xfa83406f,0x3fa7e438,0x0b76bb1b }, { 0x41911c01,0xefc9264c,0x17a22c25,0xf1a3b7b8,0xf30f1447,0x5875da6b,0x1d31b090,0x4e1af527 }, { 0x7f92939b,0x08b8c1f9,0xd444ab6e,0xbe6771cb,0x99bb8017,0x22e56463,0xb772a955,0x7b6dd61e }, }, { { 0xab01d2c7,0x5730abf9,0x40143b18,0x16fb76dc,0xa0cbb281,0x866cbe65,0x9bff6afe,0x53fa9b65 }, { 0x50f33d92,0xb7adc1e8,0x608cd5cf,0x7998fa4f,0x8dfc5bdb,0xad962dbd,0xaf1d2f4f,0x703e9bce }, { 0x94885455,0x6c14c8e9,0x65aed4e5,0x843a5d66,0xbcd65af1,0x181bb73e,0xc4c61f50,0x398d93e5 }, }, { { 0xd2e7e3f2,0xc3877c60,0x30828bb1,0x3b34aaa0,0x739ef138,0x283e26e7,0x02c30577,0x699c9c90 }, { 0x33e248f3,0x1c4bd167,0x15bf0a5f,0xbd9e1287,0xa10b0376,0xd43f8cf0,0xdf191b13,0x53b09b5d }, { 0x5946f1cc,0xf306a723,0xcce5d97d,0x921718b5,0x81b4e975,0x28cdd247,0x6fcdd907,0x51caf30c }, }, { { 0x18ac54c7,0x737af99a,0xc51cb30f,0x903378dc,0x4ce10cc7,0x2b89bc33,0x89f8e99a,0x12ae29c1 }, { 0x7674e00a,0xa60ba742,0xa17a7bf3,0x630e8570,0xcf3324cc,0x3758563d,0x2383fdaa,0x5504aa29 }, { 0x1f0d01cf,0xa99ec0cb,0x3a34f7ae,0x0dd1efcc,0xd09c4e22,0x55ca7521,0x58eba5ea,0x5fd14fe9 }, }, { { 0xbf93cb8e,0x3c42fe5e,0x36d4565f,0xbedfa851,0x884220e8,0xe0f0859e,0x0725d128,0x7dd73f96 }, { 0x2845ab2c,0xb5dc2ddf,0x0a7fe993,0x069491b1,0x4002e346,0x4daaf3d6,0x586474d1,0x093ff26e }, { 0x68059829,0xb10d24fe,0xdbaf23e5,0x75730672,0xb457ac29,0x1367253a,0x86b470a4,0x2f59bcbc }, }, { { 0xb691c301,0x7041d560,0xadd7e71e,0x85201b3f,0x11335585,0x16c2e163,0x010828b1,0x2aa55e3d }, { 0x9917135f,0x83847d42,0x567d03d7,0xad1b911f,0xbe77aad1,0x7e7748d9,0x2e51af4a,0x5458b42e }, { 0x0c07444f,0xed5192e6,0x74421d10,0x42c54e2d,0xfdb5c864,0x352b4c82,0x8a768664,0x13e9004a }, }, }, { { { 0x193b877f,0xbb2e00c9,0xe0dc506b,0xece3a890,0x36de649f,0xecf3b7c0,0x98de9e1a,0x5f460408 }, { 0x832fcedb,0x739d8845,0xae6bf863,0xfa38d6c9,0xb74ffef7,0x32bc0dca,0x14bce45e,0x73937e88 }, { 0x297bf48d,0xb9037116,0xd4f06834,0xa9d13b22,0x4696bdc6,0xe1971557,0x91d5e835,0x2cf8a4e8 }, }, { { 0x17d06ba2,0x2cb5487e,0x3950196b,0x24d2381c,0x85978a30,0xd7659c81,0x91d6a4f6,0x7a6f7f28 }, { 0x07110f67,0x6d93fd87,0x7c38b549,0xdd4c09d3,0xc2736a86,0x7cb16a4c,0x58252a09,0x2049bd6e }, { 0x6a9aef49,0x7d09fd8d,0x5b3db90b,0xf0ee60be,0x519ebfd4,0x4c21b52c,0xc545941d,0x6011aadf }, }, { { 0x02cbf890,0x63ded0c8,0x0dff6aaa,0xfbd098ca,0xb9b6ed99,0x624d0afd,0x79340b1e,0x69ce18b7 }, { 0xcf95f83c,0x5f67926d,0x71289071,0x7c7e8561,0x998f7a5b,0xd6a1e7f3,0x0b62f9e0,0x6fc5cc1b }, { 0xb29879cb,0xd1ef5528,0xd47e9092,0xdd1aae3c,0x189f2352,0x127e0442,0xe57101f1,0x15596b3a }, }, { { 0x7e5124ca,0x09ff3116,0xd9c745df,0x0be4158b,0x7ef556e5,0x292b7d22,0xafb6d138,0x3aa4e241 }, { 0x3f9179a2,0x462739d2,0x97d6ddcf,0xff831231,0x53f2148a,0x1307deb5,0x7b5f4dda,0x0d223768 }, { 0x2a3305f5,0x2cc138bf,0xa2e926c3,0x48583f8f,0x5549d2eb,0x083ab1a2,0x4687a36c,0x32fcaa6e }, }, { { 0x2787ccdf,0x3207a473,0xf213e3f8,0x17e31908,0xf60d964e,0xd5b2ecd7,0xc2600be9,0x746f6336 }, { 0xc57d9af5,0x7bc56e8d,0x9df0bdf2,0x3e0bd2ed,0x22efe4a3,0xaac014de,0xfebd6a5c,0x4627e9ce }, { 0xab6c971c,0x3f4af345,0x9943731f,0xe288eb72,0x0344186d,0x33596a8a,0x7ed66293,0x7b491700 }, }, { { 0xdd53a2dd,0x54341b28,0xdf42fc3f,0xaa17905b,0x4dd2f8f4,0x0ff592d9,0xe08cd37d,0x1d03620f }, { 0xab84b064,0x2d85fb5c,0x89f3bc14,0x497810d2,0x7b15ce0c,0x476adc44,0xf844fd7b,0x122ba376 }, { 0xa2b4e554,0xc20232cd,0x115d187f,0x9ed0fd42,0x7dd479d9,0x2eabb4be,0x2b68ec4c,0x02c70bf5 }, }, { { 0x458d72e1,0xace532bf,0x7cb73cb5,0x5be768e0,0xee8bbde7,0x56cf7d94,0xfeb43a03,0x6b0697e3 }, { 0x5d0b2fbb,0xa287ec4b,0x074882ca,0x415c5790,0xc1d0815c,0xe044a61e,0x409ef5e0,0x26334f0a }, { 0xdf62a3c0,0xb6c8f04a,0x076da45d,0x3ef000ef,0x49f0d2a9,0x9c9cb958,0x441b2fae,0x1cc37f43 }, }, { { 0xc9ceaeb9,0xd76656f1,0x18e5656a,0x1c5b15f8,0x844c2334,0x26e72832,0x2f196838,0x3a346f77 }, { 0x5cc7324f,0x508f565a,0xe506a922,0xd061c4c0,0x5c45ac19,0xfb18abdb,0x0380314a,0x6c6809c1 }, { 0xe2da6ac8,0xd2d55112,0xb1e851ed,0xe9bd0331,0x8ec67262,0x960746dd,0x6ef7c5d0,0x05911b9f }, }, }, { { { 0x512eeaef,0x5349acf3,0x1cc1cb49,0x20c141d3,0xa99a688d,0x24180c07,0xc64b2d17,0x555ef9d1 }, { 0xf5df0ebb,0xc1339983,0x512c4cac,0xc0f3758f,0x0bb398e1,0x2cf1130a,0xaa270c62,0x6b3cecf9 }, { 0x3b73bd08,0x36a770ba,0xa3afbf0c,0x624aef08,0xb40946f2,0x5737ff98,0x3381749d,0x675f4de1 }, }, { { 0x3bdab31d,0xa12ff6d9,0x9d652dfe,0x0725d80f,0x9abe9487,0x019c4ff3,0x82cd3c43,0x60f450b8 }, { 0x6b1782fc,0x0e2c5203,0x6cad83b4,0x64816c81,0x6964073e,0xd0dcbdd9,0x0164c520,0x13d99df7 }, { 0x21e5c0ca,0x014b5ec3,0xd719bfa2,0x4fcb69c9,0x750023a0,0x4e5f1c18,0x55edac80,0x1c06de9e }, }, { { 0xff6d69aa,0xffd52b40,0xdc4049bb,0x34530b18,0xa34d9897,0x5e4a5c2f,0x7d32ba2d,0x78096f8e }, { 0xa33ec4e2,0x990f7ad6,0xbe2ee08e,0x6608f938,0x63284515,0x9ca143c5,0xec2db60d,0x4cf38a1f }, { 0x0dfa5ce7,0xa0aaaa65,0x48b5478c,0xf9c49e2a,0x7003725b,0x4f09cc7d,0x26091abe,0x373cad3a }, }, { { 0x89ddbbad,0xf1bea8fb,0x61aeaecb,0x3bcb2cbc,0x1f9b8d9d,0x8f58a7bb,0x5112a686,0x21547eda }, { 0x82c9f57c,0xb294634d,0x24934536,0x1fcbfde1,0x418cdb5a,0x9e9c4db3,0x454419fc,0x0040f3d9 }, { 0xfd5986d3,0xdefde939,0x510a380c,0xf4272c89,0xbb3119b9,0xb72ba407,0x4a254df4,0x63550a33 }, }, { { 0x72547b49,0x9bba5845,0xe2c408e0,0xf305c6fa,0xc734f18d,0x60e8fa69,0xaa7d767a,0x39a92baf }, { 0xb569cf37,0x6507d6ed,0x0ca52ee1,0x178429b0,0xeb6bd65d,0xea7c0090,0xdaf78f51,0x3eea62c7 }, { 0xe693274e,0x9d24c713,0x68dbd375,0x5f638577,0xeb8ab39a,0x70525560,0x65c9c4cd,0x68436a06 }, }, { { 0xe820107c,0x1e56d317,0x840ae965,0xc5266844,0x320ffc7a,0xc1e0a1c6,0x91611472,0x5373669c }, { 0x202f3f27,0xbc0235e8,0x64f975b0,0xc75c00e2,0xa38c2416,0x91a4e9d5,0x8ab789f9,0x17b6e7f6 }, { 0x9a0e5257,0x5d2814ab,0xc9cab3fc,0x908f2084,0x5b2d1eca,0xafcaf588,0x78f87d11,0x1cb4b5a6 }, }, { { 0xa2a007e7,0x6b74aa62,0xf071c7b1,0xf311e0b0,0x000be223,0x5707e438,0x82ef6eac,0x2dc0fd2d }, { 0x394afc6c,0xb664c06b,0x98da5fb1,0x0c88de24,0x4bcad834,0x4f8d0316,0xde7434a2,0x330bca78 }, { 0x1119744e,0x982eff84,0x2b074724,0xf9695e96,0xbfc953fb,0xc58ac14f,0x369f1cf5,0x3c31be1b }, }, { { 0xf9cb4272,0xc168bc93,0xc7cedb98,0xaeb8711f,0x34ac8d7a,0x7f0e52aa,0x7e7d55bb,0x41cec109 }, { 0x08948aee,0xb0f4864d,0x91ba1c6f,0x07dc19ee,0xa6aca158,0x7975cdae,0x4262d4bb,0x330b6113 }, { 0xa26d808a,0xf79619d7,0x1d9e156d,0xbb1fd49e,0xdba1df27,0x73d7c36c,0x1f28777d,0x26b44cd9 }, }, }, { { { 0x62730383,0xe1b7f293,0xebca8a2c,0x4b5279ff,0xbfd41314,0xdafc778a,0x9c72610f,0x7deb1014 }, { 0x8f387475,0x51f04847,0x9cbecb3c,0xb25dbcf4,0xd99f2055,0x9aab1244,0x1c10a5d6,0x2c709e6c }, { 0x8766ee7a,0xcb62af6a,0x5553cd0e,0x66cbec04,0x0f0be4b5,0x58800138,0xf62ce2ea,0x08e68e9f }, }, { { 0x0ab8f2f9,0x2f2d09d5,0xc55923df,0xacb9218d,0x73766cb9,0x4a8f3426,0x38f719f5,0x4cb13bd7 }, { 0x4bc130ad,0x34ad500a,0x3d0bd49c,0x8d38db49,0x500a89be,0xa25c3d98,0xeeba3b09,0x2f1f3f87 }, { 0xe515b64a,0xf7848c75,0xdb4a9038,0xa59501ba,0x3f751b50,0xc20d313f,0xc0ae2ee8,0x19a1e353 }, }, { { 0xd596bdbd,0xb42172cd,0x98eefc40,0x93e04543,0xb44109b5,0x9fb15347,0x0266ae34,0x736bd399 }, { 0xbafa05c3,0x7d1c7560,0xc6e55e61,0xb3e1a0a0,0xc0d66473,0xe3529718,0xc20c3486,0x41546b11 }, { 0x9334b3b4,0x85532d50,0x60816573,0x46fd114b,0x425c8375,0xcc5f5f30,0xb87fab5c,0x412295a2 }, }, { { 0xe293eac6,0x2e655261,0x2133acdb,0x845a9203,0x7900996b,0x460975cb,0x195add80,0x0760bb8d }, { 0xf57ed6e9,0x19c99b88,0x6df8c825,0x5393cb26,0xb30ad273,0x5cee3213,0xb52d2e34,0x14e153eb }, { 0xcde6818a,0x413e1a17,0xed69a084,0x57156da9,0x46caccb1,0x2cbf268f,0xc33ac5f2,0x6b34be9b }, }, { { 0x6571f2d3,0x11fc6965,0x530e737a,0xc6c9e845,0xd4fe5035,0xe33ae7a2,0x2e6dd30b,0x01b9c7b6 }, { 0x3a78c0b2,0xf3df2f64,0xf22e027c,0x4c3e971e,0x49c1b5a3,0xec7d1c5e,0x0922dd2d,0x2012c18f }, { 0x5ac89d29,0x880b55e5,0x45a0a763,0x1483241f,0xc2e76c1f,0x3d36efdf,0x4e4bade8,0x08af5b78 }, }, { { 0x89cc2c4b,0xe27314d2,0xa287178d,0x4be4bd11,0xfa3364ce,0x18d528d6,0xafd9826e,0x6423c1d5 }, { 0x881f2533,0x283499dc,0x779323b6,0x9d0525da,0x673441f4,0x897addfb,0x163a168d,0x32b79d71 }, { 0xedfcb36a,0xcc85f8d9,0x3746e5f9,0x22bcc28f,0xf9e5d3cd,0xe49de338,0xc13e2dcc,0x480a5efb }, }, { { 0x42ce221f,0xb6614ce4,0x4c053928,0x6e199dcc,0xdc1cbe03,0x663fb4a4,0x691c8e06,0x24b31d47 }, { 0x01622071,0x0b51e70b,0x8b1dafc5,0x06b505cf,0xef5aabcd,0x2c6bb061,0x0cb7bf31,0x47aa2760 }, { 0xc015f8c3,0x2a541eed,0x7c693f7c,0x11a4fe7e,0x4ea278d6,0xf0af6613,0x14dda094,0x545b585d }, }, { { 0xe3b321e1,0x6204e4d0,0x28ff1e95,0x3baa637a,0x5b99bd9e,0x0b0ccffd,0x64c8d071,0x4d22dc3e }, { 0xa0d43a0f,0x67bf275e,0x089beebe,0xade68e34,0xd479e72e,0x4289134c,0x32ba5454,0x0f62f9c3 }, { 0xd63b5f39,0xfcb46589,0x57cbcf61,0x5cae6a3f,0x953afa05,0xfebac2d2,0x36371436,0x1c0fa01a }, }, }, { { { 0x8c936a50,0x69082b0e,0xc1dac5b6,0xf9c9a035,0xc4dfb634,0x6fb73e54,0x1d2bc140,0x4005419b }, { 0x22943dff,0xd2c604b6,0x44cfb3a0,0xbc8cbece,0x97808678,0x5d254ff3,0x3b1ca6bf,0x0fa3614f }, { 0xb9be82f0,0xa003febd,0x3a44ac90,0x2089c1af,0x1954fa8e,0xf8499f91,0xef40ab42,0x1fba218a }, }, { { 0x3e7b0194,0x4f3e5704,0x08daaf7f,0xa81d3eee,0x99dcdef1,0xc839c6ab,0xff7761d5,0x6c535d13 }, { 0xfac8f53e,0xab549448,0x7ba63741,0x81f6e89a,0x6c2b5e01,0x74fd6c7d,0xa8c86e42,0x392e3aca }, { 0x3e8a35af,0x4cbd34e9,0x5887e816,0x2e078144,0xf29ab0ab,0x19319c76,0xd50ac13b,0x25e17fe4 }, }, { { 0x76f121a7,0x915f7ff5,0x2fcd87e3,0xc34a3227,0x4d1be526,0xccba2fde,0x8969899b,0x6bba828f }, { 0x1e04f676,0x0a289bd7,0xd6420f95,0x208e1c52,0x34691fab,0x5186d8b0,0x2a9fb351,0x25575144 }, { 0x90fe3901,0xe2d1bc66,0xa0997ad5,0x4cb54a18,0xaf8460d4,0x971d6914,0x7f6b7be4,0x559d504f }, }, { { 0xf6d266fd,0x9c4891e7,0x0307781b,0x0744a19b,0x6061e23b,0x88388f1d,0x354bd50e,0x123ea6a3 }, { 0xb3eb54d5,0xa7738378,0xa5553c7c,0x1d69d366,0xf92800ba,0x0a26cf62,0x807e3217,0x01ab12d5 }, { 0x41e32d96,0x118d1890,0xd8315848,0xb9ede3c2,0xd83245d9,0x1eab4271,0xc918a154,0x4a3961e2 }, }, { { 0xf3233f1e,0x0327d644,0x34fcf016,0x499a260e,0xf2dab979,0x83b5a716,0x9bd4111f,0x68aceead }, { 0xf8e6bba0,0x71dc3be0,0x7effe30a,0xd6cef834,0xe13a476a,0xa992425f,0xfb1db763,0x2cd6bce3 }, { 0xf3d7c210,0x38b4c90e,0xb7ad040c,0x308e6e24,0xb7e73e23,0x3860d9f1,0xb508f597,0x595760d5 }, }, { { 0xfd022790,0x882acbeb,0xc4115760,0x89af3305,0x7d3473f4,0x65f492e3,0x54515a2b,0x2cb2c5df }, { 0x04aa6397,0x6129bfe1,0xa4a7fccb,0x8f960008,0x7d909458,0x3f8bc089,0xdcb291a9,0x709fa43e }, { 0x63fd2aca,0xeb0a5d8c,0x2e694eff,0xd22bc166,0xf8cbb03a,0x2723f36e,0xf0c8131f,0x70f029ec }, }, { { 0x5e10b0b9,0x2a6aafaa,0xef041aa9,0x78f0a370,0xaa3ad61f,0x773efb77,0xa74bd9e1,0x44eca5a2 }, { 0x2eed3e33,0x461307b3,0xa45581e7,0xae042f33,0x195f0366,0xc94449d3,0x6c314858,0x0b7d5d8a }, { 0x7b95d543,0x25d44832,0xa3340f1d,0x70d38300,0x60e1c52b,0xde1c531c,0x2c7de9e4,0x27222451 }, }, { { 0x42a975fc,0xbf7bbb8a,0x96ada358,0x8c5c3977,0xcdedaa48,0xe27fc76f,0xf6bc20a6,0x19735fd7 }, { 0x49c5342e,0x1abc92af,0xb2e6fad0,0xffeed811,0xfcc84e29,0xefa28c8d,0xa44cc543,0x11b5df18 }, { 0x42c84266,0xe3ab90d0,0x7f19547e,0xeb848e0f,0x65a497b9,0x2503a1d0,0x91df895f,0x0fef9111 }, }, }, tinyssh-20180201/crypto/ge25519.base.py000066400000000000000000000021271322704306500172620ustar00rootroot00000000000000b = 256 q = 2**255 - 19 l = 2**252 + 27742317777372353535851937790883648493 def expmod(b,e,m): if e == 0: return 1 t = expmod(b,e/2,m)**2 % m if e & 1: t = (t*b) % m return t def inv(x): return expmod(x,q-2,q) d = -121665 * inv(121666) I = expmod(2,(q-1)/4,q) def xrecover(y): xx = (y*y-1) * inv(d*y*y+1) x = expmod(xx,(q+3)/8,q) if (x*x - xx) % q != 0: x = (x*I) % q if x % 2 != 0: x = q-x return x By = 4 * inv(5) Bx = xrecover(By) B = [Bx % q,By % q] def edwards(P,Q): x1 = P[0] y1 = P[1] x2 = Q[0] y2 = Q[1] x3 = (x1*y2+x2*y1) * inv(1+d*x1*x2*y1*y2) y3 = (y1*y2+x1*x2) * inv(1-d*x1*x2*y1*y2) return [x3 % q,y3 % q] def radix32(r): o = "" r = r % q for i in range(8): o += "0x%08x," % (r & 0xffffffff) r = r >> 32 return o[:-1] Bi = B for i in range(32): print "{" Bij = Bi for j in range(8): print " {" print " {",radix32(Bij[1]+Bij[0]),"}," print " {",radix32(Bij[1]-Bij[0]),"}," print " {",radix32(2*d*Bij[0]*Bij[1]),"}," Bij = edwards(Bij,Bi) print " }," print "}," for k in range(8): Bi = edwards(Bi,Bi) tinyssh-20180201/crypto/ge25519.c000066400000000000000000000164471322704306500161550ustar00rootroot00000000000000#include "fe25519.h" #include "cleanup.h" #include "ge25519.h" /* D = -121665/121666 */ static fe D = { 0x135978a3, 0x75eb4dca, 0x4141d8ab, 0x00700a4d, 0x7779e898, 0x8cc74079, 0x2b6ffe73, 0x52036cee }; /* D2 = 2 * -121665/121666 */ static fe D2 = { 0x26b2f159, 0xebd69b94, 0x8283b156, 0x00e0149a, 0xeef3d130, 0x198e80f2, 0x56dffce7, 0x2406d9dc }; static fe sqrtm1 = { 0x4a0ea0b0, 0xc4ee1b27, 0xad2fe478, 0x2f431806, 0x3dfbd7a7, 0x2b4d0099, 0x4fc1df0b, 0x2b832480, }; static void neutral(ge25519 p) { fe_0(p[0]); fe_1(p[1]); fe_1(p[2]); fe_0(p[3]); } static void neutral_precomp(ge25519_precomp p) { fe_1(p[0]); fe_1(p[1]); fe_0(p[2]); } /* p = q */ static void copy(ge25519 p, ge25519 q) { fe_copy(p[0], q[0]); fe_copy(p[1], q[1]); fe_copy(p[2], q[2]); fe_copy(p[3], q[3]); } /* if (b) p = q; */ static void cmov(ge25519 p, ge25519 q, crypto_uint32 b) { fe_cmov(p[0], q[0], b); fe_cmov(p[1], q[1], b); fe_cmov(p[2], q[2], b); fe_cmov(p[3], q[3], b); } static void cmov_precomp(ge25519_precomp p, ge25519_precomp q, crypto_uint32 b) { fe_cmov(p[0], q[0], b); fe_cmov(p[1], q[1], b); fe_cmov(p[2], q[2], b); } void ge25519_add(ge25519 o, ge25519 p, ge25519 q) { fe a, b, c, d, t, e, f, g, h; fe25519_sub(a, p[1], p[0]); fe25519_sub(t, q[1], q[0]); fe25519_mul(a, a, t); fe25519_add(b, p[0], p[1]); fe25519_add(t, q[0], q[1]); fe25519_mul(b, b, t); fe25519_mul(c, p[3], q[3]); fe25519_mul(c, c, D2); fe25519_mul(d, p[2], q[2]); fe25519_add(d, d, d); fe25519_sub(e, b, a); fe25519_sub(f, d, c); fe25519_add(g, d, c); fe25519_add(h, b, a); fe25519_mul(o[0], e, f); fe25519_mul(o[1], h, g); fe25519_mul(o[2], g, f); fe25519_mul(o[3], e, h); cleanup(a); cleanup(b); cleanup(c); cleanup(d); cleanup(t); cleanup(e); cleanup(f); cleanup(g); cleanup(h); } static void madd(ge25519 o, ge25519 p, ge25519_precomp q) { fe a, b, c, d, e, f, g, h; fe25519_sub(a, p[1], p[0]); fe25519_mul(a, a, q[1]); fe25519_add(b, p[0], p[1]); fe25519_mul(b, b, q[0]); fe25519_mul(c, p[3], q[2]); fe25519_add(d, p[2], p[2]); fe25519_sub(e, b, a); fe25519_sub(f, d, c); fe25519_add(g, d, c); fe25519_add(h, b, a); fe25519_mul(o[0], e, f); fe25519_mul(o[1], h, g); fe25519_mul(o[2], g, f); fe25519_mul(o[3], e, h); cleanup(a); cleanup(b); cleanup(c); cleanup(d); cleanup(e); cleanup(f); cleanup(g); cleanup(h); } /* https://hyperelliptic.org/EFD/g1p/auto-code/twisted/extended/doubling/dbl-2008-hwcd.op3 */ static void dbl(ge25519 o, ge25519 p) { fe a, b, c, d, e, f, g, h; fe25519_sq(a, p[0]); /* A = X1^2 */ fe25519_sq(b, p[1]); /* B = Y1^2 */ fe25519_sq(c, p[2]); /* t0 = Z1^2 */ fe25519_add(c, c, c); /* C = 2*t0 */ fe25519_neg(d, a); /* D = a*A */ fe25519_add(e, p[0], p[1]); /* t1 = X1+Y1 */ fe25519_sq(e, e); /* t2 = t1^2 */ fe25519_sub(e, e, a); /* t3 = t2-A */ fe25519_sub(e, e, b); /* E = t3-B */ fe25519_add(g, d, b); /* G = D+B */ fe25519_sub(f, g, c); /* F = G-C */ fe25519_sub(h, d, b); /* H = D-B */ fe25519_mul(o[0], e, f); /* X3 = E*F */ fe25519_mul(o[1], g, h); /* Y3 = G*H */ fe25519_mul(o[2], f, g); /* Z3 = F*G */ fe25519_mul(o[3], e, h); /* T3 = E*H */ cleanup(a); cleanup(b); cleanup(c); cleanup(d); cleanup(e); cleanup(f); cleanup(g); cleanup(h); } void ge25519_tobytes(unsigned char *s, ge25519 h) { fe x, y, z; fe25519_inv(z, h[2]); fe25519_mul(x, h[0], z); fe25519_mul(y, h[1], z); fe25519_tobytes(s, y); s[31] ^= fe25519_isnegative(x) << 7; cleanup(x); cleanup(y); cleanup(z); } int ge25519_frombytes_negate_vartime(ge25519 h, const unsigned char *s) { fe u, v, v3, vxx, check; int ret = -1; fe25519_frombytes(h[1], s); fe_1(h[2]); fe25519_sq(u,h[1]); fe25519_mul(v,u,D); fe25519_sub(u,u,h[2]); /* u = y^2-1 */ fe25519_add(v,v,h[2]); /* v = dy^2+1 */ fe25519_sq(v3,v); fe25519_mul(v3,v3,v); /* v3 = v^3 */ fe25519_sq(h[0],v3); fe25519_mul(h[0],h[0],v); fe25519_mul(h[0],h[0],u); /* x = uv^7 */ fe25519_pow22523(h[0],h[0]); /* x = (uv^7)^((q-5)/8) */ fe25519_mul(h[0],h[0],v3); fe25519_mul(h[0],h[0],u); /* x = uv^3(uv^7)^((q-5)/8) */ fe25519_sq(vxx,h[0]); fe25519_mul(vxx,vxx,v); fe25519_sub(check,vxx,u); /* vx^2-u */ if (fe25519_isnonzero(check)) { fe25519_add(check,vxx,u); /* vx^2+u */ if (fe25519_isnonzero(check)) { goto cleanup; } fe25519_mul(h[0],h[0],sqrtm1); } if (fe25519_isnegative(h[0]) == (s[31] >> 7)) fe25519_neg(h[0], h[0]); fe25519_mul(h[3],h[0],h[1]); ret = 0; cleanup: cleanup(u); cleanup(v); cleanup(v3); cleanup(vxx); cleanup(check); return ret; } /* if (a == b) return 1; else return 0; */ static unsigned char equal(unsigned char a, unsigned char b) { unsigned char x = a ^ b; crypto_uint32 y = x; y -= 1; y >>= 31; return y; } /* point multiplication using windowed method */ void ge25519_scalarmult(ge25519 o, ge25519 q, const unsigned char *a) { long long i, j; ge25519 t[16], sp, p; unsigned char e[64]; for (i = 0; i < 32; ++i) { e[2 * i + 0] = (a[i] >> 0) & 0x0f; e[2 * i + 1] = (a[i] >> 4) & 0x0f; } neutral(p); /* precompute points */ copy(t[0], p); copy(t[1], q); for (i = 2; i < 16; ++i) { if ((i & 1) == 0) dbl(t[i], t[i / 2]); else ge25519_add(t[i], t[i - 1], q); } for (i = 63; i >= 0; --i) { for (j = 0; j < 4; ++j) dbl(p, p); for (j = 0; j < 16; ++j) cmov(sp, t[j], equal(e[i], j)); ge25519_add(p, p, sp); } copy(o, p); cleanup(p); cleanup(t); cleanup(sp); cleanup(e); } static ge25519_precomp base[32][8] = { #include "ge25519.base" }; static unsigned char isnegative(signed char b) { crypto_uint32 x = b; x >>= 31; return x; } static void select(ge25519_precomp t, long long pos, signed char b) { ge25519_precomp minust; unsigned char bnegative = isnegative(b); unsigned char babs = b - (((-bnegative) & b) << 1); long long i; neutral_precomp(t); for (i = 0; i < 8; ++i) cmov_precomp(t, base[pos][i], equal(babs, i + 1)); fe_copy(minust[0], t[1]); fe_copy(minust[1], t[0]); fe25519_neg(minust[2], t[2]); cmov_precomp(t, minust, bnegative); } /* base-point multiplication using precomputed tables */ void ge25519_scalarmult_base(ge25519 p, const unsigned char *a) { long long i; ge25519_precomp sp; signed char e[64], carry; neutral(p); for (i = 0; i < 32; ++i) { e[2 * i + 0] = (a[i] >> 0) & 0x0f; e[2 * i + 1] = (a[i] >> 4) & 0x0f; } carry = 0; for (i = 0; i < 63; ++i) { e[i] += carry; carry = e[i] + 8; carry >>= 4; e[i] -= carry << 4; } e[63] += carry; for (i = 1; i < 64; i += 2) { select(sp, i / 2, e[i]); madd(p, p, sp); } for (i = 0; i < 4; ++i) dbl(p, p); for (i = 0; i < 64; i += 2) { select(sp, i / 2, e[i]); madd(p, p, sp); } cleanup(sp); cleanup(e); } tinyssh-20180201/crypto/ge25519.h000066400000000000000000000007701322704306500161520ustar00rootroot00000000000000#ifndef _GE25519_H____ #define _GE25519_H____ #include "fe.h" typedef fe ge25519[4]; /* X, Y, Z, T */ typedef fe ge25519_precomp[3]; /* Y+X, Y-X, 2*d*X*Y */ extern void ge25519_tobytes(unsigned char *, ge25519); extern int ge25519_frombytes_negate_vartime(ge25519, const unsigned char *); extern void ge25519_add(ge25519, ge25519, ge25519); extern void ge25519_scalarmult(ge25519, ge25519, const unsigned char *); extern void ge25519_scalarmult_base(ge25519, const unsigned char *); #endif tinyssh-20180201/crypto/gep256.base000066400000000000000000001457151322704306500166550ustar00rootroot00000000000000{ { { 0xd898c296,0xf4a13945,0x2deb33a0,0x77037d81,0x63a440f2,0xf8bce6e5,0xe12c4247,0x6b17d1f2 }, { 0x37bf51f5,0xcbb64068,0x6b315ece,0x2bce3357,0x7c0f9e16,0x8ee7eb4a,0xfe1a7f9b,0x4fe342e2 }, }, { { 0x47669978,0xa60b48fc,0x77f21b35,0xc08969e2,0x04b51ac3,0x8a523803,0x8d034f7e,0x7cf27b18 }, { 0x227873d1,0x9e04b79d,0x3ce98229,0xba7dade6,0x9f7430db,0x293d9ac6,0xdb8ed040,0x07775510 }, }, { { 0xc6e7fd6c,0xfb41661b,0xefada985,0xe6c6b721,0x1d4bf165,0xc8f7ef95,0xa6330a44,0x5ecbe4d1 }, { 0xa27d5032,0x9a79b127,0x384fb83d,0xd82ab036,0x1a64a2ec,0x374b06ce,0x4998ff7e,0x8734640c }, }, { { 0x6b030852,0x50930244,0x785596ef,0x031fe2db,0x9ee62bd0,0xa02dde65,0x32d08fbb,0xe2534a35 }, { 0x184ed8c6,0x5c42c23f,0xf30ee005,0x4efc96c3,0xda862d76,0x19dfee5f,0x4c633cc7,0xe0f1575a }, }, { { 0xc3d033ed,0x21554a0d,0x1f5be524,0xef8c82fd,0x08668fdf,0xd784c856,0x515140d2,0x51590b7a }, { 0xfda16da4,0xd1d0bb44,0xd4d80888,0x0d012f00,0xbf8a7926,0x8ae1bf36,0x904a727d,0xe0c17da8 }, }, { { 0x3c2291a9,0xc6b0aae9,0xebb215b4,0x024c740d,0xb897dde3,0x92d3242c,0x76a4602c,0xb01a172a }, { 0x8fc77fe2,0xfd7c4853,0x1c7e16bd,0x1c00f770,0xfba70379,0x6fec0e2d,0x3237dad5,0xe85c1074 }, }, { { 0x3187b2a3,0x30062870,0xa80fef5b,0x7ef9f8b8,0x7c01fb60,0x25bb3066,0xa0bf7b46,0x8e533b6f }, { 0xc1f400b4,0xc55e1a86,0xcb041b21,0x53c73633,0xa6f59000,0x6d069f83,0xe0331836,0x73eb1dbd }, }, { { 0xdb6fb393,0xb4dd9dc1,0x0fce97db,0xc1d23898,0x3ab54cad,0x4042742d,0xbee9b053,0x62d9779d }, { 0x0f09957e,0xda540a6a,0xbbe76a78,0xa2ed51f6,0x1167cee0,0x4ff15d77,0x91e9d824,0xad5accbd }, }, }, { { { 0x12d0441b,0x2db2e35f,0x0d6a564c,0x190d0b71,0x8603ed61,0x87ffd152,0xb0091659,0x34a2d4a3 }, { 0x5e93b146,0xb424e784,0xdeddd81d,0xe7d766b9,0x6e777fc0,0x2bca7104,0x53a1e3c2,0xbeaaed6a }, }, { { 0x9f3f98de,0x3469cea3,0x0b3c5dfc,0xa416b9ae,0x818d459a,0xe8897bbd,0x8be759e4,0x04c49052 }, { 0x4e8d6e96,0xebd94943,0x4a4605ee,0x471d9d7b,0x242a8107,0xade84c66,0x405cc74f,0x30e50b46 }, }, { { 0xbda08424,0xdce4ae33,0x74f644a9,0x3abfb7ab,0xa95d23ed,0x1b58c5ff,0xadc359aa,0xa98b0a07 }, { 0xe831800c,0x361287a0,0xa0df582d,0x752be80b,0x8e1d1320,0xe5319e8c,0x22499b66,0x4754c647 }, }, { { 0x8e61ca07,0x80e76bb9,0xe1d527e2,0xcdc5849a,0xeb6fe80c,0x897299b9,0x87d4f481,0x16949b72 }, { 0xa0420427,0xa09c2be7,0xfedf983a,0x4d2d6ac6,0x5b601209,0xbdf997b7,0x770edede,0xe7a4146d }, }, { { 0x883c2d6a,0xb52d7e5e,0x81bd29b3,0xd22f918d,0xc85a696d,0xd21b6b78,0xc88daac5,0xa034f009 }, { 0xc2c30e72,0xf4336ef2,0x16267e7c,0xbe06035f,0x5ceceb06,0xb0cdb854,0xca899c1f,0xfe1b0036 }, }, { { 0x8f6752cd,0x6d61fdb4,0x3f3f923b,0xb71bdd3c,0x20b265cb,0xa8420fe5,0xf0e14da3,0x3fb660a7 }, { 0x64c6017e,0x2f12e8c0,0x1100a0c1,0x8bc013bd,0xd9577d59,0x4c2869c4,0x4224637c,0x6545851d }, }, { { 0x28be8c78,0x716a51dd,0x2b793e4d,0x4a096cf8,0x0962e9a1,0xa076e2b4,0x319d4401,0xb52226ff }, { 0x51686903,0x203367ca,0xe5b58ff3,0x819f7fc8,0x7e92851a,0xca1b3669,0xf539f540,0x701ee0c9 }, }, { { 0x1abe45c0,0xe1404a86,0xf46f925a,0x281b195f,0x49b86176,0x886a8f47,0x16475f72,0xb01a67f7 }, { 0x0090106c,0xc72f0dbe,0x41b62c7f,0x72fc6763,0x164ef994,0xacd56b13,0x5a3956e2,0x7c521bbf }, }, }, { { { 0x6eade3c4,0x03e8465c,0xc9052a05,0x714ab749,0x40e586b4,0x8e5c6433,0x4e91e90d,0xa018366f }, { 0x6b26e8d0,0xf45c4202,0x44614f37,0xd5f7284e,0x349d8369,0x7c6ce578,0x14110b16,0xe2bbec17 }, }, { { 0x47a9112d,0xfebccee6,0xfe1ce3ee,0xeb7d5adf,0xea254c45,0x9ea25487,0x707da2a6,0xcd7ce65d }, { 0x3a92b3af,0xffbabe0d,0x8bee60a5,0xa190aa49,0xa5ee6708,0x89b9016a,0x4c966f97,0x85e04a4b }, }, { { 0x59e0af06,0x6e1cdeac,0x62ed958d,0x92f398a5,0x6d45055c,0x50bd3b5a,0xb88d8964,0x9cdf1f00 }, { 0x6216ade7,0x8d7a32db,0x197ca546,0x828522dc,0xdc8d94b0,0x4d958bbc,0xd3f2ad66,0x916d25fe }, }, { { 0xc3212f1a,0x6c88ad96,0x6c998bef,0xe8af0bc3,0x3705ae59,0x8e67d4c7,0x09963471,0x0f5f0aea }, { 0x7712b09a,0x755d7b1e,0xde29af7c,0x4f5ed40d,0x4ba16b78,0x5886aadd,0xc8593c95,0xf8a8b2b7 }, }, { { 0x9305097e,0x81372b93,0x843ba519,0x38d6170e,0x05404483,0xab6b1b2d,0xd1a663ed,0x45bfd9d5 }, { 0x908ddc04,0x54ba058e,0xbfd2c159,0x683b9d33,0x470ce908,0xbad88305,0x855afd2b,0x09d1dc12 }, }, { { 0xd95bcc47,0x000349ac,0x1a7f80ef,0xb0e2d44b,0x8fa79a96,0x3407fae4,0xf9bfb400,0x7784f06c }, { 0x80fbb3b4,0x02fbde01,0xd4f6ffb6,0xf464b5cd,0xb2fee6ce,0x3f8de493,0xc3edc43a,0xcca2733e }, }, { { 0xb63bd6df,0xcd31f1a0,0xdd66aec3,0xd1fc23c2,0x02895e6f,0x671e9f9c,0x6476693b,0xb599ad15 }, { 0x8efa09ac,0x8ea1cea3,0x91134b45,0x6a40c4f6,0x8b23c416,0x4637360b,0xc4fab332,0x6979d1de }, }, { { 0xfc4471bb,0x2435158c,0xe1e6e917,0x91428bf4,0x0ae25c90,0xf15f0d87,0xd57f5939,0x471ad0a8 }, { 0x49693a0c,0x454318fa,0x7f23982c,0xb0d7e9ff,0x8094d138,0x2a367ab4,0x778e8e39,0x2234ca62 }, }, }, { { { 0xe392d805,0x3725c5dc,0x875405d4,0xa87a8069,0xfaa3449a,0xa4a54daa,0x4c6a93d7,0xf8f5dccf }, { 0x6cda02fa,0x02661951,0xa52143ba,0x51f3da64,0x64613273,0x389d3e33,0x66d63054,0xe58176cf }, }, { { 0xac51d8a6,0xaca7f0b2,0x78182a90,0xfd42d884,0x48af581f,0x9b317fe2,0x4bc45d9c,0xa118b0f2 }, { 0x5c87b030,0x8621b55d,0xe376967d,0x81922408,0x09464d6a,0xdf7b25ae,0x0f7e1798,0x698b53fd }, }, { { 0x7fa046f7,0x19d4b316,0x0207309d,0x17110f39,0x946e2d45,0x4e084ac8,0x865883a9,0xe12c8e4a }, { 0xa12646ad,0x53a55a28,0x13311934,0xdd0c04e1,0x393126f6,0x433b3ed5,0x0fd9a2f3,0x7cec0461 }, }, { { 0x9cf5250e,0xfa42e872,0x88828675,0x7bd24be7,0x66d715ea,0xde9ec295,0x4e502d2e,0xfcc8ca2e }, { 0x730fd4a2,0x602e0fbf,0xc03b2120,0x9046bc05,0x8b34da5c,0xf6b9880a,0xeef8bd04,0x30b57bcc }, }, { { 0xc2853c43,0xb9b127e8,0xae22e466,0x48166c57,0xe3d13236,0x3d08e2ef,0x17969209,0x394bd474 }, { 0xa064469d,0xb17828cc,0xd90fcf0c,0xd52f6712,0xf1d60767,0x207e3fc2,0x151dc6b9,0x2b4d6d52 }, }, { { 0x74cb5cbf,0x18da08ba,0xbc30f120,0x1f177e3a,0xbc7ed64e,0x26a78cad,0x28b19095,0x81341ae3 }, { 0x3e856d6f,0x46172667,0x73bc3358,0x80babdc7,0x06cf0349,0x0dd25cfe,0xb2deb5f4,0xf2a47728 }, }, { { 0xfc722e94,0xec2dd739,0x6d058961,0x4ed81039,0xc5940433,0x445c6656,0x38de82e9,0xca8538df }, { 0x1049a527,0x3a0a62df,0xa48b26a4,0xf20953a8,0xa1fb9f12,0x11e73126,0xeb9e05c3,0x3b27fc42 }, }, { { 0x89a95e03,0x2318aa04,0xd2af3c3d,0xf349f675,0xcf2e4e3a,0xee9a4b43,0xfa35ddc0,0x24bbe05b }, { 0x8d793c4d,0x87df45ed,0x375aa149,0xd40aa52e,0xd2760faa,0x17182d4d,0x090a22cf,0xd49405ee }, }, }, { { { 0x185a5943,0x3a5a9e22,0x5c65dfb6,0x1ab91936,0x262c71da,0x21656b32,0xaf22af89,0x7fe36b40 }, { 0x699ca101,0xd50d152c,0x7b8af212,0x74b3d586,0x07dca6f1,0x9f09f404,0x25b63624,0xe697d458 }, }, { { 0xc68278c2,0x336dd1e7,0xa60e47c0,0xa1dd10b8,0x43adfa5a,0x6554caa3,0x47864343,0x61779471 }, { 0xefabd2cf,0x9d03ecb2,0x2317a1a6,0x32796999,0xc8986473,0x03bff005,0xa568791f,0x4ecee7d5 }, }, { { 0xdf0922a8,0x76a78091,0x545cf8d9,0x8e90e9d2,0x022f8b80,0x80924e56,0x5b4e2d73,0x4b656a40 }, { 0x999a80bb,0x4dadcac5,0xb9850f69,0xd473b9e2,0x55d8c4d6,0x20d04cc2,0x12e77839,0xee1ea31d }, }, { { 0x5a7d9344,0xaeab9396,0x0101b56b,0xf7221aba,0xabf96019,0x193d8758,0x89729d1a,0x521cf0cd }, { 0x96b7064a,0x4529f281,0x5a95fba1,0x7a1341ca,0xd386371b,0xc583fe0e,0xcbf9e9ba,0xd60220da }, }, { { 0x69d07e9e,0xb504f888,0xf6a60c36,0xa09e7ca1,0xfb3d8e5e,0x93db2be0,0xbd65e13d,0x9d78956e }, { 0xc3d8c8ee,0xf4dd615a,0x3b94c7b2,0x7460a2da,0x1d3210ce,0x6542a89c,0xf48ea8cd,0xd5149e6e }, }, { { 0x3b281418,0xbb430cf3,0xb0000e35,0x7ce5019b,0x3639e706,0x4d56c261,0x8863a8dd,0x7c86b3ad }, { 0x3117e0ec,0x79dd3eed,0x7bc0861b,0x82ea7c31,0x68daa72f,0x4c62b977,0xeebefe95,0xd958bacc }, }, { { 0x7dc4950f,0x66775086,0xbd394207,0x5741b2ad,0xe4db6316,0x57236846,0xe1353fa9,0x4acb1272 }, { 0x63d8b4df,0x66c6e444,0xb5866ac5,0xdf9e4280,0xcc71e29f,0x8cf298f6,0xb743cdad,0x726cd20f }, }, { { 0x2b3fce8c,0x0b3184a3,0x1543d1a7,0xbd4bbdec,0xce42700b,0x562fc9ef,0x328ed07b,0x176c11c1 }, { 0xa3c9f19f,0x6ea68436,0x5bb51ab1,0x5c5d842a,0xb7de3b7e,0x89592180,0x934b8a35,0xd17f8dae }, }, }, { { { 0x4d9aefbd,0x258fca6c,0x73b95775,0x1efe47b2,0x41bc43dc,0x32ca9f0d,0x8c669d76,0x0fbc341c }, { 0xd3e71ca0,0xed3b6ea9,0x200a9ff1,0x950b069e,0x4957d3d3,0xe4014b1d,0x2f360e3f,0xbd802263 }, }, { { 0x73e44b54,0xf3a6db8a,0x7c1e27f7,0x54dbeefa,0x2620546c,0x2dcb6c35,0x9d8f776a,0x82901931 }, { 0xfe5fe6ac,0x6803f5e4,0x01135484,0x9f47a0a1,0xac1dd9a0,0x65888d6e,0x3ea8fa1d,0xe6a26e71 }, }, { { 0xe9434837,0x8796dffe,0x8620c1bb,0xadb3140b,0xfb4fb06d,0xb1341c6f,0xc4a87aed,0xd76d18ab }, { 0xbb215b4c,0x4faa04f9,0x75b7ccc2,0x90a458e7,0xf7ab9332,0xde0e4214,0x2ed96644,0xf6bc4da3 }, }, { { 0xea394a20,0xa5e743ce,0xe198a281,0xb41ca518,0xb517ac92,0x444cd57d,0x2299cf2a,0xc48dbfa1 }, { 0xea77a75b,0x4a0580db,0x991bb5e2,0x9440b125,0x1bdbd6cd,0x64ff2e41,0x0e1380ba,0xbc83cba0 }, }, { { 0x9c07f222,0x02e89f21,0xac60fe7d,0xc5e21c63,0x1f1753d1,0x4f481d1a,0x6167ff60,0xd5c0c650 }, { 0x0c6ffd57,0xe2ef691e,0x78813a86,0xbaf3f51a,0xf49f75b9,0x0cde0c77,0x0817b885,0x15a30b86 }, }, { { 0x96a178d4,0x5bb8cbe5,0xf408a8ef,0x2233bc4f,0x8bce969c,0x4439015b,0xfcb52791,0x1b71b816 }, { 0xb5507f51,0x4a2d7ebb,0xf6cc1171,0xe0e5b6c1,0x8d738fc0,0xde6ef1c2,0xa48a8e2c,0x7e659d1d }, }, { { 0x4e93bfa6,0x4a4716a2,0x09a1362a,0xd39d295a,0x6b4c9fe0,0xe549cba6,0x4a46f62c,0x734c364e }, { 0x98d10774,0xfc6fa799,0x890297c4,0xeca13620,0x520c5f48,0x9de981e3,0xaaa79d04,0x09951503 }, }, { { 0xb049e7cd,0xcd013f88,0xe57fdc00,0xe8f9257a,0xfc3a9301,0x3be71969,0x58cff937,0x987f256d }, { 0x6efa35d6,0xb7254bbc,0x07aaffdb,0x47b46052,0x0007e39e,0xe860ebd6,0x94ec505c,0x8e926956 }, }, }, { { { 0x17e55104,0xc2ebaf80,0xbb8e9c71,0xf73a835f,0x4d8b561c,0x63de93c3,0x27b78737,0xd8de7652 }, { 0xe52e08cd,0x2a02ef80,0x1940db1b,0xc2f73fce,0xd1dcf924,0x5c4c628a,0xbe13f2d1,0x2fd29465 }, }, { { 0xf722a81b,0x06eb9409,0x9467b68f,0xe9227bab,0x56a0a320,0x6020f717,0x9a38b79b,0xd03eb26a }, { 0xd8a85767,0x95e25f86,0x6df208f5,0x9dff1a28,0x5262d412,0x6ce05704,0x2c21a3e7,0x50c5fcb0 }, }, { { 0xe987bfd3,0x6939c2c7,0xf4c4284c,0x87c5472f,0xfaddd191,0x551dfbea,0xbd518e33,0xe3a5786f }, { 0x8cc23e7d,0x7ed31b6c,0xd928e081,0xa3dcf2ec,0x4ad8210c,0x8477b9ff,0x535840e6,0xf74bad09 }, }, { { 0x03f61c13,0xe834110d,0xf1790dd7,0xff6986d6,0x07c7976f,0x2d3ad94e,0x0eb8cda7,0xfe409101 }, { 0xbda0b3ae,0xc3d3cecd,0x99e1d973,0xf986fbdb,0x093b0b79,0x39486faf,0xda404032,0x081759c1 }, }, { { 0x22d5056e,0xb67951d2,0xe247a07c,0x0edcb5a7,0xe96e5e48,0x11525ffc,0xeca520d4,0x42a97041 }, { 0xb0f7db11,0x48414dc8,0x6e9fd1fd,0xb64e483d,0x6b563b26,0x6ec36dd2,0xcf008706,0xf2fc7f66 }, }, { { 0x0a94a6b1,0x7bca829e,0xd0d9e4b6,0xca300c28,0x93fc4323,0x28a7cebe,0x2aa7b78d,0x5873b9f3 }, { 0xde524c9d,0x52bf9f98,0x9ffb3df0,0x1f505488,0xc39bb95a,0xf4e0379c,0xed5e2eb5,0x17a7dbf4 }, }, { { 0xd3dafd3b,0xc6745f91,0x2dcb3956,0x6fb899f0,0xd65379d6,0xfe232c2e,0x1c27964c,0x0d6ca71b }, { 0x1a6fe6e8,0xd6adf142,0xee88771a,0xa02248ab,0x2707de58,0x9fe494a0,0x8fde293d,0xa85130b3 }, }, { { 0x8fa8ee41,0x13d00c24,0xc7743648,0xcb4e6644,0x63154403,0x1e809570,0x39dd5895,0xc90e3008 }, { 0xc3d7c1ae,0x47a63667,0x17accd6e,0x50455347,0x53840362,0x9c0710c6,0x6d19e73c,0x62f50417 }, }, }, { { { 0x22d32936,0xc30fb771,0x32847f01,0xe40cd02e,0x513d7f38,0x9f6cc7d1,0x7814a47d,0xc5440c59 }, { 0x47cabfd4,0x9a42fa37,0x31e41e5d,0xd8a6d286,0x23ecf4ac,0x2edc1e1d,0x383e1fa7,0xd27ee9ba }, }, { { 0x2c2e32b9,0xcbe1a18d,0xfbd492c0,0xf165803d,0x2f5bab12,0xff3e42d5,0x2daa15af,0xd07e9589 }, { 0x2c1a4f5c,0x5e78ad6a,0x5228e81e,0x23ed98f1,0xf893ef4e,0x731f0769,0x06724528,0x774e4d65 }, }, { { 0x7989a8e1,0x7d8501ec,0x74ee4bdd,0x7c1d96f3,0x9b9cfe0a,0x7500e047,0x5cdfa79b,0x3e4d03c4 }, { 0x441c240a,0x98791388,0xf3bd6740,0xffaf18d5,0xd7caa719,0xaac117ca,0x815a6475,0x12f744d0 }, }, { { 0xf79f7b91,0x7601aeee,0xe19d957c,0x4275a149,0x95829d32,0x3a06ae02,0xb86fd8fc,0x437f6e07 }, { 0x75270033,0x64b6ace3,0x91396833,0x589a7711,0x9b15d63c,0xbf38b828,0xa889f13a,0x5fe8d37c }, }, { { 0xd9bb7902,0x6939a8d0,0x86b7c73f,0xd8c26c72,0x94485e9f,0x9a9a249e,0xb3d61035,0x01b68449 }, { 0xe03ee653,0xcd7f44b1,0x71836682,0xfceb2604,0xc36d1581,0x0bf198e5,0xe9379c3e,0xe59063a1 }, }, { { 0x45046203,0x360cdeed,0xdc6cfcbd,0x5533528a,0x7d06e463,0x53466599,0x17fd7e77,0xd2ea9fb2 }, { 0x3e8ea623,0x8599f27a,0x6a34c3f5,0x15dff2d5,0x24500d44,0x5b064208,0x9f909a70,0x16ad23b0 }, }, { { 0xc371d9fe,0xc29b56d4,0x1999d6bb,0xf04b356c,0xc3ab3a4c,0x335955a7,0xaccc9ca2,0x952c3cb1 }, { 0x4189a13f,0xd76ce6d2,0x1808c75e,0x664464f1,0xf6ece5d0,0xa7df9136,0xf7d62f06,0x59b98546 }, }, { { 0xc51cd9c7,0xa969ecfe,0x3447db8f,0xb80a7c8a,0x6483ee28,0x79ca1e2a,0x5cab844f,0xcecdff7a }, { 0x29389632,0xeb76eac7,0x645e5a3f,0x0d09d06b,0x9c7d0f6b,0x92af6881,0x22868008,0x9323e54d }, }, }, { { { 0x8e14db63,0x90e75cb4,0xad651f7e,0x29493baa,0x326e25de,0x8492592e,0x2811aaa5,0x0fa822bc }, { 0x5f462ee7,0xe4112454,0x50fe82f5,0x34b1a650,0xb3df188b,0x6f4ad4bc,0xf5dba80d,0xbff44ae8 }, }, { { 0xa05f57b5,0x794a16ba,0x57324591,0x53fe448a,0x06960801,0xe4c13d03,0xdf8dc746,0x031a8747 }, { 0x9c0343fd,0x1827ee57,0x42b8def2,0x1431c18c,0x1e387a32,0x60e8aa6c,0xfda8d586,0x883a2c64 }, }, { { 0x7db3cdec,0x752c453f,0xb228ebf5,0xdbef3a12,0x7bea4bc8,0xe596645e,0xff912f5c,0x85b2c064 }, { 0x4a03f81f,0x8f4d0820,0xe64cf8e0,0xdc980b34,0x2fcc6d00,0x63c7fa2d,0x39d11536,0xf64b278f }, }, { { 0x580b2322,0x015e2e65,0x96513cca,0x4eccac60,0xc0d5934a,0xf9571975,0x9b973c17,0xa7163c2b }, { 0x2197ffe9,0x3933b223,0xe09952d7,0xb841a4f4,0x545a6b7a,0x63389991,0x7af31fa5,0x308a9a79 }, }, { { 0x8607b030,0x288a5ae4,0xe584d673,0x24daff63,0xec16f29c,0x7851fbac,0xc4021467,0x110b0376 }, { 0xb3617c3a,0xf43aa112,0xfb298749,0x87be1556,0x8461c70c,0x4c6eb89f,0x318ee673,0x84432b85 }, }, { { 0x6a334020,0x9afbd391,0x8ef9afb9,0xa1815999,0x517690ac,0xe22a0772,0x875d4eed,0x3c714524 }, { 0xba701655,0x6102a85c,0xe7938c2c,0x152fcaaf,0xff7f3d8c,0x4889e729,0x771aaf5c,0x7f090565 }, }, { { 0x75a76f08,0x54edd81c,0x8bbbed4e,0x3295f253,0x2b1caaf8,0x14f6e124,0x9f6471d7,0x18784e44 }, { 0x6b824993,0x0b39605d,0xa60a2532,0xfc9d74a7,0xac71e671,0x1777a8fd,0x4a1e1ae7,0x8d76ed7f }, }, { { 0x5c42a280,0x6cb04a6a,0x2db2670c,0x02a50c38,0xef4b991f,0x811b3923,0x03ab8279,0x1bffab8c }, { 0x4ddb9261,0xc9c74236,0xa9d24fb6,0x982a369a,0x529f1aaa,0x332ac758,0xceb1d098,0x2982b620 }, }, }, { { { 0x70aae231,0x60aafad1,0x79f96b7c,0x5194b852,0x9267756f,0x85f24823,0x9761e3f2,0x1d35c969 }, { 0xccd6ac71,0x5867063a,0x729a66f1,0xedf58aa4,0x22ebf810,0x1d660ab6,0x2df60823,0xc7226cb6 }, }, { { 0x26432d92,0x501a3274,0x2b473903,0xd9c9823c,0xa6397ab4,0x9910e1c2,0x7800cdd8,0x6f2b065a }, { 0x63e17c9f,0x6d2d1c49,0xe33dbecb,0x093bf02d,0x700826c5,0xeb1472cf,0xe5e7a2e4,0x0acfeb77 }, }, { { 0x8cfa3fac,0xce0d3fe1,0xc32b8193,0x23ad869f,0xd60d8030,0xe2cebb45,0xa6d2234c,0xdf3d4047 }, { 0x8fc7d419,0xf4626d93,0x96882975,0xafd63ce4,0x9c0f9dbf,0x24aa21f2,0x29fd40db,0x48fa6f52 }, }, { { 0x8a6edbf5,0xe3065e08,0x9662876b,0x2f335256,0xfdadd0af,0x68991da7,0xa3dd7774,0x870ac12b }, { 0xf02f8ce3,0x1906d2dc,0x2e5f297e,0xd03c6402,0x69d05a67,0x8de7efd7,0x999a7699,0x7543728b }, }, { { 0x1f1322d4,0xaed925ae,0x4accdcbb,0xcb0a6940,0xa311f822,0xea1e6c4c,0xb1f96144,0xdbb2af6a }, { 0x4a8c5311,0xaa492b4f,0x7b7e3a5f,0x9a9fc978,0xd6433f9d,0xa1b60d1e,0x2f13561a,0xebae75b9 }, }, { { 0x373a6b7a,0xe8a58ada,0x6252d45b,0xf3adf06c,0x14226d09,0x09b667aa,0xb5222134,0x17b29fd1 }, { 0x4844ebac,0x0c148207,0xd388cbae,0x39d03897,0x3efefbd2,0xe9924e66,0x352f3d4e,0x15fb4490 }, }, { { 0xa1138f7b,0xf069a33c,0x2df2e8f2,0xc4c1c93e,0x7f9b5f0b,0xcafa8a26,0x7f261fd4,0x1dba7b59 }, { 0xa39bf268,0xdc82d8c7,0x998232c0,0x8136e6b7,0xbb8007f5,0x3ae19006,0x5de7efc6,0x6aaf7d3e }, }, { { 0x50c06af3,0x7aa6e463,0x9fdbf0f0,0x6a9e8c74,0x8034db34,0xa0bf5fef,0xda0d5592,0xdbec13e6 }, { 0xb6d243ed,0x7caf0f7c,0x64edb664,0x42243a32,0xb745e4d4,0xc0e57348,0xd619e5f8,0xf859978f }, }, }, { { { 0x4351964c,0xd4d3d2de,0x6f5412c1,0x34692437,0x85755c08,0xae5abca1,0xbe28c47f,0x6e29f959 }, { 0x563fd88f,0x118824bd,0x7a0bfb63,0xef640c52,0xc184246d,0x5052ec6c,0x500f32f6,0x34565d9f }, }, { { 0xe5e84da4,0x61e0f0ef,0x6ed90cad,0x3b09f077,0x496e6894,0x10cfa381,0xb5909a0b,0x8efa0f79 }, { 0x596969d3,0xfde19f42,0x97816035,0x79957c48,0x5daafd14,0x9fa46f1c,0x934cd613,0x242418e7 }, }, { { 0x8c0e49cc,0x3f950103,0x5bc5400d,0x41232da8,0xcbb740ed,0xdd8288de,0x78970f6e,0xd691d4a9 }, { 0xd00f4152,0xdd0bb4c1,0x2ad043f2,0xac5be1d0,0x763e0c52,0xf7fbbdb5,0x4b78f397,0x7a79e787 }, }, { { 0x023ac4ce,0x4acaf2c0,0x1eb3f397,0x1f8973e3,0xf360db2f,0xb9d6d6d0,0xcb8fdb30,0xd0d4af73 }, { 0xa47dd6b9,0xe3df0360,0x863aae77,0x61850b1c,0x3e529530,0xbbe9ccee,0xf15d7ddc,0xed90f8c8 }, }, { { 0x2b9b930a,0x3d876b9f,0x4530f58f,0xdeb1352a,0x7a7bbc49,0xdee5b7df,0xa2e0d7c5,0x2a5d6846 }, { 0x3b2caeca,0x86ff345f,0x5e271685,0xea5b7343,0x03c4ab58,0xe5ccf039,0x6876476d,0xdc3d7c09 }, }, { { 0xb886719a,0x0bc6e130,0x470922f0,0x165cb495,0x332b75e3,0xfd851c4d,0xe445915b,0x8b277f8c }, { 0x6ed37c38,0x078b30fe,0xcea31a3d,0x55213780,0x69ec9139,0x6e4b52ee,0x164543bc,0xcf44d77b }, }, { { 0x816959ef,0xfa7dcbd2,0x741db59a,0x7679d056,0x2e275df8,0x2f043141,0x389bb526,0x8764496a }, { 0xe0cd5010,0x660311cb,0x72f9e3f1,0x2856ad41,0x96ed961f,0x9e0b4127,0x1d002ffd,0x599b69d6 }, }, { { 0x92397d42,0xe399da61,0x51256eac,0x38d1d602,0x65b85f90,0xa6d6f71b,0xed5452e8,0x829b8dd0 }, { 0xe3df5612,0x91b71631,0x63ad1a5d,0x5c5adc42,0x896241af,0x99e73c8a,0x3fccf46d,0xd300ec54 }, }, }, { { { 0xc5852e50,0xc7d0b24c,0xcf570cc5,0x8b2c7e63,0x49ee7eff,0xc1f9aa23,0xfeabb058,0xe486c7df }, { 0xaecf107d,0x66ba3cad,0x3392ebd8,0x694463d6,0x9f51e05a,0x9ee88a5c,0x5606a12e,0x51fd75ed }, }, { { 0x78692e20,0x74502ca3,0xc339d0ea,0x63ad9e86,0x906276e9,0x21ff1441,0x5a5fcb88,0x69a16e24 }, { 0xb3116c8f,0x996e69a9,0x0f7da894,0x113d2862,0x4cddba10,0x06f01e9a,0x891afc01,0xa7c968cd }, }, { { 0x5c881907,0xc66aa645,0x5b00b1da,0x142c8673,0x66ae0415,0x964105cc,0x8e2ffb7c,0x4acf44bb }, { 0xf63cdafc,0x2926b456,0x7cd84b25,0x99352b2f,0xd10a5457,0x3544285a,0x0ffd587b,0xad99a8fe }, }, { { 0x06bc8d71,0x47bde797,0xc79b0d17,0x7a39f95b,0xfa0e745a,0x21190e12,0x7eefb2c7,0xdcad8b2a }, { 0xa297fcf2,0x470cfe2e,0x7b717b56,0x2726c407,0xe07c0fa3,0x2211993c,0xb91faf9b,0x8bf1287a }, }, { { 0x7439383f,0x82bae069,0xb601a2aa,0x34ffa562,0xc8234eec,0xdd7aa292,0x4188a649,0x4ddf2283 }, { 0x23d52337,0x632fa818,0x131f8269,0x3dd5d045,0xd38c0c6b,0x74abae97,0x0d91883d,0xe71c627b }, }, { { 0x0ef15db0,0x1f6b16a3,0x01c829f8,0xef4c1ad6,0x882eba59,0xf3f78331,0x1731eb21,0x89be840a }, { 0x1d0b8200,0x791d68c7,0xca29a81f,0x53b9df77,0x75e9016c,0xf4c56446,0x3cb32816,0x70ec8c19 }, }, { { 0x5822b4f4,0x26dc8815,0xf865df8f,0xa5353afc,0x797bf39b,0x1334e9e0,0x1379879e,0x58b06579 }, { 0x0c60fbca,0x6607a821,0xfc4e5259,0x1ca4a076,0x0262836c,0x027ca55f,0x145a2c37,0x55a98aa4 }, }, { { 0xaa99ad56,0xd7273629,0xad0e2f87,0x13fea55a,0x228c57c4,0x4dca9848,0x1d318bc5,0xd9f8b377 }, { 0x5f5c61b9,0xd4e91938,0x31f63cb4,0x995de59a,0xfb70a4a3,0xc6551557,0xf0d22377,0x07aad641 }, }, }, { { { 0x7512218e,0xa84aa939,0x74ca0141,0xe9a521b0,0x18a2e902,0x57880b3a,0x12a677a6,0x4a5b5066 }, { 0x4c4f3840,0x0beada7a,0x19e26d9d,0x626db154,0xe1627d40,0xc42604fb,0xeac089f1,0xeb13461c }, }, { { 0xbf8d5842,0x1b68edcc,0x8455b67c,0xda74be4d,0x3eb337c5,0x52147314,0xccdaf543,0xcc8fe9ec }, { 0x487100c7,0x567e1ac9,0x458677c8,0x5df1592d,0x0b91fb77,0x75cec614,0xd9f2fc3f,0xc2a5d01c }, }, { { 0x518473fd,0x52ef40e2,0xc6973391,0xbbb9026b,0x9728a9e3,0x85292ab9,0x33318ba0,0x10640632 }, { 0x785cf805,0xafa6162e,0x0c21d039,0xcfbe190d,0x6585883c,0xc8e7829e,0x3b8ba2d8,0x9c683282 }, }, { { 0x0c37da54,0x23f389be,0xbc1184de,0x71b0b96c,0x37e86261,0x8006b50f,0x0823d8ce,0x11c88139 }, { 0x08ee3df5,0x567c6514,0x384d2adf,0xb3e32b21,0xcaf61ae4,0xa42aaf13,0x6726bda3,0x82f5ca51 }, }, { { 0x653f30f3,0x3567eec8,0xeda238dd,0x2b423ed2,0x54083f21,0x5eda410d,0xf05f27bf,0x38c8ad8f }, { 0xebe9217b,0xa060e749,0x2959df37,0x6583fa98,0xddbd641f,0xf3909654,0x76dcb116,0x83c26178 }, }, { { 0xfd7046cc,0x62b66e34,0xe32d8d77,0x280398b6,0x930f5e51,0x23a5d12e,0x505a876c,0x3f789c12 }, { 0x90683e4d,0x14878565,0x8e0b3fd6,0x6320de84,0x964e47a2,0x64c974dd,0xa291a6e5,0xd0d9f1b3 }, }, { { 0xb6ef1584,0x543e6911,0x8f920cbf,0x77a9a2a3,0xfd351842,0x5858fbe3,0xe860bb09,0x6fcb8cbc }, { 0x1d3110f2,0xc3c9f7c2,0x928a4325,0x5992f6d6,0xac30459d,0xd54c0823,0x8b721d76,0xa8f1a83d }, }, { { 0xfd698f73,0x355c95a1,0x2a5c98ea,0xcb4cb3a7,0xfc8b8d71,0x676e37e7,0x52a32680,0x9c7a4efa }, { 0x120cf142,0x122443bd,0xea879e7c,0x94b07cd5,0xd0ade69b,0x16c424c1,0xb2150c7b,0xa2c4a71a }, }, }, { { { 0x3ecca7e0,0xc739a5ea,0x6743333e,0xa7d2c98f,0x224d9428,0x0fef6335,0x5c792a0c,0x7ef2ee3c }, { 0x552ac094,0x302b22dd,0xdfbd3d20,0x81b21450,0xd5e609db,0xa4f67f51,0x30acc011,0xafb68627 }, }, { { 0xab896d0f,0x6db02c92,0x0c09223c,0x5e880be5,0x6986c76b,0x93539def,0x86e68db1,0x06464724 }, { 0xa4f528ea,0x90d74508,0xc63b4f90,0xdb1b895d,0xf9047cfe,0xf2b3f5ce,0xfe7063bb,0xf1f4ee22 }, }, { { 0xa33f0ffa,0x72f3583d,0x11807a41,0xcae4cac6,0xc9d9c641,0x7624a576,0x16887acd,0x37045727 }, { 0x60fa35ac,0x5fed3fc6,0xaa8bf2fc,0x57ba3eb7,0x8895ff4c,0x841bb4bb,0x1a71e74f,0x5c6408c6 }, }, { { 0xa8d5825e,0x699c584d,0x384d570b,0x7beb467e,0x4ff03fd1,0x2ea71354,0x5292fc71,0x0d42e1f1 }, { 0x7a8946b3,0xed180897,0x4b4340cb,0x0c4cb2ec,0x5a85ca7e,0x2c1f17a5,0x21f69acb,0xadda2b0a }, }, { { 0x32603513,0x3c6f9865,0x814a0095,0xf6c64dc6,0xc08bb697,0x2d1eaa42,0x4298db72,0xc2a979e5 }, { 0x3c3505b9,0x95755b2c,0x48151449,0x8cc666df,0x935bce7e,0x54278081,0x1e6eb5c8,0xef9dd74a }, }, { { 0x15fc7295,0xdfb7dbf3,0x49cf786f,0x4307ad95,0xf115d687,0x3fb48be1,0xd603693a,0xae67ecd7 }, { 0xfa4f5b62,0x04ff9c5e,0x2c2aee34,0xfc301972,0x4a82d9c1,0x072b94b8,0xa5faa6d2,0xd23cd2ae }, }, { { 0xd9fdee3e,0xe646ffb1,0x6c302e01,0x681f9771,0xdb17afb9,0x172bb15c,0xb1fc59e1,0xc9f4186a }, { 0xcced22e7,0x51e66cc5,0x7b58df4f,0x44e1531c,0xb8832143,0x0df73142,0x3cb3a341,0x09420a7f }, }, { { 0x9ad780b2,0xf9c18a46,0xf68440e7,0x8c3b0da6,0x8f9ae751,0x0e19d0c2,0x945c7db2,0x44dc4d9e }, { 0xab93b11e,0x91437413,0xc2cec39d,0xb47775e1,0x683f5f95,0xf8fd19dc,0x45c2f9c9,0xdbeb9187 }, }, }, { { { 0xe2f2b734,0xf0699bf9,0x5501d267,0x79c3bb5b,0xf1164457,0x0634a786,0x9eecc99a,0x224a0229 }, { 0x91ec7fdf,0x840f5854,0x73c7afd0,0x07b704b6,0x871d7fff,0x149a08ad,0x9b6d22b4,0xfa41a8d2 }, }, { { 0x1991e607,0xa8df3dae,0x196e11de,0xe310d10e,0xaf6b2261,0x760f78b8,0xbea5bda1,0xafd35b35 }, { 0x4308126f,0x5e0b73bc,0x2155af41,0xbab7d987,0x6b81ec93,0x96d8ee26,0xe204e994,0x03555f48 }, }, { { 0x5d254033,0xc9e92f47,0xc2a4707a,0x78368280,0x88b6f240,0xfcdadfa6,0x153cec59,0xe63502ee }, { 0x68f05e3f,0x7e8aa889,0x4bfcf360,0x2c915a0c,0x0709ce48,0xad74e80f,0x1f621e11,0xa7c5837b }, }, { { 0xf0b9a00a,0x7e16cc51,0x2f93e68f,0x05174da4,0xb56175d5,0xa0c7cc97,0x35eb4955,0xe5ceac40 }, { 0x67984a57,0x157ff80e,0x86fe794f,0x8ceddb75,0x3396d1e4,0x854a459c,0x1fcd56b9,0x660cb930 }, }, { { 0xe1e08f33,0x2b9609af,0xcb982cca,0xb1fd631d,0x33f000e2,0x12ab45c5,0x72eb9687,0x5648dec2 }, { 0x4269f1c9,0x26eed9ac,0xe0117951,0x3e72bbf2,0x4d77a269,0xf478f5c6,0x708f7043,0x95fddc70 }, }, { { 0xe8a5c546,0x8daa3455,0xa3187b91,0x1f0ea68b,0x5268d693,0x3e774b6d,0xafc5667b,0xa643c538 }, { 0xd3fff857,0xeb1e337c,0x0dc64a7b,0x4893db48,0x1cfd3519,0x46003301,0x4377db0e,0xa8d602ea }, }, { { 0xfab98c43,0xe3b8200b,0x7e3e8aa4,0xc5ba5775,0xcbec8f03,0x95152f8e,0x3380ed26,0x1941c19f }, { 0x22abe217,0x8fa210da,0xb8df5639,0xd8f62d3d,0x48fb8c53,0xe2b6db2a,0x595db2b6,0x8e66b834 }, }, { { 0x2343750b,0x4f556db2,0x7d329c76,0x944995a2,0xa2b75f9c,0x8ec64fd2,0x2be67902,0x0e415c46 }, { 0xbecd56cc,0xa6097c15,0x5ff7ec06,0x6ef691a4,0x77f8cddc,0x27bca210,0x77f984e2,0xc3056e71 }, }, }, { { { 0x72bd05a0,0x3438c84a,0x0b1fc80d,0xba82337d,0xf36d1f90,0xedc2f995,0x3a31885c,0xe5e89236 }, { 0xe1a69f5d,0xc936de2b,0x9cd099ae,0xca73995b,0xe79b5c3e,0x1301eb01,0xda1b87d2,0x77439de4 }, }, { { 0x73b4df41,0x0c665cf9,0x0f696a51,0xfe6784fa,0xd3177c78,0x44d95fec,0x3ffec8d1,0xc827ed76 }, { 0x80f91f4a,0x2e5b6a23,0x6c0047b3,0xbfe9a610,0x66ef3cd3,0x60e17d7b,0xf2da5ed5,0x1e4c4475 }, }, { { 0x01467d6b,0x4f095281,0x52a24b51,0x357d7129,0x642cf1d8,0xd1018611,0x9435ccf5,0x5d2393df }, { 0xb1bc5458,0x07c673c6,0x510473a8,0x72a707a7,0x2d5af46d,0x7acbd85b,0x63fd0f7d,0xe66e63f2 }, }, { { 0x46340d60,0x405904b3,0x956e7dc2,0x8998961b,0xb3c1587d,0x25ed93ee,0x91b74657,0xb5110014 }, { 0x653ecaa6,0x68cd6178,0x18594791,0x8fb582b1,0xf769f978,0x72ab899e,0x31fe4c46,0x9c3981f4 }, }, { { 0x9d159f7a,0xf0b1e93c,0xf242e590,0xecf93a9c,0xd2ff873f,0x3adcfb2b,0x3aab893f,0x453657a5 }, { 0x8a02fb78,0x99c22b70,0xe81dda5d,0x6f949bd4,0x3a01c728,0xda2ef091,0x88023dc5,0xbfb5aeff }, }, { { 0x4cfb1a94,0x973276c6,0x63cdcde9,0xa32f06e3,0xe480e645,0xffc3dda2,0xb72432f0,0x27a0c221 }, { 0xd4098584,0xab98f8c2,0x78674297,0x91e3b03d,0xc1821e9d,0xf2f2ef8d,0xb3a0a792,0xc3f6ab3e }, }, { { 0xd46cb42a,0x31ededf3,0xa7239093,0xbc052853,0xa13d73e7,0x4d14adea,0x07b04c46,0x435b54cb }, { 0xdaf72dd0,0xb7e24ded,0x433949a6,0x5edc4c79,0xc1e0585d,0x49f4a54c,0xe4718a1a,0xd726c031 }, }, { { 0x678e27d3,0xc193d479,0x0e4c688f,0xc12883ed,0x48e4774e,0x1cb2f031,0xc40e8409,0x60aacaee }, { 0x28c4d2de,0xff7c6102,0x3a680f4b,0x46d40078,0x03de04ee,0xda54f7c8,0xc5def66d,0x9677dffc }, }, }, { { { 0xd789bd85,0x57c84fc9,0xc297eac3,0xfc35ff7d,0x88c6766e,0xfb982fd5,0xeedb5e67,0x447d739b }, { 0x72e25b32,0x0c7e33c9,0xa7fae500,0x3d349b95,0x3a4aaff7,0xe12e9d95,0x834131ee,0x2d4825ab }, }, { { 0x1a6b665e,0xeb042121,0xa7f6803a,0x802f779e,0x3c0804c3,0x47501f2a,0x4945a1d4,0xa263919b }, { 0x30bcdcfb,0x9ee40400,0x4c00efe2,0xac3f83df,0xe60d60c5,0x2e9d3c9d,0x2aed20fc,0x873200bd }, }, { { 0xdea6db68,0x73e1998e,0x082632c2,0xddfad856,0x65def4f6,0x58b14df9,0x03ca017f,0xf8b6533e }, { 0xae760da9,0x69bd25b0,0x9c5ca0ed,0x6bbd70dd,0x50aa3ec6,0x2f046dda,0xec445486,0xc30f4ef5 }, }, { { 0x4d771f0c,0xf6f1d3ac,0x3be0aea8,0xacad16e6,0x579547f0,0x18e63add,0xe57e1961,0x2890d721 }, { 0xb5890d78,0x0a5728ec,0x7ef54069,0x7dc0e7f7,0x416752ec,0xaf77e1d1,0x9ddc032a,0x69b5b815 }, }, { { 0xf924e753,0x66d5d4eb,0x2cf8727c,0x5f017307,0x29edfb75,0x548ef187,0x5582847c,0xf35289d3 }, { 0xeb13a20c,0xaa45b5c2,0x292d0f04,0xc562fc57,0xb50e1bd8,0x93df08a1,0xc5ec13fb,0x75c1781e }, }, { { 0x2670213a,0xf8b6930d,0xaf7a9da4,0x946d1bf2,0x595033cb,0x5430c3c0,0xec5be480,0x929f5cfa }, { 0xcd486f14,0xa53059c5,0xf7f20170,0x1b383964,0x51e39045,0xc5ac64bb,0x293320c6,0x29cd3692 }, }, { { 0x3018017e,0x2395cb67,0xd6df23d7,0xaf141fff,0xb6734e01,0x4834185f,0xda441716,0xcfd06b74 }, { 0xce0dff50,0xa0ae7be4,0x6b779777,0x00303078,0x87da7950,0x8103b395,0xb72ba913,0xb647b7a9 }, }, { { 0xac7e9e44,0x4f5822ef,0x71da1781,0xd4e3ff5e,0x033de305,0x81690628,0xdd4d9c6f,0x7b8b8867 }, { 0xa8cd12c3,0x0767022a,0xbbd72365,0x64057e6d,0x7dd5adb5,0x2246073c,0x511680b4,0x8bc6273e }, }, }, { { { 0x44cd3397,0x741145c1,0x19515eb5,0xdc34c106,0xb5156ded,0x89386cf2,0x19eda723,0x73baff04 }, { 0x9adcb8e4,0x41ef2a13,0xf8261349,0x779ef92c,0xc18f825e,0x6a00d1e8,0x4977ac5f,0x1e97de63 }, }, { { 0xdfd83618,0xacc1fd7c,0x318d93bc,0x140b55dc,0xa0f4871e,0x36ca35ad,0x91ba4305,0x6fb54563 }, { 0x02430626,0x3f39f5cb,0xaae5d33e,0x2f1e6499,0x2109daba,0xed3b68c5,0x66c6b8a3,0xf663d877 }, }, { { 0x161fb913,0x7eb0f952,0x56d31297,0x3e102461,0x44bed04e,0x344388de,0x33e60a18,0x45f8330c }, { 0x0c15c3bc,0x70d4817c,0xf6fc3373,0xf06d0879,0xd8ba7760,0xf80e8076,0xbfd6906e,0xc212cf6d }, }, { { 0x1cbd9a71,0x357bdb04,0xb46ef479,0x42d91e70,0xdf98e4b9,0xa145c7eb,0xb2862113,0xd554ded0 }, { 0x3c8cc32e,0xa43a4a8b,0xa7a61c99,0x5f29fea9,0x5ac39314,0xff0f7ad4,0x6c36708e,0x74b8f94b }, }, { { 0xee393654,0x5aef9691,0xf3edd7c7,0x965d4be1,0x8bcd5991,0x65f5a01c,0xacd7bdab,0x5544dc49 }, { 0x8f53206f,0x23610bbf,0x03d58e73,0x241efe97,0xb8935192,0xc04c05b5,0x5087fd4a,0xed3e8589 }, }, { { 0xbab5593a,0xe8b93f55,0xe662a7a0,0x44ce7343,0xd42eb14f,0x54e17c99,0xe9e10135,0x44130b2c }, { 0xbf5b8e89,0xe3a5763d,0xcdce2e3f,0x776d1bde,0x5b0580a1,0x31ca5121,0x7907224f,0x49197fc7 }, }, { { 0x28a15dfd,0x13f35994,0x25fa9e55,0x741dbac0,0x5ae2f695,0x4b3d2ed5,0x619ee773,0x2757b790 }, { 0xf042c341,0xfc8e840c,0x3ca7156d,0x1768978a,0x3cd5500d,0x5cc97521,0x54c2b12e,0xdf46d2d5 }, }, { { 0x3be28c8a,0xde82817f,0x22130485,0x9f617766,0x29625171,0x63c4e454,0xcf05f1c7,0xb889d78b }, { 0xeafdf89e,0x3037fe51,0x782fb8c3,0xdff631e5,0x75c700ea,0x182be4a9,0xfa511b9b,0xbabb0b07 }, }, }, { { { 0x523b716d,0x826fadc0,0xf74e1a6b,0x0d238966,0x8d18df9e,0xe8a5c793,0x8b8ca534,0xf81f5be3 }, { 0x12632401,0x464002f5,0x3a878330,0x66075850,0x380e0328,0x1d56d29d,0x9c1f06df,0xdc7f4932 }, }, { { 0x90789539,0x46e0c527,0x3bd05725,0x0e4e1a71,0x80d63182,0x158ea762,0xc29c4c3f,0x7459e772 }, { 0x1439d97f,0x3cdf5a47,0x4f7db391,0x383af5e0,0x8a2ec1a9,0xec7e8e85,0x183444ea,0x892bc7f5 }, }, { { 0x39d19d8a,0x84c56850,0x51a55215,0x3b412789,0xc16d490a,0x5af6ec35,0xfb128638,0xa6008450 }, { 0x590d2c4f,0xfd95dbb3,0xa726573d,0xf0fe008f,0x7be9ca84,0xc8f6d45e,0x67a37c72,0x7b4b79c0 }, }, { { 0x8ef2dfe7,0xf4727e8c,0x5b8881c4,0x345e4fd9,0x7d2efd3f,0xc604c9f8,0x3d7f8492,0x2e1c7c38 }, { 0xc55e5f2a,0x3f85cca2,0x67b0c5bd,0xc2d747d6,0xff7ea8f1,0x6d9f4529,0x09f0be26,0xc629dc2b }, }, { { 0x496cac9f,0x26987b39,0x5c44de72,0x59e38cea,0x8feb0e1c,0xc64c0979,0x967df354,0xde5382b1 }, { 0xafa473d3,0x7ce082fd,0x73d84115,0xc2e3e294,0x91cf9f2b,0x62c3b009,0xb69c9185,0x9c47b678 }, }, { { 0x31bf35a9,0x3b4c7c08,0x6d621c90,0xe2ed3036,0x638b5965,0x40cb0798,0xc5345e53,0x74dfabec }, { 0x36a268e1,0x3615b07b,0xc564848d,0x3f5fa126,0xc517ce99,0x69281e79,0x8956a770,0x48341b4c }, }, { { 0x86807a23,0x7cb29637,0x6a25ff3e,0x40002051,0x51194ec8,0x5344b99d,0x07f2a908,0xa7227b08 }, { 0xd4115894,0x1c471983,0xb728cdc9,0xe7bf8157,0x20a075ab,0x45da8479,0xd45d39e8,0xf5507525 }, }, { { 0xf2f21873,0xacebe833,0x8429b019,0x022fc19d,0x0228dc28,0xe63138a9,0x36e7d519,0x8c86799b }, { 0xe5159140,0x8905b7d7,0xe861f0ec,0x5dbf4306,0x75a272d1,0x61ce9fe4,0xa5a3e85d,0x5c0c2c12 }, }, }, { { { 0x12378c16,0xddc6dc1b,0x4615622a,0x9e360755,0x6bf9597d,0xb319e52d,0xc12b3b11,0x1136b759 }, { 0xb3488127,0x79f59bd0,0xe751cce3,0x9614aa28,0x0fe9ecb2,0x09f0abc6,0x45168fdd,0x7dec0fcf }, }, { { 0xf34d3977,0xd0e6daff,0x18d0145f,0xd95c410a,0xb6445072,0x086f8c11,0x8159984d,0x11f1f573 }, { 0x00154b71,0x14bc90ea,0x3dc68206,0x937e953f,0xd3a748c7,0xcb829f87,0x79c0b985,0xab98c1b5 }, }, { { 0x7b299740,0x970e6d82,0x713db134,0xf40f467d,0x93faad48,0xcc4ad137,0x1cdd4336,0x53893eb7 }, { 0x3fff7509,0x51ea6f1b,0x21fde8cd,0xd8a132ef,0xea75dc8d,0x3841ce28,0x9485fbd8,0x27728a7e }, }, { { 0x4d6a6a96,0xbe840ca8,0x9a2e613f,0x953b9a77,0x5e7d2586,0x9b8018b7,0xaa1cdc48,0x934c89b9 }, { 0x33d838ed,0xebef1485,0xe2e4ca9f,0x107d2df0,0xb31b2e9d,0x4516d6d6,0xbccaf40a,0x856af4ff }, }, { { 0x738000fc,0x30b3c956,0x7bf03bc1,0x4e1e2770,0xf1fae560,0x57e376ba,0x754cda27,0xdd64e9dd }, { 0xddf4ac12,0xbfaa1c50,0xb91e48f8,0xbe45d022,0x19ca79ff,0x6df89e3e,0x0c2932c9,0x432193eb }, }, { { 0x573aa9b8,0xfce56020,0x829ed224,0xdf7150b8,0xb295f467,0x5aa3227f,0x592c6943,0xd1bd257b }, { 0x2b51d81b,0xc1656849,0x84cf7342,0x75ce33d7,0x396a0e41,0xd0b4922e,0x4bc60526,0x177cc0cc }, }, { { 0x33878c4a,0xef821517,0x8551c055,0xd883d03c,0xe4a91b21,0xf2c69c60,0x7effd516,0xff9845a8 }, { 0x7488df68,0x6ba6847d,0xb65cfebc,0xf1f33746,0xdff5e8dd,0x8fd8a48e,0xa4e2428f,0x835b9af4 }, }, { { 0xacc506c8,0xfebf5ea4,0x8d3a3511,0xa8030f01,0x5cda09c3,0x8f583266,0x9a9df215,0x4d00885c }, { 0x1835aa2c,0xd4fa660e,0xa56ce133,0x45d17aca,0x09fe88a1,0x14c04744,0x9671c7f2,0x3f853c3a }, }, }, { { { 0xf7f82f2a,0xaee9c75d,0x4afdf43a,0x9e4c3587,0x37371326,0xf5622df4,0x6ec73617,0x8a535f56 }, { 0x223094b7,0xc5f9a0ac,0x4c8c7669,0xcde53386,0x085a92bf,0x37e02819,0x68b08bd7,0x0455c084 }, }, { { 0x01cd7f36,0xe8b043c4,0x9419149b,0x5799c8f1,0x48bdfa17,0xd36e2c60,0x88814d84,0x4eafa17a }, { 0x0b2d1c43,0xc778c64a,0xad4543d2,0x5036a58c,0x27efc47b,0xee455315,0x51ec201f,0xa47974d8 }, }, { { 0xab348fa0,0xfb14f217,0x051541dd,0xe0fe2459,0x6c24b4bc,0xc2a22323,0xddeb882d,0x86eac93d }, { 0x4da51cee,0x4ee38095,0x51cfee8a,0x6c26d963,0x8d6f4671,0x5a436f9e,0xcbbc4d8d,0x948f3853 }, }, { { 0xb96214fb,0xcc319d54,0x8febc765,0x71dc987a,0xcdf1c589,0xcda9e496,0x4fbfdb25,0xc6122fc4 }, { 0xb7adfff7,0x3702bd8f,0x1e271f8a,0x08a6e48c,0x8877f91f,0x9031c986,0x8343ac41,0xea205bec }, }, { { 0x99222c03,0x7af41ffc,0x87e5e103,0x948ce77e,0x4859f407,0x3f5e7d78,0xf9fb3aae,0x8bf09eba }, { 0xea72bb54,0xa145f742,0xde20e1d4,0x9c9ec0e1,0xe7e5ba30,0x3b48b1db,0xe2e27a73,0x509cbaaf }, }, { { 0x8d215bfd,0x1686977a,0x7f1462b7,0x8be07426,0xa2d65d24,0x85b6220e,0x1f52629e,0x8b4fcebe }, { 0x475ec26b,0x06eaf00a,0x9d21add6,0xf9d502d0,0xda9254ff,0xf96fb1ca,0xa822157e,0x1f3307a9 }, }, { { 0xd1ae9300,0xb453a2c1,0x75c48280,0x5e1c4704,0xa2f3735b,0x19130bad,0xb7e70fc6,0xe85e2dcb }, { 0x1546e25e,0x72a0dfdd,0xdf8c31bb,0xdeb7e185,0x823c2707,0xc7ba7b5b,0xd51ce0bf,0x451aafa6 }, }, { { 0x0e9d6b84,0xe97be9ed,0xee86b987,0x6f4fffdd,0x13019fda,0x24b4042c,0xc1812137,0xb6d94022 }, { 0xbca7cb21,0xe1bcaa0f,0xec4f382a,0xc23273ea,0x84d77ad3,0x86344788,0x62928723,0x93ff3f41 }, }, }, { { { 0x93c4a205,0xa52f2c36,0xf510a848,0xde1adf89,0x75b929fc,0xe4665570,0x6305bbc4,0xb6e06c51 }, { 0x5db36d05,0x537f4d86,0xa82a9f87,0x63f99419,0xe79ed73b,0xc5e1f126,0x21b323f5,0xbdb4277c }, }, { { 0xfcdcfc44,0x29f315f9,0xd797eb13,0xaf3674c6,0x7bee1e8d,0xe55703a0,0xf5f8ddbf,0xa61727a4 }, { 0x0ef3d60e,0x93b82a7f,0x62f080f3,0xc1b90104,0x2bbae158,0xde692d5a,0x9b02696a,0x03fd9e4f }, }, { { 0xf9e27907,0x92f821f6,0x88d9e4d6,0x771ad4b3,0x6fdfbd68,0x6b395d5d,0x84241c4e,0x0ed9e43f }, { 0x6e78c4fb,0xf13f4f50,0xb8ba1905,0xe9151cfe,0xeb120e0c,0xf5bc0fd8,0xff6b2347,0xb5af874a }, }, { { 0x553faea4,0x93fa154a,0xc96b10c8,0x324a7181,0x7cbf6a9e,0x8c89f34b,0xe8bdb74f,0x27708f23 }, { 0xd0802d2f,0xb21ade75,0xd1965bd1,0xfc6d68b3,0x6cc2c973,0x300225d6,0x49caa4a4,0x575f1861 }, }, { { 0x35b38f54,0x36d05725,0x5caf07ce,0x2e2a860e,0x48fee1f9,0xc55268db,0x076d8f7d,0x57a7e410 }, { 0x245f2809,0x5fa781e6,0xa907eba7,0xdfd76e39,0xbc82dd21,0x194c8a23,0xc8ecad24,0xfd7f0f03 }, }, { { 0xa0f69001,0xa8c081b7,0xb30c8656,0xcfc99d57,0x34b55a4f,0x57dd0cd9,0xae243bf7,0x2ed8369a }, { 0x2dba519e,0x616ca32a,0x5a9244f9,0x9e3959c5,0xb4fdd7de,0xf38a5dba,0x6a90f28a,0x8d916d51 }, }, { { 0xa7a79593,0x46febbf9,0xd25c4979,0x347a7249,0x8cca5cf3,0xf52d9b25,0xf3ef5dbe,0x24799ae2 }, { 0xd0920d55,0xd6388d75,0x9beb1398,0x9994361f,0xd363e300,0x32c3d1a9,0x2ec87b7b,0x9436b526 }, }, { { 0x97445fb2,0x7fb5bf45,0xb2da6510,0xb0844aec,0xab77ae6c,0x09bfe97c,0xaa66dc61,0x7cee417f }, { 0xa8223a26,0x4fffcd61,0x9ed0e31f,0xa667e856,0xf9cf0bb3,0x96d871e7,0xe1e5b9f5,0x3040efeb }, }, }, { { { 0x9076f57b,0x28cf1ab9,0xcecac607,0x030b86e3,0x1cf2a53f,0xb927e350,0x4880c79c,0x20e11856 }, { 0xada7afe6,0x8583bedb,0x40e1b71e,0x9fe0dc9b,0xfb6de997,0x31bdc3e3,0xac437ef7,0xff67b352 }, }, { { 0xd4c20855,0x9e849544,0x0ba0405b,0x62df6c0f,0x9289d72b,0x3fefe10d,0xfbb5c307,0x4eed0b4d }, { 0x8bdffd1f,0x4c087a3f,0x2d34fe3f,0x1136ccd3,0x7fc115c8,0x1941d328,0x8a56693a,0xace0fb28 }, }, { { 0x4b661da4,0x849e3aed,0x64a84a5c,0x940a51ac,0x03061a21,0x8f7c7fd9,0xb86606ce,0xffca2a5b }, { 0xaf9b8a5a,0x8984835e,0xe5687f6f,0x478f87ad,0x48f46c8c,0xa53cc9a1,0x2b71cdc8,0xce1cb0e3 }, }, { { 0x0524722b,0x83d637e6,0xe6a12de7,0xfeb99f12,0x8ed12d20,0x0a45b116,0x7aca84f7,0x42e0437c }, { 0x1fea76c6,0x766939c8,0xaf54265a,0xdbea2a6d,0xc9b4ea3e,0xbafd84cc,0x01d920ee,0x2de1da09 }, }, { { 0x9c8cfd22,0x3cac1e13,0xb636be58,0x4e2b0671,0x0dad354a,0x63653515,0xffc116ab,0xff209ced }, { 0x93bc5535,0x2389b14e,0xc9684b94,0x0d4f4b92,0x4ccff1c8,0x207d41d2,0x469d0f7e,0xad79f397 }, }, { { 0xecdc9426,0xc4ad7478,0x935382a4,0x0e411d07,0x0670dfde,0x9025f824,0xc268d865,0xb30ddefb }, { 0x29c7275e,0xf33e104b,0xaec0238f,0x5b93309c,0xc983d48b,0x4ab3871b,0xc014c153,0x7dbf4fd5 }, }, { { 0x8f4e983e,0xe807e585,0x7017f77c,0x6d9e6ec8,0xd33b4b15,0x58604080,0x0b079ba9,0x33d5f02d }, { 0x91ea37a9,0x6d70db87,0x59630c95,0x7a71aa92,0x55bba1eb,0x73c3d616,0xd39c4784,0x01eb5a76 }, }, { { 0x7bcec904,0xc6f24fc3,0x445cc228,0x49a7cbf2,0xc2ef48c9,0xc499ea8f,0xc51afb00,0x070d96cc }, { 0xa3ab316f,0xf62f4db2,0x34681bac,0x53bdec7b,0x55f0e977,0xfc61582d,0xff0abc21,0x9b915ef5 }, }, }, { { { 0x28523eb3,0xe7dd9ab3,0x556c6c4a,0x351a3a75,0x4f3dcde3,0x46ac1844,0xf8a8b5ab,0xbaffd4eb }, { 0xd5acf387,0x1978300c,0xbf48b6ee,0x24511ccf,0x795ac09c,0x003a8eb3,0xdbc95e83,0x0fa93dc5 }, }, { { 0x9d2157ff,0xae03ad0f,0x7d07f1ee,0xe9817b13,0xe4eb8eee,0x751a418a,0x57874a09,0xcafb6c86 }, { 0x73ce8988,0x16cec081,0x913b9e0e,0x9c6ab445,0x9ab4e2e0,0x01a1cbb9,0xd5c5c67a,0x2adafb1e }, }, { { 0xf4737641,0xd0099b4e,0x66c2e13a,0x1afac0c1,0x36563fb7,0x7778b512,0x441c89ed,0x91b44522 }, { 0xe101bbe0,0xf2512b29,0x6e077d03,0xc9d7dc66,0xb02fb428,0x2c13235a,0x37fda976,0x3f4463bd }, }, { { 0xe51b2cf9,0x4700eb8c,0xa4bf795c,0x37d28a48,0xcf8ea9a3,0x9a879a27,0xfad37ccb,0x894890b2 }, { 0x35979d3b,0x0d187ac8,0xa3bc2ecb,0x498e7116,0xfd48e438,0x88a0abfd,0x7c5b3011,0xd46800ff }, }, { { 0x26dd01df,0xc6a2bab8,0x538fefb9,0x743eff76,0xc8689165,0xa37ea6c7,0xe82db07a,0x296d135d }, { 0xaa3a0dc8,0x4950d320,0xe5e66f60,0xdffaf618,0x76c777ca,0x2b871297,0x92e145e4,0x14054edd }, }, { { 0xcfe63974,0x427abb1c,0x2466a2df,0xd15f33ed,0x55f2bdc5,0xb7c5e382,0xab8e7935,0x9b46d393 }, { 0xfcfb2502,0xabedd0a2,0xf5415950,0xbf7eed5f,0x26b9c5d6,0x0554f01e,0x918b71a2,0xf3ccefe1 }, }, { { 0xd650f5dd,0xc67e6f06,0x2191b2c8,0x54ffe124,0xf19e4a96,0x8f13c2f1,0x91367a31,0x4b0942f3 }, { 0x7aeddc6d,0xc2ea5bcc,0xe4e73a62,0x023c6782,0x5613c25f,0xe055c101,0x366cabc0,0x7432aaa6 }, }, { { 0x7e460d62,0xbcff6026,0x94139936,0xa26e2a1e,0xf8b8c55b,0xa1697678,0xe481aacd,0x463d8e29 }, { 0x8c11217f,0x22665088,0xda469b0a,0x8f9eac14,0x24f85296,0xf1fd6c67,0x7ae2a66e,0x400f734b }, }, }, { { { 0x313728be,0x6cf20ffb,0xa3c6b94a,0x96439591,0x44315fc5,0x2736ff83,0xa7849276,0xa6d39677 }, { 0xc357f5f4,0xf2bab833,0x2284059b,0x824a920c,0x2d27ecdf,0x66b8babd,0x9b0b8816,0x674f8474 }, }, { { 0x5974bb08,0x1583948c,0xaeeadd25,0x75f3b0ca,0x2d2a1086,0x4a661caa,0xce62e80d,0x3f06dcd2 }, { 0x95083c99,0x89655da9,0x5e88f53e,0x83160690,0x931d9b2e,0x985807be,0xce1922db,0x08bc2550 }, }, { { 0xcf15d864,0xc054b569,0xa1cc8d3c,0x2406fdc6,0xbe26cf35,0xafc8ece7,0xc5dedb0d,0x07ef66d7 }, { 0x740907fe,0x54625427,0x1cce4a8b,0x9f470e3b,0x21fd505e,0x06d40c52,0xb89de6a5,0x2db3325d }, }, { { 0xd5c7c27c,0x1c101b8f,0x4bdc794c,0xeb3228b9,0x527e97b7,0xe0c05b31,0x918a1d05,0xec61ff29 }, { 0xd9ddfe51,0xadf01167,0x7690233d,0xfe3c46c4,0xc7759298,0xd0960f82,0xc1b257a1,0x02fa1d3d }, }, { { 0x17c7c05e,0xc695143c,0x2ce5416a,0xb283cb95,0x75f28c0b,0x14f3a72f,0xc06dc460,0x82df4e5f }, { 0xd8fff26b,0xb9613d02,0x842db300,0xcf15d946,0x1217cbd1,0x27521621,0x8c96420a,0xe4e188c9 }, }, { { 0x1d7dd05c,0xc23e42e2,0xc1b00e1a,0xc54f84d4,0xe7d116d1,0x69a3fb20,0xff791761,0x5bb18bcd }, { 0xcb96a309,0x56c549f2,0xa4d2a416,0x95187587,0xd7f58215,0xf81b6dd5,0x2dea4874,0x42ad9217 }, }, { { 0x540368b0,0x80ae1d41,0x8fee949d,0x1324c22f,0x38e47a62,0x7d9e5b8d,0xc12b0c6a,0x261efc9b }, { 0xbdeb011f,0x13ad2559,0xe39b5d30,0x7e340be1,0xd64fff79,0xfdc8852c,0xe386fce9,0x8a9d2adb }, }, { { 0xe46e2050,0xc409332d,0x00f5abf0,0xf5ac2a39,0x316797e2,0x4d6c6698,0xe71e347f,0x9a79bfbf }, { 0x926250d2,0x7a3f4781,0xb6dfde31,0xca94facc,0xb224efa9,0xb6f671f3,0xd316e200,0xe98b4de6 }, }, }, { { { 0x2fd20bae,0x55d4e37a,0xd5b4a811,0x26035672,0x176d343a,0x027bba12,0xc3bcfcd9,0x285250ed }, { 0x54e0ab97,0xf9de455a,0xf1eff323,0x6e9b1a2c,0x1046c171,0x3f7284ad,0xf4ad7ea8,0x7866c086 }, }, { { 0x220ca9a7,0xf0f2efdb,0x817c6662,0x3840e563,0x325161c0,0xb651d0cc,0x9944b44e,0xdbc091d8 }, { 0x16c8e76b,0x4d205883,0xe96192c8,0x6367309f,0x1e4aa5fc,0x2d57926d,0xae856795,0x092d80ea }, }, { { 0xa636a50b,0xcc8876ab,0xabb75196,0x5d2ef616,0xfc78baf6,0x5836fa12,0x45d5a75c,0xf1e3c565 }, { 0xab3128b6,0xdf77914e,0xd22d7a6e,0x6b7fa576,0xf6a5f313,0x6c736a67,0x6e1efce7,0x12b8847a }, }, { { 0x7ef7d72d,0xd6be4fd0,0xf518e8d7,0xad3a6dd5,0x6ee06d88,0xb322489c,0x1e938f23,0x9018baa1 }, { 0xc036ce68,0x1267044f,0x02736aeb,0x4eb56d80,0x43bf00b7,0xe8c147f7,0x71f9c6c9,0xc9c382d8 }, }, { { 0x4e583340,0x517f1321,0x5d34f3b2,0xf45c1b6b,0xfa9b228c,0x6d87cdab,0x81e134a7,0x584d729c }, { 0x74fb24b9,0x72f6e5e9,0x6494c070,0x8f1770a6,0x3030affa,0xcd307c59,0x560d80ab,0x2fdd80a4 }, }, { { 0xb5182e0f,0x08e24680,0xb2ad008b,0x86c0e6ee,0xde8ad36c,0x28a8842d,0xd5478dde,0xa77f7298 }, { 0xc4b82d57,0xa2b37f28,0x2475b42c,0x3368ac6e,0xca515f6a,0x0f1e64bb,0x911b4fcb,0xfa48a69c }, }, { { 0x0235809b,0x92c83ede,0xb5eb8173,0x3c572df0,0xc2383c45,0x1e2e028d,0xc837df7d,0xbaaeae00 }, { 0xc154fd62,0xcd61d8a5,0xa1d2e7e5,0x835c3c42,0xcb49f299,0xb4a2307b,0x3f324b80,0x32578883 }, }, { { 0x536ba602,0x07596c1f,0xff60a8a6,0xdd2f1e9b,0x135004a3,0x63336038,0xfef3fb24,0xedd513bb }, { 0x45dbf993,0x3b8086f9,0x2da5dcac,0x61854d44,0x90f0188b,0x7c592ca2,0x3bb3f7a9,0x257b598c }, }, }, { { { 0x839bb85f,0x320f09c3,0xa050e62c,0x0101fb06,0x9ad53458,0x557582c9,0x1666432b,0x55d5398d }, { 0x4fed936f,0xf7f63118,0x1833d9e1,0xd90d6a7f,0x8ebaa72a,0x059c6a9e,0x49ff8e2d,0x576e2290 }, }, { { 0x4f491155,0xf642e95b,0xfff3c118,0x28b1eb93,0x85d56f8d,0xfd236395,0xae7617cc,0x419a4f03 }, { 0xd489bbc7,0x4b91ba6a,0x074c6889,0xc7ab4a22,0x84804545,0x2e334b14,0x3a6e835b,0x237c2d34 }, }, { { 0x12ea285a,0xc07e2b92,0xf7b910d1,0x9f01c1e6,0xddc0a7a3,0x7858058d,0x814f888b,0x1bb46408 }, { 0x907dc702,0xdc0c8a79,0x992fa94e,0x1e52a34b,0x92b4a4fc,0xa40fd9b8,0xafae1125,0x8a3016bf }, }, { { 0xe49e8f34,0xc0841ba9,0x0b35d0fc,0xc3e61dae,0x31abf75e,0x372304ad,0xdadf2828,0xa2157eb3 }, { 0x89eebef3,0x1a8e9832,0x5b187f4e,0x064bbba3,0xccfbe5a2,0x0fb42577,0xa70df31d,0x0817697d }, }, { { 0xd539785a,0x45012900,0xb8297f01,0x8c88d076,0x78627a54,0xe0973e26,0xe02fa14e,0x04bc4e70 }, { 0xca62e3bb,0x53990475,0x7a3275c3,0x87701772,0x3f3dfb4f,0xa5f5a1cf,0xb8cb4cc3,0x5729f224 }, }, { { 0xb80f772a,0x4e9c6714,0xb96ee4b2,0x4c3758a2,0x669a910e,0x7e54f059,0x3e918ce5,0xb76f4023 }, { 0x72eeff74,0x2b481d7c,0x6b16ae25,0x56ba2419,0xceb09998,0x9618f274,0xa7aed93c,0x05197211 }, }, { { 0xe114cfb5,0x112d4bb1,0xa3d5a6a3,0xd136189a,0xb7df0876,0x587739e1,0xc1f88173,0xd3e492fd }, { 0x697f7045,0xbceb9aa5,0x46754eef,0x9c88f06e,0xbf15fea3,0x1fee2676,0x73f8c48b,0x3604a70a }, }, { { 0x2d5c502e,0xd4eb281c,0x1df14515,0x27fce62d,0x88c376d2,0xfb28652a,0xf409d9e0,0xdc386db7 }, { 0x7bfc1e4f,0x23b47a25,0xcc760b7b,0x372c3db3,0x9d7ad72b,0xe7e69c45,0xcf20188a,0x526c6376 }, }, }, { { { 0xd4441fbb,0x3e0b5d5a,0xa5ed115e,0x9eaa8520,0xedb92555,0x7fb60c55,0x21de21d4,0xb4958c4e }, { 0x4add7118,0x4c7e3c9f,0x2d463841,0x2db9f613,0xc38cb7e1,0xe5c041fb,0x996640ef,0xfcd6e7bf }, }, { { 0x6bd00b59,0xfc4da117,0xbc1a71c7,0x2cdd704d,0xf84df258,0xe77ceb19,0xd5876481,0xa41e9e9e }, { 0xcf2e6f15,0xe8dd28cd,0x3dd4359f,0x5cd25356,0xefc739b8,0xda4e1ed1,0x3b30f2b6,0x50dc3172 }, }, { { 0x371f07f1,0x5aed684c,0x30d70c4a,0x878cedb7,0x4606684b,0x232ea0b6,0x7b20444d,0xb3a43f5e }, { 0xe01dfda5,0x53cd22f4,0xcdcb0ecc,0xec7877a0,0x69975ee7,0x41832273,0x248fd6b8,0x34c64f5b }, }, { { 0x401403f9,0xab0c96ef,0xbf58e793,0x32a6d94e,0x7d6886df,0x2c5f09a8,0x94cc35ac,0xc02a0f2e }, { 0xa7ed80b0,0x21f59639,0x6000adb5,0xabb91306,0x7c5cd473,0x0f716d45,0x8e491aae,0x8ebaa8a1 }, }, { { 0x6b559d49,0xff7c97a4,0x0ddc9b44,0x48e1b469,0x84c008b1,0xc2662ffd,0xa46be14a,0x452e9869 }, { 0xda0d6ba7,0x747c6046,0x3b1ee425,0x5982856c,0x6761ee52,0xf5c0057b,0x195f80d0,0x8c5e8a8f }, }, { { 0x2975566a,0xfee1fa91,0x39c2b06f,0x6af2b72d,0x12b7d65f,0x276c8d63,0xd27219b8,0x9f170a79 }, { 0xecf3e6d8,0x5a576c88,0xf5db695f,0xa0a6a793,0x7d4e8578,0xc799b007,0xe8864a0c,0x54a6aa2d }, }, { { 0x53ce94da,0x537a67eb,0x56829e60,0x8bb24f42,0x3ac474ee,0x51cde0dc,0x8c6d62bb,0x19a7f5d4 }, { 0x3025e7bb,0x73044716,0xae25eb03,0xfb625306,0x4200a2e8,0x2f6a51d4,0xa93075c3,0xa2504ba7 }, }, { { 0x5f7a8d33,0xa6917387,0xeca47658,0x9a6c22e3,0x4913e26b,0x1a765de1,0x0d926557,0xb8d550a1 }, { 0xfec3abee,0x1777b77b,0x586f670d,0x541c3aaf,0x7073e188,0x7d1790c9,0xed161c30,0xded908e0 }, }, }, { { { 0xe895df07,0x6a703f10,0x01876bd8,0xfd75f3fa,0x0ce08ffe,0xeb5b06e7,0x2783dfee,0x68f6b854 }, { 0x78712655,0x90c76f8a,0xf310bf7f,0xcf5293d2,0xfda45028,0xfbc8044d,0x92e40ce6,0xcbe1feba }, }, { { 0x80c15fc7,0x9d10531d,0x72e99258,0x666623f1,0x0e55e541,0xf3cf09cd,0x8c1c0d5f,0xe1b40c54 }, { 0x2a318024,0x17ca8468,0xde9bb624,0x00924520,0x07f4708f,0xf47d8112,0x3f384ff9,0x1ea8aaac }, }, { { 0x3aa89692,0xe418fa23,0xf94c2308,0x713b08d6,0x2418a776,0xe996e641,0x81668f4d,0x3bdfca71 }, { 0x1a510308,0x93dbdb43,0x45e2ef13,0xc7dc0c63,0xaeda5333,0x49426151,0x565167b8,0x0a721f68 }, }, { { 0x831eba7e,0xa25b597e,0x70989e56,0xf1e49c25,0xbc72a37e,0x4201bba7,0xba2a02df,0x963e315d }, { 0x8e7c79c0,0x3dfa4b32,0xc0d5f13c,0x869d0ae5,0x52167e11,0xa2a3cb7c,0xc84a3935,0x5c02ba13 }, }, { { 0xc37ea1d7,0x079b2342,0xf89aae4d,0xb2393658,0x518d9e4f,0x35328552,0xb7521056,0xaca8ac95 }, { 0x9ba973a2,0xddefb104,0x413935e9,0xe1edbfdc,0x92872189,0x94304c4b,0xdd75cc20,0x7f12c567 }, }, { { 0xed8d3763,0x02d58a93,0xb3d25d44,0x163c1b41,0x7c82521e,0x8c082120,0x5d5941a2,0x79cc3216 }, { 0xbc5f6bfc,0x36aab0f0,0x81d3626b,0xadabc175,0x942ffc3e,0x27cc1d59,0x073053d0,0x9cf893e8 }, }, { { 0xd3245b7f,0x5db2781c,0x90597fbf,0xa37d6696,0x98d85311,0x206c21af,0xdb667c0e,0xfa904704 }, { 0x4ddf6bef,0xef833df1,0x624f1d47,0xcb9eecd2,0x40f1c189,0x2d6fa3ed,0x74a836a4,0x1a1c8c36 }, }, { { 0x348560a9,0x6c38ba21,0x626f217c,0xb3e960fd,0x8640da20,0x7be36947,0x05994393,0x6fa2d990 }, { 0xbae52757,0xb9609377,0xc551c5ee,0xfe39cdab,0xa6985c3a,0x3754a352,0x915ac7e8,0x9eba0cc3 }, }, }, { { { 0x8e6d8483,0xcec9b4d7,0x46967f0d,0x82f2d7a8,0x1b6ee945,0x2958f49f,0xa33d563d,0x9c39cb60 }, { 0x6b2c50fb,0x94b3356f,0x3dbe4368,0xbbade52f,0xbca16546,0x03d196b7,0xe493e510,0xf097bf1e }, }, { { 0x6c7f27bf,0x1363784b,0x36fe96a7,0x41067a63,0x3b323ed1,0x33e8a4eb,0x94d7802f,0xcbc809ae }, { 0xcaa30fa6,0xecc69d63,0x903daa9a,0x07ad4dd8,0xdfdcdb05,0xd7aaceb5,0x18115c85,0xbd9cbb0e }, }, { { 0x47a14dda,0xf55c31f8,0x674b4df3,0x606d0429,0x24013083,0x443768f7,0x90eadad7,0x18f37acc }, { 0x25ac8364,0xe22fcdc3,0x8a8536cb,0x77d8f7c7,0xee1bcd0b,0xd7bbffec,0xaa092c26,0x2f944bba }, }, { { 0x60a81cad,0xbe5cc187,0xb43b223b,0x822c3c1c,0x49506cf4,0x37151ef3,0xc6e52618,0x8bfbee24 }, { 0x5ff0013e,0x6986b951,0xacfd2376,0x8d9fc8ec,0xe71be151,0x0cfd289f,0xa3409b59,0xd75127ca }, }, { { 0xcc7d59be,0x5674e8e8,0x8e0932fb,0x98ea1858,0x4772736b,0x4ec5ffee,0x281e79da,0x5413358c }, { 0xe4f80590,0x2d7ea1f6,0xc900b367,0x53e25b15,0x0164515a,0xe7c48fd2,0x969cb024,0x680fd4de }, }, { { 0x4f58b08e,0xc2284980,0x171b57dd,0xdc769ced,0x2fd64cac,0xfeb5c7e7,0x27ffec73,0x0b1c1b03 }, { 0xf5023ab2,0x0f1c83ac,0xf7b955aa,0x0d8beb6c,0x870a6a7c,0x95a16812,0x8d354127,0x6e8fb87a }, }, { { 0x876051a8,0x8eb80c9f,0x3a457ea5,0xbed77396,0xc1b85280,0x5dcfc1a3,0x91b194f0,0x4e2fd126 }, { 0xe9cc9005,0x6afec74f,0x92c4fe2e,0xebb8baa5,0x508a31bc,0x371b35a1,0xf5f4fbb2,0x122abbdb }, }, { { 0x2fb33b93,0xc2111578,0xd63afc5c,0x76b07b2b,0x1041e8f1,0xc0787942,0xbadbe124,0xb8181bc6 }, { 0x7a54ead6,0x911a5e16,0x4bf627dc,0xf9acc5b1,0xe967dd75,0xdeef104b,0x18cce7ca,0xbb012f51 }, }, }, { { { 0xa44e8de3,0x606304b1,0x2ecc1e07,0x5c08966a,0x08bd1791,0x3a5a7dcf,0x468810b7,0xf50b99b7 }, { 0xdb7f3588,0x4a3f3ba6,0x21721e85,0xe975f18d,0x2dedcebb,0x8789973a,0x55f18f0c,0xe2b5061e }, }, { { 0x60dc749c,0xa9103a2d,0xa27ad800,0xd83321fb,0x20a46e97,0xb09c7430,0x227198c9,0x2a148954 }, { 0xf0fa3cf2,0xf2e1f28f,0xc39b6f01,0xbef92dcd,0xa37608c4,0xea3c2440,0x8974e422,0xaa215a18 }, }, { { 0x82accf8b,0xdddc6b6b,0x82816fa7,0x81d29991,0x51394304,0x645f30e2,0xa5505770,0x598d7f61 }, { 0x0f6cb808,0x1b84673c,0x353540b9,0xd2289a8f,0xb273ebca,0x546c5162,0x4f8f2609,0x9f3121f7 }, }, { { 0xdd962abc,0x1e0cc372,0x8e87bdcc,0x1ebb7d20,0x8a642c87,0xcc7a3ec5,0xf4cc4453,0x0a5a4878 }, { 0x9e2cc3fa,0xe85daabc,0x8e50a9fa,0x5832a64c,0xf2903017,0x4d72b14d,0x88b0dc57,0xf7148b22 }, }, { { 0x64aa7b3e,0x9fb39a54,0x056c9cea,0x13c4ef1b,0x541c5810,0x64fd2091,0xf49f4c4d,0x715a2012 }, { 0xbc7d081d,0xd9a33944,0xa88b47d0,0x421bc588,0x8a913b62,0x1f79288f,0xaa606c0a,0x5922b3b1 }, }, { { 0x18ae2298,0x85c3fa70,0x81b3e0d6,0xcb07adef,0x89578652,0xaa743567,0x1ac87d03,0xf8093ca1 }, { 0xd35c93b0,0x06c36192,0x6db6006f,0xe4509a0f,0x307e9cf3,0xb16129ec,0x6ef49c10,0x32074f21 }, }, { { 0x620db220,0xd1bdb697,0x1687ace4,0xc71ccb10,0x7fb87876,0xc409ce89,0x6aa9b125,0x49ec8c5e }, { 0x677338c2,0x99b8aca0,0xe53b9cce,0x842c3073,0x865f5429,0x3da9cc34,0xe5ea629b,0x99a97d4f }, }, { { 0x128aa5cd,0x93925b40,0xed9768e7,0xceceaf38,0xdd6c93fc,0x20feb9fb,0x5a92f1b3,0xf5e3efcb }, { 0xceaa0fb4,0xab2799c7,0xb110cec9,0x84e0a6f4,0xeb07bd2b,0x4e51e2df,0x9bf3de05,0x76cfa289 }, }, }, { { { 0x885fbd44,0xc0747129,0x9f26267a,0x89c2caa3,0x16d5222c,0xe05471ce,0xd9ab5905,0x9bbf06da }, { 0x7a1d3e88,0xa3447dfa,0x15036ed2,0xc0d4bddc,0x0a6f47e8,0x6755daf3,0x4de120a3,0x1bcc7fa8 }, }, { { 0xd8490005,0x3ce59840,0xa4c5181f,0x90599d29,0x2fbfb78c,0x4adaab19,0xbbedf416,0xf8ef49b4 }, { 0xbd62afde,0x1a462e83,0x37deee67,0x58f21288,0x65a4b73a,0x02bbd776,0xee972164,0x979e67a7 }, }, { { 0xb4a7b506,0x8b7ae792,0xe7860be0,0x22758bba,0xe7500ee9,0x429cfb2a,0x5b3b5bd3,0x646ff7f6 }, { 0x2b36f946,0xc979c125,0xc08e6995,0x492dfc4f,0x804a8fe8,0x5a61e331,0x064a18a5,0xbc112a9d }, }, { { 0xf87b338b,0xeddeea19,0x2e04eba7,0xfe44d4fc,0xd66d9101,0x1b3a9b22,0xd2c743f0,0xbe63ab41 }, { 0x91b00a85,0x9d212f25,0x45930daf,0x7053cb7e,0xb90b353b,0x8d3021bb,0x5e22f475,0x1f125f14 }, }, { { 0xc103b553,0x154b71c9,0x83385a80,0xbe60ea27,0xb27e507e,0x9d0c1000,0xa617d39a,0x7cc0547a }, { 0xcd45a526,0x5799cba3,0xac228b7d,0x00185a0a,0x39fc94c4,0xbdd728cb,0x2328045a,0x7b329ebd }, }, { { 0x58583600,0x98904595,0x723b5310,0x6beb2ffe,0xebc5fd4a,0xe62280c7,0x9efe26de,0x1516534b }, { 0xc3a0131b,0x08428e0c,0xe74e0c09,0x2bab43c9,0xecaa5c59,0xb0e74299,0xa7ce88ea,0x60e343b6 }, }, { { 0x19e717a4,0xac2ef454,0xacf01b81,0x68da2bda,0x6daee154,0x0563ed53,0x0bc1db4e,0x94685199 }, { 0xb526dea3,0xa75f0fd1,0xf70acd9c,0x57999590,0xb2667dc0,0xb3b8d0e6,0x0dc591a8,0xca5c7842 }, }, { { 0x113bd81e,0x44342466,0xcaebe721,0x578042f6,0x286eb6e2,0xaeda82df,0xb05d00e6,0xfc1d6f42 }, { 0x5d7ee1ea,0x41e3d441,0x546dc8dc,0x3976b531,0x7fd76ce6,0x93d74bd9,0xac02382a,0x6d2cdf43 }, }, }, { { { 0xc420924a,0x39912513,0x487cab57,0x00b60867,0x48adde64,0x5afb62de,0x1e67a44b,0x0b197a2e }, { 0xd1045a5f,0xb9e53b38,0xb8bfb340,0x0f5f54ef,0x67c641fc,0x566f385d,0xf39453e2,0xa4a03b30 }, }, { { 0x81868ba1,0x23787197,0x1d53f9e2,0x5c1fdf97,0xa4afba59,0x504023d8,0xd10a793b,0x1de4d76c }, { 0xcdde321b,0xfc55fa88,0x7a4e620d,0x988c00b9,0x3ed71df4,0xbecb359b,0x743848a6,0x71821762 }, }, { { 0x117f3422,0xc6771b1e,0x58fef2b1,0xe0ce9381,0x061a94c5,0x10237e11,0x50aa0677,0x1f256f8c }, { 0x9f4262f0,0xaa1697ba,0x5d459464,0x22c6ae05,0x73032f9d,0x756df03e,0x5ba69832,0x20d65bf4 }, }, { { 0xbbdfb796,0x4056283e,0x43a1cf74,0x4f128204,0x90d8319a,0xcfc407f3,0x096496c0,0x6eb5732a }, { 0x13896dcc,0x1dfed669,0x4bd0ab9a,0x367f8387,0xfc3cdce0,0x98a505a9,0x26b59384,0xd77d1c93 }, }, { { 0x40410675,0x13d7d106,0xd49d411e,0xca1dc00f,0x476f4cf0,0xf3e15132,0x1f0aa42e,0x43b373d5 }, { 0x59220b1e,0x6663aca4,0x338b9786,0x457bf8fb,0x0b40585b,0x014a2f9c,0xb81f710c,0xffec0d9a }, }, { { 0xa2ef15a8,0xae2c08a8,0x4a125c0e,0x7c17c217,0xc5ca8632,0x35bb9be6,0xecd8f442,0x76b5e935 }, { 0xeb1b6a5d,0x4986841d,0x37a5fcfe,0x41db04db,0x3072cacc,0x94b887f2,0x245cecaf,0x432f257c }, }, { { 0x79edd558,0x1bc52bfb,0x354cc703,0x4e5da8bd,0xec5dcd85,0x3651639d,0xadfc3716,0x0f4b0083 }, { 0x8a632321,0x3e636c8a,0x23d4e656,0x37f47218,0x134cd659,0x6faaadff,0xcd724765,0x8dc30254 }, }, { { 0xff83ab89,0x79b2929f,0x39d174f8,0x9c6c6f9d,0x6875f641,0xe08530e0,0x3df2d2b6,0x518c254c }, { 0x3594ead2,0x9ecafd1a,0x0eba0eee,0x1c734735,0xc8e2877f,0x33f1250f,0xc9594300,0xbf8462a0 }, }, }, tinyssh-20180201/crypto/gep256.base.py000066400000000000000000000030301322704306500172630ustar00rootroot00000000000000p = 2**256 - 2**224 + 2**192 + 2**96 - 1 basepx = 0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296 basepy = 0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5 B = (basepx, basepy) def expmod(b, e, m): if e == 0: return 1 t = expmod(b, e/2, m)**2 % p if e & 1: t = (t * b) % p return t def inv(x): return expmod(x, p - 2, p) def add(P, Q): """ """ x1 = P[0] y1 = P[1] x2 = Q[0] y2 = Q[1] x3 = ((y2-y1)**2)*inv((x2-x1)**2)-x1-x2 y3 = (2*x1+x2)*(y2-y1)*inv(x2-x1)-((y2-y1)**3)*inv((x2-x1)**3)-y1 return [x3 % p, y3 % p] def dbl(P): """ """ x1 = P[0] y1 = P[1] x3 = (3*x1**2-3)**2 * inv((2*y1)**2)-x1-x1 y3 = (2*x1+x1)*(3*x1**2-3)*inv((2*y1))-(3*x1**2-3)**3*inv((2*y1)**3)-y1 return [x3 % p, y3 % p] b = [] b.append(B) tmp = dbl(B) b.append(tmp) for i in range(6): tmp = add(tmp, B) b.append(tmp) def radix32(r): o = "" r = r % p for i in range(8): o += "0x%08x," % (r & 0xffffffff) r = r >> 32 return o[:-1] for i in range(33): print "{" for j in range(0, 8): print " {" print " {",radix32(b[j][0]),"}," print " {",radix32(b[j][1]),"}," print " }," print "}," for j in range(0, 8): for k in range(8): b[j] = dbl(b[j]) tinyssh-20180201/crypto/gep256.c000066400000000000000000000215021322704306500161500ustar00rootroot00000000000000/* 20140918 Jan Mojzis Public domain. */ #include "cleanup.h" #include "fe.h" #include "fep256.h" #include "gep256.h" /* b = 0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b */ static const fe paramb = { 0x27d2604b, 0x3bce3c3e, 0xcc53b0f6, 0x651d06b0, 0x769886bc, 0xb3ebbd55, 0xaa3a93e7, 0x5ac635d8 }; /* XXX - fake neutral point at infinity */ static void neutral(gep256 p) { fe_0(p[0]); fe_0(p[1]); fe_0(p[2]); } static void neutral_precomp(gep256_precomp p) { fe_0(p[0]); fe_0(p[1]); } /* p = q */ static void copy(gep256 p, gep256 q) { fe_copy(p[0], q[0]); fe_copy(p[1], q[1]); fe_copy(p[2], q[2]); } /* if (b) p = q; */ static void cmov(gep256 p, gep256 q, crypto_uint32 b) { fe_cmov(p[0], q[0], b); fe_cmov(p[1], q[1], b); fe_cmov(p[2], q[2], b); } static void cmov_precomp(gep256_precomp p, gep256_precomp q, crypto_uint32 b) { fe_cmov(p[0], q[0], b); fe_cmov(p[1], q[1], b); } /* if (a == b) return 1; else return 0; */ static unsigned char equal(unsigned char a, unsigned char b) { unsigned char x = a ^ b; crypto_uint32 y = x; y -= 1; y >>= 31; return y; } /* if (p == oo) return 1; else return 0 */ static int isneutral(gep256 p) { return fe_iszero3(p[0], p[1], p[2]); } static int isneutral_precomp(gep256_precomp p) { return fe_iszero2(p[0], p[1]); } static void madd(gep256 out, gep256 p, gep256_precomp qp) { gep256 q, o; fe ZZ1, S2, R, RR, U2, H, HH, HHH, t0, t1; fe_copy(q[0], qp[0]); fe_copy(q[1], qp[1]); fe_1(q[2]); fep256_sq(ZZ1, p[2]); fep256_mul(S2, ZZ1, p[2]); fep256_mul(S2, S2, q[1]); /* S2 = Y2 * Z1^3 */ fep256_sub(R, p[1], S2); /* R = X1 - S2 */ fep256_mul(U2, q[0], ZZ1); /* U2 = X2 * Z1^2 */ fep256_sub(H, p[0], U2); /* H = X1 - U2 */ fep256_mul(o[2], H, p[2]); /* Z3 = H * Z1 */ fep256_sq(RR, R); /* R^2 */ fep256_sq(HH, H); /* H^2 */ fep256_mul(HHH, HH, H); /* H^3 */ fep256_mul(t0, p[0], HH); /* X1 * H^2 */ fep256_mul2(t1, t0); /* 2 * X1 * H^2 */ fep256_sub(o[0], RR, t1); fep256_add(o[0], o[0], HHH); /* X3 = R^2 + H^3 - 2 * X1 * H^2 */ fep256_sub(o[1], t0, o[0]); fep256_mul(o[1], R, o[1]); fep256_mul(t1, p[1], HHH); fep256_sub(o[1], o[1], t1); /* Y3 = R * (X1 * H^2 - X3) - X1 * H^3 */ /* if (p = neutral) o = q */ /* if (q = neutral) o = p */ cmov(o, q, isneutral(p)); cmov(o, p, isneutral_precomp(qp)); copy(out, o); cleanup(ZZ1); cleanup(S2); cleanup(t0); cleanup(o); cleanup(R); cleanup(RR); cleanup(U2); cleanup(t1); cleanup(H); cleanup(HH); cleanup(HHH); cleanup(q); } void gep256_add(gep256 out, gep256 p, gep256 q) { fe ZZ1, ZZ2, S1, S2, R, RR, U1, U2, H, HH, HHH, t0, t1; gep256 o; fep256_sq(ZZ1, p[2]); fep256_sq(ZZ2, q[2]); fep256_mul(S1, ZZ2, q[2]); fep256_mul(S2, ZZ1, p[2]); fep256_mul(S1, S1, p[1]); /* S1 = Y1 * Z2^3 */ fep256_mul(S2, S2, q[1]); /* S2 = Y2 * Z1^3 */ fep256_sub(R, S1, S2); /* R = S1 - S2 */ fep256_mul(U1, p[0], ZZ2); /* U1 = X1 * Z2^2 */ fep256_mul(U2, q[0], ZZ1); /* U2 = X2 * Z1^2 */ fep256_sub(H, U1, U2); /* H = U1 - U2 */ fep256_mul(o[2], H, p[2]); fep256_mul(o[2], o[2], q[2]); /* Z3 = H * Z1 * Z2 */ fep256_sq(RR, R); /* R^2 */ fep256_sq(HH, H); /* H^2 */ fep256_mul(HHH, HH, H); /* H^3 */ fep256_mul(t0, U1, HH); /* U1 * H^2 */ fep256_mul2(t1, t0); /* 2 * U1 * H^2 */ fep256_sub(o[0], RR, t1); fep256_add(o[0], o[0], HHH); /* X3 = R^2 + H^3 - 2 * U1 * H^2 */ fep256_sub(o[1], t0, o[0]); fep256_mul(o[1], R, o[1]); fep256_mul(t1, S1, HHH); fep256_sub(o[1], o[1], t1); /* Y3 = R * (U1 * H^2 - X3) - S1 * H^3 */ /* if (p = neutral) o = q */ /* if (q = neutral) o = p */ cmov(o, q, isneutral(p)); cmov(o, p, isneutral(q)); copy(out, o); cleanup(ZZ1); cleanup(ZZ2); cleanup(S1); cleanup(S2); cleanup(R); cleanup(RR); cleanup(U1); cleanup(U2); cleanup(H); cleanup(HH); cleanup(HHH); cleanup(t0); cleanup(t1); cleanup(o); } static void dbl(gep256 p, gep256 q) { gep256 o; fe t0, t1, t2, S, S2, M, ZZ, U; fep256_mul2(t0, q[1]); /* t0 = 2 * Y1 */ fep256_mul2(t1, t0); /* t1 = 4 * Y1 */ fep256_mul(t2, t0, t1); /* t2 = 8 * Y1^2 */ fep256_sq(U, t2); /* U = 64 * Y1^4 */ fep256_mul(S, t2, q[0]); fep256_mul2(S, S); /* S = 16 * X * Y^2 */ fep256_mul2(S2, S); /* S2 = 32 * X * Y^2 */ fep256_mul(o[2], t1, q[2]); /* Z3 = 4 * Y1 * Z1 */ fep256_sq(ZZ, q[2]); fep256_add(t1, q[0], ZZ); fep256_sub(t2, q[0], ZZ); fep256_mul(M, t1, t2); fep256_mul6(M, M); /* M = 6 * (X1^2 - Z1^4) */ fep256_sq(o[0], M); fep256_sub(o[0], o[0], S2); /* X3 = M^2 - 2S */ fep256_sub(o[1], S, o[0]); fep256_mul(o[1], o[1], M); fep256_sub(o[1], o[1], U); /* Y3 = M * (S - X3) - 64 * Y1^4 */ copy(p, o); cleanup(t0); cleanup(t1); cleanup(t2); cleanup(o); cleanup(S); cleanup(S2); cleanup(M); cleanup(ZZ); cleanup(U); } /* checks if point is on curve x^3 - 3x + b = y^2 */ static int checkaffine(gep256 p) { fe tmpx, tmpy; int ret = -1; fep256_sq(tmpx, p[0]); fep256_mul(tmpx, tmpx, p[0]); /* x ^ 3 */ fep256_mul3(tmpy, p[0]); /* 3x */ fep256_sub(tmpy, paramb, tmpy); /* -3x + b */ fep256_add(tmpx, tmpx, tmpy); /* x ^ 3 - 3x + b */ fep256_sq(tmpy, p[1]); /* y ^ 2 */ fep256_sub(tmpx, tmpx, tmpy); /* y ^ 2 = x ^ 3 - 3x + b */ if (!fep256_isnonzero(tmpx)) ret = 0; cleanup(tmpx); cleanup(tmpy); return ret; } /* conversion from Jacobian coordinates into affine form */ static int toaffine(gep256 p) { fe invz, tmp; if (!fep256_isnonzero(p[2])) return -1; fep256_inv(invz, p[2]); fe_copy(tmp, invz); fep256_sq(invz, invz); fep256_mul(p[0], p[0], invz); fep256_mul(invz, invz, tmp); fep256_mul(p[1], p[1], invz); fe_1(p[2]); cleanup(invz); cleanup(tmp); return checkaffine(p); } int gep256_tobytes(unsigned char *out, gep256 in) { if (toaffine(in) != 0) return -1; fep256_tobytes(out , in[0]); fep256_tobytes(out + 32, in[1]); return 0; } int gep256_frombytes(gep256 out, const unsigned char *in) { fep256_frombytes(out[0], in ); fep256_frombytes(out[1], in + 32); fe_1(out[2]); return checkaffine(out); } /* point multiplication using windowed method */ void gep256_scalarmult(gep256 o, gep256 q, const unsigned char *a) { long long i, j; gep256 t[16], sp, p; unsigned char e[64]; for (i = 0; i < 32; ++i) { e[2 * i + 0] = (a[31 - i] >> 0) & 0x0f; e[2 * i + 1] = (a[31 - i] >> 4) & 0x0f; } neutral(p); /* precompute points */ copy(t[0], p); copy(t[1], q); for (i = 2; i < 16; ++i) { if ((i & 1) == 0) dbl(t[i], t[i / 2]); else gep256_add(t[i], t[i - 1], q); } for (i = 63; i >= 0; --i) { for (j = 0; j < 4; ++j) dbl(p, p); for (j = 0; j < 16; ++j) cmov(sp, t[j], equal(e[i], j)); gep256_add(p, p, sp); } copy(o, p); cleanup(p); cleanup(t); cleanup(sp); cleanup(e); } static gep256_precomp base[33][8] = { #include "gep256.base" }; static unsigned char isnegative(signed char b) { crypto_uint32 x = b; x >>= 31; return x; } static void select(gep256_precomp t, long long pos, signed char b) { gep256_precomp minust; unsigned char bnegative = isnegative(b); unsigned char babs = b - (((-bnegative) & b) << 1); long long i; neutral_precomp(t); for (i = 0; i < 8; ++i) cmov_precomp(t, base[pos][i], equal(babs, i + 1)); fe_copy(minust[0], t[0]); fep256_neg(minust[1], t[1]); cmov_precomp(t, minust, bnegative); } /* base-point multiplication using precomputed tables */ void gep256_scalarmult_base(gep256 p, const unsigned char *a) { long long i; gep256_precomp sp; signed char e[65], carry; neutral(p); for (i = 0; i < 32; ++i) { e[2 * i + 0] = (a[31 - i] >> 0) & 0x0f; e[2 * i + 1] = (a[31 - i] >> 4) & 0x0f; } e[64] = 0; carry = 0; for (i = 0; i < 65; ++i) { e[i] += carry; carry = e[i] + 8; carry >>= 4; e[i] -= carry << 4; } for (i = 1; i < 65; i += 2) { select(sp, i / 2, e[i]); madd(p, p, sp); } for (i = 0; i < 4; ++i) dbl(p, p); for (i = 0; i < 65; i += 2) { select(sp, i / 2, e[i]); madd(p, p, sp); } cleanup(sp); cleanup(e); } tinyssh-20180201/crypto/gep256.h000066400000000000000000000007171322704306500161620ustar00rootroot00000000000000#ifndef _GEP256_H____ #define _GEP256_H____ #include "fe.h" typedef fe gep256[3]; /* X, Y, Z */ typedef fe gep256_precomp[2]; /* X, Y */ extern void gep256_scalarmult(gep256, gep256, const unsigned char *); extern void gep256_scalarmult_base(gep256, const unsigned char *); extern int gep256_tobytes(unsigned char *, gep256); extern int gep256_frombytes(gep256, const unsigned char *); extern void gep256_add(gep256, gep256, gep256); #endif tinyssh-20180201/crypto/randombytes.c000066400000000000000000000014041322704306500174660ustar00rootroot00000000000000/* taken from nacl-20110221, from randombytes/devurandom.c, added close-on-exec */ #include #include #include #include #include "randombytes.h" /* it's really stupid that there isn't a syscall for this */ static int fd = -1; void randombytes(unsigned char *x,unsigned long long xlen) { int i; if (fd == -1) { for (;;) { #ifdef O_CLOEXEC fd = open("/dev/urandom",O_RDONLY | O_CLOEXEC); #else fd = open("/dev/urandom",O_RDONLY); fcntl(fd,F_SETFD,1); #endif if (fd != -1) break; sleep(1); } } while (xlen > 0) { if (xlen < 1048576) i = xlen; else i = 1048576; i = read(fd,x,i); if (i < 1) { sleep(1); continue; } x += i; xlen -= i; } } tinyssh-20180201/crypto/randombytes.h000066400000000000000000000003261322704306500174750ustar00rootroot00000000000000#ifndef _RANDOMBYTES_H____ #define _RANDOMBYTES_H____ extern void randombytes(unsigned char *, unsigned long long); #ifndef randombytes_implementation #define randombytes_implementation "tinynacl" #endif #endif tinyssh-20180201/crypto/sc25519.c000066400000000000000000000027741322704306500161650ustar00rootroot00000000000000/* - based on tweetnacl 20140427 (http://tweetnacl.cr.yp.to/software.html) */ #include "crypto_int64.h" #include "crypto_uint32.h" #include "crypto_uint64.h" #include "cleanup.h" #include "sc25519.h" #define FOR(i,n) for (i = 0;i < n;++i) static const crypto_uint64 L[32] = {0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10}; static void modL(unsigned char *r,crypto_int64 x[64]) { crypto_int64 carry,i,j; for (i = 63;i >= 32;--i) { carry = 0; for (j = i - 32;j < i - 12;++j) { x[j] += carry - 16 * x[i] * L[j - (i - 32)]; carry = (x[j] + 128) >> 8; x[j] -= carry << 8; } x[j] += carry; x[i] = 0; } carry = 0; FOR(j,32) { x[j] += carry - (x[31] >> 4) * L[j]; carry = x[j] >> 8; x[j] &= 255; } FOR(j,32) x[j] -= carry * L[j]; FOR(i,32) { x[i+1] += x[i] >> 8; r[i] = x[i] & 255; } } void sc25519_reduce(unsigned char *s) { crypto_int64 t[64], i; for (i = 0; i < 64; ++i) t[i] = s[i]; for (i = 0; i < 64; ++i) s[i] = 0; modL(s, t); cleanup(t); } void sc25519_muladd(unsigned char *s, const unsigned char *a, const unsigned char *b, const unsigned char *c) { crypto_int64 t[64], i, j; for (i = 0; i < 64; ++i) t[i] = 0; for (i = 0; i < 32; ++i) for (j = 0; j < 32; ++j) { t[i + j] += (crypto_int64)a[i] * (crypto_int64)b[j]; } for (i = 0; i < 32; ++i) t[i] += c[i]; modL(s, t); cleanup(t); } tinyssh-20180201/crypto/sc25519.h000066400000000000000000000003261322704306500161610ustar00rootroot00000000000000#ifndef _SC25519_H____ #define _SC25519_H____ extern void sc25519_reduce(unsigned char *); extern void sc25519_muladd(unsigned char *, const unsigned char *, const unsigned char *, const unsigned char *); #endif tinyssh-20180201/crypto/scp256.c000066400000000000000000000135111322704306500161630ustar00rootroot00000000000000/* 20140918 Jan Mojzis Public domain. */ #include "uint32_pack_big.h" #include "uint32_unpack_big.h" #include "fe.h" #include "cleanup.h" #include "scp256.h" /* m = 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551L */ static const fe m = { 0xfc632551, 0xf3b9cac2, 0xa7179e84, 0xbce6faad, 0xffffffff, 0xffffffff, 0x00000000, 0xffffffff }; /* m2 = bce6faada7179e84f3b9cac2fc63254f */ static const unsigned char m2[32] = { 0x0b, 0x0c, 0x0e, 0x06, 0x0f, 0x0a, 0x0a, 0x0d, 0x0a, 0x07, 0x01, 0x07, 0x09, 0x0e, 0x08, 0x04, 0x0f, 0x03, 0x0b, 0x09, 0x0c, 0x0a, 0x0c, 0x02, 0x0f, 0x0c, 0x06, 0x03, 0x02, 0x05, 0x04, 0x0f }; /* ml[0] = (2^256 * 2^0) % m; ml[1] = (2^256 * 2^32) % m; ml[2] = (2^256 * 2^64) % m; ... */ static const fe ml[8] = { { 0x039cdaaf, 0x0c46353d, 0x58e8617b, 0x43190552, 0x00000000, 0x00000000, 0xffffffff, 0x00000000 }, { 0x00000000, 0x039cdaaf, 0x0c46353d, 0x58e8617b, 0x43190552, 0x00000000, 0x00000000, 0xffffffff }, { 0xfc632551, 0xf756a571, 0xb6faae70, 0x22159165, 0x9c0166cd, 0x43190552, 0x00000001, 0xfffffffe }, { 0xf8c64aa2, 0xe7739585, 0x51cc17b8, 0x89b10547, 0x652e96b7, 0x9c0166cd, 0x43190554, 0xfffffffe }, { 0xfc632551, 0xf01cf013, 0x9ad16947, 0x679b73e1, 0xccca0a99, 0x652e96b7, 0x9c0166ce, 0x43190552 }, { 0x609a770e, 0x74d1cb7b, 0xadae2385, 0xa83f3999, 0x79318f1c, 0xccca0a99, 0x22159165, 0xdf1a6c20 }, { 0x4a40048f, 0x227511de, 0x0a16ad07, 0x27f60529, 0xe2b8f21e, 0x79318f1c, 0xedaf9e78, 0x012ffd85 }, { 0xb9bd8feb, 0x108e407a, 0x5c29d906, 0xecd00db8, 0x2845b238, 0xe2b8f21e, 0x78019197, 0xeedf9bfd } }; /* r = x % m; */ static void _reducebig(fe r, fel x) { crypto_uint64 i, j, u, t[10]; u = 0; for (i = 0; i < 16; ++i) { u += x[i]; x[i] = u & 0xffffffff; u >>= 32; } /* 16 limbs -> 10 limbs */ for (i = 0; i < 8; ++i) t[i] = x[i]; t[8] = t[9] = 0; for (j = 0; j < 8; ++j) for (i = 0; i < 8; ++i) { u = (crypto_uint64)ml[j][i] * x[j + 8]; t[i ] += u & 0xffffffff; t[i + 1] += u >> 32; } u = 0; for (i = 0; i < 10; ++i) { u += t[i]; t[i] = u & 0xffffffff; u >>= 32; } /* 10 limbs -> 9 limbs */ for (j = 0; j < 2; ++j) { u = 0; for (i = 0; i < 8; ++i) { u += t[i] + (crypto_uint32)ml[1][i] * t[9]; t[i] = u & 0xffffffff; u >>= 32; } u += t[8]; t[8] = u & 0xffffffff; u >>= 32; t[9] = u; } /* 9 limbs -> 8 limbs */ for (j = 0; j < 2; ++j) { u = 0; for (i = 0; i < 8; ++i) { u += t[i] + (crypto_uint32)ml[0][i] * t[8]; t[i] = u & 0xffffffff; u >>= 32; } t[8] = u; } /* final reduce */ for (i = 0; i < 8; ++i) r[i] = t[i]; fe_reducesmall(r, m, u); cleanup(t); } /* o = (a * b) % m */ static void _mul(fe o, const fe a, const fe b) { fel t; fe_mul_(t, a, b); _reducebig(o, t); cleanup(t); } /* o = (a ^ 2) % m */ static void _sq(fe o, const fe a) { fel t; fe_sq_(t, a); _reducebig(o, t); cleanup(t); } /* out = (a + b) % m; */ static void _add(fe out, fe a, const fe b) { fel t; long long i; for (i = 0; i < 16; ++i) t[i] = 0; for (i = 0; i < 8; ++i) t[i] = (crypto_uint64)a[i] + (crypto_uint64)b[i]; _reducebig(out, t); cleanup(t); } /* out = (1 / in) % m; ... using Fermat's Little Theorem 44 mul, 262 sq */ static void _inv(fe out, const fe in) { fe o, x2, x4, x8, x16, x32, t[16]; long long i; _sq(o, in); for (i = 0; i < 1 - 1; ++i) _sq(o, o); _mul(x2, o, in); _sq(o, x2); for (i = 0; i < 2 - 1; ++i) _sq(o, o); _mul(x4, o, x2); _sq(o, x4); for (i = 0; i < 4 - 1; ++i) _sq(o, o); _mul(x8, o, x4); _sq(o, x8); for (i = 0; i < 8 - 1; ++i) _sq(o, o); _mul(x16, o, x8); _sq(o, x16); for (i = 0; i < 16 - 1; ++i) _sq(o, o); _mul(x32, o, x16); _sq(o, x32); for (i = 0; i < 32 - 1; ++i) _sq(o, o); for (i = 0; i < 32; ++i) _sq(o, o); _mul(o, o, x32); for (i = 0; i < 32; ++i) _sq(o, o); _mul(o, o, x32); fe_0(t[0]); fe_copy(t[1], in); _sq(t[2], t[1]); fe_copy(t[3], x2); for (i = 4; i < 15; ++i) { if ((i & 1) == 0) _sq(t[i], t[i / 2]); else _mul(t[i], t[i - 1], in); } fe_copy(t[15], x4); for (i = 0; i < 32; ++i) { _sq(o, o); _sq(o, o); _sq(o, o); _sq(o, o); _mul(o, o, t[m2[i]]); } fe_copy(out, o); cleanup(o); cleanup(t); cleanup(x2); cleanup(x4); cleanup(x8); cleanup(x16); cleanup(x32); } static void _tobytes(unsigned char *out, fe in) { long long i; fe_reducesmall(in, m, 0); for (i = 0; i < 8; ++i) uint32_pack_big(out + 28 - 4 * i, in[i]); } static void _frombytes(fe out, const unsigned char *in) { long long i; for (i = 0; i < 8; ++i) out[i] = uint32_unpack_big(in + 28 - 4 * i); fe_reducesmall(out, m, 0); } static void _from64bytes(fe out, const unsigned char *in) { long long i; fel t; for (i = 0; i < 16; ++i) t[i] = uint32_unpack_big(in + 60 - 4 * i); _reducebig(out, t); cleanup(t); } void scp256_reduce64(unsigned char *x) { fe a; long long i; _from64bytes(a, x); for (i = 0; i < 64; ++i) x[i] = 0; _tobytes(x, a); cleanup(a); } void scp256_reduce32(unsigned char *x) { fe a; _frombytes(a, x); fe_reducesmall(a, m, 0); _tobytes(x, a); cleanup(a); } void scp256_inv(unsigned char *x) { fe a; _frombytes(a, x); _inv(a, a); _tobytes(x, a); cleanup(a); } void scp256_mul(unsigned char *o, const unsigned char *x, const unsigned char *y) { fe a, b; _frombytes(a, x); _frombytes(b, y); _mul(a, a, b); _tobytes(o, a); cleanup(a); cleanup(b); } void scp256_add(unsigned char *o, const unsigned char *x, const unsigned char *y) { fe a, b; _frombytes(a, x); _frombytes(b, y); _add(a, a, b); _tobytes(o, a); cleanup(a); cleanup(b); } tinyssh-20180201/crypto/scp256.h000066400000000000000000000005511322704306500161700ustar00rootroot00000000000000#ifndef _SCP256_H____ #define _SCP256_H____ extern void scp256_reduce64(unsigned char *); extern void scp256_reduce32(unsigned char *); extern void scp256_inv(unsigned char *); extern void scp256_mul(unsigned char *, const unsigned char *, const unsigned char *); extern void scp256_add(unsigned char *, const unsigned char *, const unsigned char *); #endif tinyssh-20180201/crypto/sha256.c000066400000000000000000000111201322704306500161430ustar00rootroot00000000000000#include "crypto_uint32.h" #include "crypto_uint64.h" #include "sha256.h" static void store64_bigendian(unsigned char *y, crypto_uint64 x) { long long i; for (i = 7; i >= 0; --i) { y[i] = x; x >>= 8; } } static void store32_bigendian(unsigned char *y, crypto_uint32 x) { long long i; for (i = 3; i >= 0; --i) { y[i] = x; x >>= 8; } } static crypto_uint32 load32_bigendian(const unsigned char *x) { crypto_uint32 y = 0; long long i; for (i = 0; i < 4; ++i) y = (y << 8) | x[i]; return y; } static crypto_uint32 R(crypto_uint32 x, int c) { return (x >> c) | ((x & 0xffffffff) << (32 - c)); } static crypto_uint32 Ch(crypto_uint32 x,crypto_uint32 y,crypto_uint32 z) { return (x & y) ^ (~x & z); } static crypto_uint32 Maj(crypto_uint32 x,crypto_uint32 y,crypto_uint32 z) { return (x & y) ^ (x & z) ^ (y & z); } static crypto_uint32 Sigma0(crypto_uint32 x) { return R(x, 2) ^ R(x,13) ^ R(x,22); } static crypto_uint32 Sigma1(crypto_uint32 x) { return R(x, 6) ^ R(x,11) ^ R(x,25); } static crypto_uint32 sigma0(crypto_uint32 x) { return R(x, 7) ^ R(x,18) ^ (x >> 3); } static crypto_uint32 sigma1(crypto_uint32 x) { return R(x,17) ^ R(x,19) ^ (x >> 10); } static const crypto_uint32 K[64] = { 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 }; static void blocks(crypto_uint32 *z, const unsigned char *m, unsigned long long n) { crypto_uint32 b[8], a[8], w[64], t; long long i, j; for (i = 0; i < 8; ++i) a[i] = z[i]; while (n >= 64) { for (i = 0; i < 16; ++i) w[i] = load32_bigendian(m + 4 * i); for (i = 16; i < 64; ++i) w[i] = (sigma1(w[i - 2]) + w[i - 7] + sigma0(w[i - 15]) + w[i - 16]) & 0xffffffff; for (i = 0; i < 64; ++i) { for (j = 0; j < 8; ++j) b[j] = a[j]; t = a[7] + Sigma1(a[4]) + Ch(a[4], a[5], a[6]) + K[i] + w[i]; b[7] = t + Sigma0(a[0]) + Maj(a[0], a[1], a[2]); b[3] += t; for (j = 0; j < 8; ++j) a[(j + 1) % 8] = b[j] & 0xffffffff; } for (i = 0; i < 8; ++i) { a[i] += z[i]; a[i] &= 0xffffffff; z[i] = a[i]; } m += 64; n -= 64; } } static crypto_uint32 iv[8] = { 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 }; int sha256_hash(unsigned char *o, const unsigned char *m, unsigned long long n) { long long i; unsigned char x[128]; crypto_uint64 b = n; crypto_uint32 h[8]; for (i = 0; i < 8; ++i) h[i] = iv[i]; blocks(h, m, n); m += n; n &= 63; m -= n; for (i = 0; i < sizeof x; ++i) x[i] = 0; for (i = 0; i < n; ++i) x[i] = m[i]; x[n] = 128; n = 128 - 64 * (n < 56); store64_bigendian(x + n - 8, b << 3); blocks(h, x, n); for (i = 0; i < 8; ++i) store32_bigendian(o + 4 * i, h[i]); return 0; } int sha256_auth(unsigned char *o, const unsigned char *m, unsigned long long n, const unsigned char *k) { long long i; crypto_uint64 b = n; unsigned char x[128], y[32]; crypto_uint32 h[8]; for (i = 0; i < 8; ++i) h[i] = iv[i]; for (i = 0; i < 64; ++i) x[i] = 0x36; for (i = 0; i < 32; ++i) x[i] ^= k[i]; blocks(h, x, 64); blocks(h, m, n); m += n; n &= 63; m -= n; for (i = 0; i < sizeof x; ++i) x[i] = 0; for (i = 0; i < n; ++i) x[i] = m[i]; x[n] = 128; n = 128 - 64 * (n < 56); store64_bigendian(x + n - 8, 512 + (b << 3)); blocks(h, x, n); for (i = 0; i < 64; ++i) x[i] = 0x5c; for (i = 0; i < 32; ++i) x[i] ^= k[i]; for (i = 0; i < 8; ++i) store32_bigendian(y + 4 * i, h[i]); for (i = 0; i < 32; ++i) x[i + 64] ^= y[i]; for (i = 0; i < 8; ++i) h[i] = iv[i]; for (i = 32; i < 64; ++i) x[64 + i] = 0; x[64 + 32] = 0x80; x[64 + 62] = 3; blocks(h, x, 128); for (i = 0; i < 8; ++i) store32_bigendian(o + 4 * i, h[i]); return 0; } tinyssh-20180201/crypto/sha256.h000066400000000000000000000003661322704306500161620ustar00rootroot00000000000000#ifndef _SHA256_H_____ #define _SHA256_H_____ extern int sha256_auth(unsigned char *, const unsigned char *, unsigned long long, const unsigned char *); extern int sha256_hash(unsigned char *, const unsigned char *, unsigned long long); #endif tinyssh-20180201/crypto/uint32_pack.c000066400000000000000000000004051322704306500172610ustar00rootroot00000000000000#include "uint32_pack.h" /* The 'uint32_pack' function converts 32-bit unsigned integer into 4 bytes stored in little-endian format */ void uint32_pack(unsigned char *y, crypto_uint32 x) { long long i; for (i = 0; i < 4; ++i) { y[i] = x; x >>= 8; } } tinyssh-20180201/crypto/uint32_pack.h000066400000000000000000000002241322704306500172650ustar00rootroot00000000000000#ifndef _UINT32_PACK_H____ #define _UINT32_PACK_H____ #include "crypto_uint32.h" extern void uint32_pack(unsigned char *, crypto_uint32); #endif tinyssh-20180201/crypto/uint32_pack_big.c000066400000000000000000000004201322704306500200770ustar00rootroot00000000000000#include "uint32_pack_big.h" /* The 'uint32_pack_big' function converts 32-bit unsigned integer into 4 bytes stored in big-endian format */ void uint32_pack_big(unsigned char *y, crypto_uint32 x) { long long i; for (i = 3; i >= 0; --i) { y[i] = x; x >>= 8; } } tinyssh-20180201/crypto/uint32_pack_big.h000066400000000000000000000002371322704306500201120ustar00rootroot00000000000000#ifndef _UINT32_PACK_BIG____ #define _UINT32_PACK_BIG____ #include "crypto_uint32.h" extern void uint32_pack_big(unsigned char *y, crypto_uint32 x); #endif tinyssh-20180201/crypto/uint32_unpack.c000066400000000000000000000004511322704306500176250ustar00rootroot00000000000000#include "uint32_unpack.h" /* The 'uint32_unpack' function converts 4 bytes in little-endian format into 32-bit unsigned integer. */ crypto_uint32 uint32_unpack(const unsigned char *x) { crypto_uint32 y = 0; long long i; for (i = 3; i >= 0; --i) y = (y << 8) | x[i]; return y; } tinyssh-20180201/crypto/uint32_unpack.h000066400000000000000000000002321322704306500176270ustar00rootroot00000000000000#ifndef _UINT32_UNPACK_H____ #define _UINT32_UNPACK_H____ #include "crypto_uint32.h" extern crypto_uint32 uint32_unpack(const unsigned char *); #endif tinyssh-20180201/crypto/uint32_unpack_big.c000066400000000000000000000004621322704306500204500ustar00rootroot00000000000000#include "uint32_unpack_big.h" /* The 'uint32_unpack_big' function converts 4 bytes in big-endian format into 32-bit unsigned integer. */ crypto_uint32 uint32_unpack_big(const unsigned char *x) { crypto_uint32 y = 0; long long i; for (i = 0; i < 4; ++i) y = (y << 8) | x[i]; return y; } tinyssh-20180201/crypto/uint32_unpack_big.h000066400000000000000000000002421322704306500204510ustar00rootroot00000000000000#ifndef _UINT32_UNPACK_BIG____ #define _UINT32_UNPACK_BIG____ #include "crypto_uint32.h" extern crypto_uint32 uint32_unpack_big(const unsigned char *); #endif tinyssh-20180201/crypto/verify.c000066400000000000000000000003371322704306500164470ustar00rootroot00000000000000#include "verify.h" int verify(const unsigned char *x, const unsigned char *y, long long n) { unsigned int d = 0; long long i; for (i = 0; i < n; ++i) d |= x[i] ^ y[i]; return (1 & ((d - 1) >> 8)) - 1; } tinyssh-20180201/crypto/verify.h000066400000000000000000000002011322704306500164420ustar00rootroot00000000000000#ifndef _VERIFY_H____ #define _VERIFY_H____ extern int verify(const unsigned char *, const unsigned char *, long long); #endif tinyssh-20180201/make-install.sh000077500000000000000000000025461322704306500164030ustar00rootroot00000000000000#!/bin/sh -e build="`pwd`/build" source="`pwd`" bin="${build}/bin" man="${build}/man" installcmd="${bin}/_tinysshd-install" cat "${source}/tinyssh/TARGETS" |\ while read x do [ -x "${bin}/${x}" ] || \ ( echo "=== `date` === $x not compiled, compile first!" exit 111; ) || exit 111 done || exit 111 [ -x "${installcmd}" ] || \ ( echo "=== `date` === ${installcmd} not compiled, compile first!" exit 111; ) || exit 111 #bin confbin="`head -1 conf-bin`" bindir=`echo "$1/${confbin}" | sed 's,//,/,g'` echo "=== `date` === installing bin directory ${bindir}" mkdir -p "${bindir}" || exit 111 cat "${source}/tinyssh/TARGETS" |\ while read x do "${installcmd}" "${bin}/${x}" "${bindir}" "${x}.tmp" "${x}" 1 || exit 111 echo "=== `date` === installing ${bin}/${x} -> ${bindir}/${x}" done || exit 111 echo "=== `date` === finishing" #man confman="`head -1 conf-man`" mandir=`echo "$1/${confman}" | sed 's,//,/,g'` echo "=== `date` === installing man directory ${mandir}" mkdir -p "${mandir}" || exit 111 ls "${man}" | sort |\ while read x do n=`echo "${x}" | cut -d'.' -f2` mkdir -p "${mandir}/man${n}" || exit 111 "${installcmd}" "${man}/${x}" "${mandir}/man${n}" "${x}.tmp" "${x}" || exit 111 echo "=== `date` === installing ${man}/${x} -> ${mandir}/man${n}/${x}" done || exit 111 echo "=== `date` === finishing" exit 0 tinyssh-20180201/make-tinyssh.sh000077500000000000000000000222021322704306500164250ustar00rootroot00000000000000#!/bin/sh -e top="`pwd`" build="`pwd`/build" bin="${build}/bin" man="${build}/man" lib="${build}/lib" include="${build}/include" log="${build}/log" work="${build}/work" contribdir="`pwd`/build-contrib" rm -rf "${build}" mkdir -p "${build}" mkdir -p "${bin}" mkdir -p "${man}" mkdir -p "${lib}" mkdir -p "${include}" exec 5>"${log}" exec 2>&5 exec &5 } log1() { echo "=== `date` === $@" echo "=== `date` === $@" >&5 } log2() { echo "=== `date` === $@" echo "=== `date` === $@" >&5 } version=`head -1 "${top}/debian/changelog" | cut -d '(' -f2 | cut -d ')' -f1` #XXX if [ x"${version}" = x ]; then version=noversion fi LANG=C export LANG log0 "uname -a: `uname -a || :`" log0 "uname -F: `uname -F || :`" log0 "uname -M: `uname -M || :`" log0 "ulimit -a: `echo; ulimit -a || :`" log1 "obtaining compiler" rm -rf "${work}" mkdir -p "${work}" ( cd "${work}" ( if [ x"${CC}" != x ]; then echo "${CC} " fi cat "${top}/conf-cc" ) | while read compiler do echo 'int main(void) { return 0; }' > try.c ${compiler} -o try try.c || { log2 "${compiler} failed"; continue; } log2 "${compiler} ok" echo "${compiler}" > compiler break done ) compiler=`head -1 "${work}/compiler"` log1 "finishing" log1 "checking compiler options" rm -rf "${work}" mkdir -p "${work}" ( cd "${work}" cflags=`cat "${top}/conf-cflags" || :` cflags="${CPPFLAGS} ${CFLAGS} ${LDFLAGS} ${cflags}" for i in ${cflags}; do echo 'int main(void) { return 0; }' > try.c ${compiler} ${options} "${i}" -o try try.c || { log2 "${i} failed"; continue; } options="${options} ${i}" log2 "${i} ok" done echo ${options} > options ) compilerorig=${compiler} compiler="${compiler} `cat ${work}/options`" log2 "${compiler}" log1 "finishing" log1 "checking libs" rm -rf "${work}" mkdir -p "${work}" ( cd "${work}" ( cat "${top}/conf-libs" || : ) | ( exec 9>syslibs while read i; do echo 'int main(void) { return 0; }' > try.c ${compiler} ${i} -o try try.c || { log2 "${i} failed"; continue; } echo "${i}" >&9 log2 "${i} ok" done ) ) libs=`cat "${work}/syslibs"` log1 "finishing" log1 "checking \$LIBS" if [ x"${LIBS}" != x ]; then rm -rf "${work}" mkdir -p "${work}" ( cd "${work}" for i in ${LIBS}; do echo 'int main(void) { return 0; }' > try.c ${compiler} ${i} -o try try.c || { log2 "${i} failed"; continue; } syslibs="${i} ${syslibs}" log2 "${i} ok" done echo ${syslibs} > syslibs ) fi libsorig=${libs} libs="${libs} `cat ${work}/syslibs`" log1 "finishing" log1 "building sysdep headers" rm -rf "${work}" mkdir -p "${work}" cp -pr sysdep/* "${work}" ( cd "${work}" sh list | ( while read target source do [ -f "${include}/${target}" ] && continue rm -f "${source}" "${target}.tmp" ${compiler} -O0 -o "${source}" "${source}.c" ${libs} || continue "./${source}" > "${target}.tmp" 2>/dev/null || continue if [ -f "${source}.out" ]; then cp "${source}.out" "${include}/${target}" else #runtime cp "${target}.tmp" "${include}/${target}" fi log2 "${target} ${source}" done ) ) log1 "finishing" log1 "starting crypto lib" rm -rf "${work}" mkdir -p "${work}" cp -pr crypto/* "${work}" ( cd "${work}" cat CRYPTOSOURCES\ | while read x do ${compiler} -I"${include}" -c "${x}.c" || { log2 "libtinynacl.a failed ... see the log ${log}"; exit 111; } done || exit 111 ar cr "${lib}/libtinynacl.a" `cat CRYPTOLIBS` || exit 0 ) log2 "libtinynacl.a ok" log1 "finishing" origlibs="${origlibs} ${lib}/libtinynacl.a" libs="${libs} ${lib}/libtinynacl.a" log1 "starting crypto headers" rm -rf "${work}" mkdir -p "${work}" cp -p crypto/CRYPTOPRIMITIVES "${work}" cp -pr crypto-tests/*test.c "${work}" cp -pr crypto-tests/*.h "${work}" cp -pr crypto-tests/*.data "${work}" 2>/dev/null || : ( cd "${work}" cat CRYPTOPRIMITIVES\ | while read primitive checkflag do if [ "x${checkflag}" = x0 ]; then cp -p "${top}/crypto/${primitive}.h" "${include}" continue; fi testf=`echo "${primitive}" | sed 's/$/test/'` ( echo '#include ' echo "#include <${primitive}.h>" echo 'int main(void) {' echo "#ifdef ${primitive}_PRIMITIVE" echo "printf(\"%s\\\\n\", ${primitive}_PRIMITIVE);" echo '#else' echo "#ifdef ${primitive}_IMPLEMENTATION" echo "printf(\"%s\\\\n\", ${primitive}_IMPLEMENTATION);" echo '#endif' echo "#ifdef ${primitive}_implementation" echo "printf(\"%s\\\\n\", ${primitive}_implementation);" echo '#endif' echo '#endif' echo 'return 0; }' ) > try.c #try ext. crypto library log0 "trying: ext. ${primitive}:" if ${compiler} -c "${testf}.c" ${libs}; then if ${compiler} -o "${testf}" "${testf}.o" ${libs}; then if ${compiler} -o try try.c; then if /bin/sh -ec "./${testf}"; then log2 "${primitive}.h (`./try`) ok" echo "#include <${primitive}.h>" >> crypto.h continue else log2 "${primitive}.h (`./try`) failed" fi fi fi fi #try int. crypto library log0 "trying: int. ${primitive}:" if cp -p "${top}/crypto/${primitive}.h" . ; then if ${compilerorig} -I. -I"$include" -o "${testf}" "${testf}.c" ${origlibs}; then if ${compilerorig} -I. -I"$include" -o try try.c; then if /bin/sh -ec "./${testf}"; then log2 "${primitive}.h (`./try`) ok" echo "#include \"${primitive}.h\"" >> crypto.h cp -p "${primitive}.h" "${include}" continue fi fi fi fi log2 "${primitive}.h failed ... see the log ${log}" exit 111 done || exit 111 cp crypto.h "${include}/crypto.h" ) log1 "finishing" rm -rf "${work}" mkdir -p "${work}" cp -pr tinyssh/* "${work}" cp -pr tinyssh-tests/*test.c "${work}" cp -pr tinyssh-tests/*.h "${work}" cp -pr _tinyssh/* "${work}" 2>/dev/null || : ( cd "${work}" log1 "starting tinyssh objects" touch SOURCES TARGETS _TARGETS cat SOURCES TARGETS _TARGETS\ | while read x do ${compiler} "-DCOMPILER=\"${compilerorig}\"" "-DVERSION=\"${version}\"" -I"${include}" -c "${x}.c" || { log2 "${x}.o failed ... see the log ${log}"; exit 111; } log2 "${x}.o ok" done || exit 111 ar cr libtinyssh.a `cat LIBS` || exit 111 log1 "finishing" #tests log1 "starting tinyssh-tests" cat LIBS \ | while read x do t=`echo ${x} | sed 's/.o$/test/'` if [ ! -h "${t}.c" ]; then ${compiler} -I"${include}" -c "${t}.c" || { log2 "${t} failed ... see the log ${log}"; exit 111; } ${compiler} -I"${include}" -o "${t}" "${t}.o" libtinyssh.a ${libs} || { log2 "${t} failed ... see the log ${log}"; exit 111; } "./${t}" || { log2 "${t} failed ... see the log ${log}"; exit 111; } log2 "${t} ok" fi done || exit 111 log1 "finishing" log1 "starting _tinyssh" cat _TARGETS \ | while read x do ${compiler} -I"${include}" -o "${x}" "${x}.o" libtinyssh.a ${libs} || { log2 "${x} failed ... see the log ${log}"; exit 111; } log2 "${x} ok" cp -p "${x}" "${bin}/${x}"; done || exit 111 log1 "finishing" log1 "starting tinyssh" cat TARGETS \ | while read x do ${compiler} -I"${include}" -o "${x}" "${x}.o" libtinyssh.a ${libs} || { log2 "${x} failed ... see the log ${log}"; exit 111; } log2 "${x} ok" done || exit 111 log1 "finishing" log1 "starting tinyssh regression tests" cat TARGETS \ | while read x do sh ${x}.rts > ${x}.out cmp "${x}.out" "${x}.exp" || { log2 "${x} regression test failed ... see the difference `pwd`/${x}.out `pwd`/${x}.exp"; exit 111; } log2 "${x} ok" cp -p "${x}" "${bin}/${x}"; done || exit 111 log1 "finishing" ) || exit 111 log1 "starting manpages" cp -pr man/* "${man}" log1 "finishing" log1 "counting words of code - tests" rm -rf "${work}" mkdir -p "${work}" for dir in tinyssh-tests crypto-tests _tinyssh; do ( touch "${work}/${dir}" [ -d "${dir}" ] || exit 0 cd "${dir}" cat *.c *.h > "${work}/${dir}" || : ) ( cd "${work}" cat "${dir}" \ | ( cpp -fpreprocessed || gcpp -fpreprocessed ) | ( x=`sed 's/[_a-zA-Z0-9][_a-zA-Z0-9]*/x/g' | tr -d ' \012' | wc -c | tr -d ' '` log2 "${dir} ${x}" ) ) done ( cd "${work}" cat * \ | ( cpp -fpreprocessed || gcpp -fpreprocessed ) | ( x=`sed 's/[_a-zA-Z0-9][_a-zA-Z0-9]*/x/g' | tr -d ' \012' | wc -c | tr -d ' '` log2 "$x words of code" ) ) log1 "finishing" echo "=== `date` === counting words of code" rm -rf "${work}" mkdir -p "${work}" for dir in sysdep tinyssh crypto; do ( cd "${dir}" cat *.c *.h > "${work}/${dir}" || : ) ( cd "${work}" cat "${dir}" \ | ( cpp -fpreprocessed || gcpp -fpreprocessed ) | ( x=`sed 's/[_a-zA-Z0-9][_a-zA-Z0-9]*/x/g' | tr -d ' \012' | wc -c | tr -d ' '` log2 "${dir} ${x}" ) ) done ( cd "${work}" cat * \ | ( cpp -fpreprocessed || gcpp -fpreprocessed ) | ( x=`sed 's/[_a-zA-Z0-9][_a-zA-Z0-9]*/x/g' | tr -d ' \012' | wc -c | tr -d ' '` log2 "${x} words of code" ) ) log1 "finishing" exit 0 tinyssh-20180201/make-tinysshcc.sh000077500000000000000000000112631322704306500167400ustar00rootroot00000000000000#!/bin/sh -e top="`pwd`" build="`pwd`/build" bin="${build}/bin" man="${build}/man" lib="${build}/lib" include="${build}/include" log="${build}/log" work="${build}/work" contribdir="`pwd`/build-contrib" rm -rf "${build}" mkdir -p "${build}" mkdir -p "${bin}" mkdir -p "${man}" mkdir -p "${lib}" mkdir -p "${include}" exec 5>"${log}" exec 2>&5 exec &5 } log1() { echo "=== `date` === $@" echo "=== `date` === $@" >&5 } log2() { echo "=== `date` === $@" echo "=== `date` === $@" >&5 } version=`head -1 "${top}/debian/changelog" | cut -d '(' -f2 | cut -d ')' -f1` #XXX if [ x"${version}" = x ]; then version=noversion fi LANG=C export LANG log0 "uname -a: `uname -a || :`" log0 "uname -F: `uname -F || :`" log0 "uname -M: `uname -M || :`" log1 "obtaining compiler" rm -rf "${work}" mkdir -p "${work}" ( cd "${work}" ( if [ x"${CC}" != x ]; then echo "${CC} " fi cat "${top}/conf-cc" ) | while read compiler do echo 'int main(void) { return 0; }' > try.c ${compiler} -o try try.c || { log2 "${compiler} failed"; continue; } log2 "${compiler} ok" echo "${compiler}" > compiler break done ) compiler=`head -1 "${work}/compiler"` log1 "finishing" log1 "checking compiler options" rm -rf "${work}" mkdir -p "${work}" ( cd "${work}" cflags=`cat "${top}/conf-cflags" || :` cflags="${CPPFLAGS} ${CFLAGS} ${LDFLAGS} ${cflags}" for i in ${cflags}; do echo 'int main(void) { return 0; }' > try.c ${compiler} ${options} "${i}" -o try try.c || { log2 "${i} failed"; continue; } options="${options} ${i}" log2 "${i} ok" done echo ${options} > options ) compilerorig=${compiler} compiler="${compiler} `cat ${work}/options`" log2 "${compiler}" log1 "finishing" log1 "checking libs" rm -rf "${work}" mkdir -p "${work}" ( cd "${work}" ( cat "${top}/conf-libs" || : ) | ( exec 9>syslibs while read i; do echo 'int main(void) { return 0; }' > try.c ${compiler} ${i} -o try try.c || { log2 "${i} failed"; continue; } echo "${i}" >&9 log2 "${i} ok" done ) ) libs=`cat "${work}/syslibs"` log1 "finishing" log1 "checking \$LIBS" if [ x"${LIBS}" != x ]; then rm -rf "${work}" mkdir -p "${work}" ( cd "${work}" for i in ${LIBS}; do echo 'int main(void) { return 0; }' > try.c ${compiler} ${i} -o try try.c || { log2 "${i} failed"; continue; } syslibs="${i} ${syslibs}" log2 "${i} ok" done echo ${syslibs} > syslibs ) fi libsorig=${libs} libs="${libs} `cat ${work}/syslibs`" log1 "finishing" log1 "building sysdep headers" rm -rf "${work}" mkdir -p "${work}" cp -pr sysdep/* "${work}" ( cd "${work}" sh list | ( while read target source do [ -f "${include}/${target}" ] && continue rm -f "${source}" "${target}.tmp" [ -f "${source}.out" ] || continue ${compiler} -O0 -o "${source}" "${source}.c" ${libs} || continue cp "${source}.out" "${include}/${target}" log2 "${target} ${source}" done ) ) log1 "finishing" log1 "starting crypto lib" rm -rf "${work}" mkdir -p "${work}" cp -pr crypto/* "${work}" ( cd "${work}" cat CRYPTOSOURCES\ | while read x do ${compiler} -I"${include}" -c "${x}.c" || { log2 "libtinynacl.a failed ... see the log ${log}"; exit 111; } done || exit 111 ar cr "${lib}/libtinynacl.a" `cat CRYPTOLIBS` || exit 0 ) log2 "libtinynacl.a ok" log1 "finishing" origlibs="${origlibs} ${lib}/libtinynacl.a" libs="${libs} ${lib}/libtinynacl.a" log1 "starting crypto headers" rm -rf "${work}" mkdir -p "${work}" cp -p crypto/CRYPTOPRIMITIVES "${work}" ( cd "${work}" cat CRYPTOPRIMITIVES\ | while read primitive checkflag do if [ "x${checkflag}" != x0 ]; then echo "#include \"${primitive}.h\"" >> crypto.h fi cp -p "${top}/crypto/${primitive}.h" "${include}" done || exit 111 cp crypto.h "${include}/crypto.h" ) log1 "finishing" rm -rf "${work}" mkdir -p "${work}" cp -pr tinyssh/* "${work}" ( cd "${work}" log1 "starting tinyssh objects" touch SOURCES TARGETS cat SOURCES TARGETS\ | while read x do ${compiler} "-DCOMPILER=\"${compilerorig}\"" "-DVERSION=\"${version}\"" -I"${include}" -c "${x}.c" || { log2 "${x}.o failed ... see the log ${log}"; exit 111; } log2 "${x}.o ok" done || exit 111 ar cr libtinyssh.a `cat LIBS` || exit 111 log1 "finishing" log1 "starting tinyssh" cat TARGETS \ | while read x do ${compiler} -I"${include}" -o "${x}" "${x}.o" libtinyssh.a ${libs} || { log2 "${x} failed ... see the log ${log}"; exit 111; } cp -p "${x}" "${bin}/${x}" log2 "${x} ok" done || exit 111 log1 "finishing" ) || exit 111 log1 "starting manpages" cp -pr man/* "${man}" log1 "finishing" exit 0 tinyssh-20180201/man/000077500000000000000000000000001322704306500142275ustar00rootroot00000000000000tinyssh-20180201/man/tinysshd-makekey.1000066400000000000000000000010631322704306500176020ustar00rootroot00000000000000.TH tinysshd\-makekey 1 .SH NAME tinysshd\-makekey \- create TinySSH key\-directory .SH SYNOPSIS .B tinysshd\-makekey [ options ] .I keydir .SH DESCRIPTION .B tinysshd\-makekey safely creates secret\-keys and appropriate public\-keys in directory .I keydir .SH OPTIONS .TP .B \-q no error messages .TP .B \-Q print error messages (default) .TP .TP .I keydir directory for TinySSH keys, typically /etc/tinyssh/sshkeydir .SH EXAMPLE tinysshd\-makekey /etc/tinyssh/sshkeydir .SH SEE ALSO .BR tinysshd (8), .BR tinysshd\-printkey (1) .sp .nf https://tinyssh.org/ .fi tinyssh-20180201/man/tinysshd-printkey.1000066400000000000000000000007011322704306500200170ustar00rootroot00000000000000.TH tinysshd\-printkey 1 .SH NAME tinysshd\-printkey \- print TinySSH public\-keys .SH SYNOPSIS .B tinysshd\-printkey .I keydir .SH DESCRIPTION .B tinysshd\-printkey prints TinySSH public\-keys in base64 format .SH OPTIONS .TP .I keydir directory containing TinySSH keys, typically /etc/tinyssh/sshkeydir .SH EXAMPLE tinysshd\-printkey /etc/tinyssh/sshkeydir .SH SEE ALSO .BR tinysshd (8), .BR tinysshd\-makekey (1) .sp .nf https://tinyssh.org/ .fi tinyssh-20180201/man/tinysshd.8000066400000000000000000000063211322704306500161670ustar00rootroot00000000000000.TH tinysshd 8 .SH NAME tinysshd \- Tiny SSH daemon .SH SYNOPSIS .B tinysshd [ options ] .I keydir .SH DESCRIPTION .B tinysshd is a minimalistic SSH server which implements only a subset of SSHv2 features. .sp .B tinysshd supports only secure cryptography (minimum 128\-bit security, protected against cache\-timing attacks) .sp .B tinysshd doesn't implement unnecessary features (such as SSH1 protocol, compression, ...) .sp .B tinysshd doesn't implement older crypto (such as RSA, DSA, HMAC\-MD5, HMAC\-SHA1, 3DES, RC4, ...) .sp .B tinysshd doesn't implement unsafe features (such as password or hostbased authentication) .sp .B tinysshd doesn't use dynamic memory allocation (no allocation failures, etc.) .SH OPTIONS .TP .B \-q no error messages .TP .B \-Q print error messages (default) .TP .B \-v print extra information .TP .B \-o enable older standardized crypto \- ecdsa\-sha2\-nistp256, ecdh\-sha2\-nistp256, aes256\-ctr, hmac\-sha2\-256 .TP .B \-O disable older standardized crypto (default) .TP .B \-s enable state\-of\-the\-art crypto \- ssh\-ed25519, curve25519\-sha256@libssh.org, chacha20\-poly1305@openssh.com (default) .TP .B \-S disable state\-of\-the\-art crypto .TP .B \-p enable post\-quantum crypto \- TODO, TODO, chacha20\-poly1305@openssh.com .TP .B \-P disable post\-quantum crypto .TP .B \-l use syslog instead of standard error output (useful for running from inetd) .TP .B \-L don't use syslog, use standard error output (default) .TP .B \-x \fIname=command add subsystem command (e.g.: sftp=/usr/libexec/openssh/sftp\-server) .TP .I keydir directory containing TinySSH keys, typically /etc/tinyssh/sshkeydir .SH AUTHORIZATION .B tinysshd supports only public-key authorization via .B AuthorizedKeysFile ~/.ssh/authorized_keys. Each line of the file contains one key in format "keytype base64-encoded-key comment". .B tinyssh supports only "ssh-ed25519" and "ecdsa-sha2-nistp256" keytypes. .sp ~/.ssh/authorized_keys example: .nf .RS 2 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILV5AGhGQ1QVXjBWhTKJP3vrqE3isL4ivisBailQ14gS comment ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPqVpPptLAMlCzojDM6W2x5rmzAxmOyOW0K9K3wuClgqMeguHg82Ju6IrA2YP76vhjhU8atfjM+tsfTXgplEo4o= comment .RE .SH RUNNING .TP .B TCPSERVER tcpserver \-HRDl0 0.0.0.0 22 /usr/sbin/tinysshd \-v /etc/tinyssh/sshkeydir & .TP .B BUSYBOX busybox tcpsvd 0 22 tinysshd \-v /etc/tinyssh/sshkeydir & .TP .B INETD .RS 4 /etc/inetd.conf: .RS 4 ssh stream tcp nowait root /usr/sbin/tinysshd tinysshd \-l \-v /etc/tinyssh/sshkeydir .RE .RE .TP .B SYSTEMD .RS 4 tinysshd.socket: .RS 4 .nf [Unit] Description=TinySSH server socket ConditionPathExists=!/etc/tinyssh/disable_tinysshd [Socket] ListenStream=22 Accept=yes [Install] WantedBy=sockets.target .fi .RE .RE .sp .RS 4 tinysshd@.service: .RS 4 .nf [Unit] Description=Tiny SSH server After=network.target auditd.service [Service] ExecStartPre=\-/usr/sbin/tinysshd\-makekey \-q /etc/tinyssh/sshkeydir EnvironmentFile=\-/etc/default/tinysshd ExecStart=/usr/sbin/tinysshd ${TINYSSHDOPTS} \-\- /etc/tinyssh/sshkeydir KillMode=process StandardInput=socket StandardError=journal [Install] WantedBy=multi\-user.target .fi .RE .RE .SH SEE ALSO .BR tinysshd\-makekey (1), .BR tinysshd\-printkey (1) .sp .nf https://tinyssh.org/ .fi tinyssh-20180201/sysdep/000077500000000000000000000000001322704306500147635ustar00rootroot00000000000000tinyssh-20180201/sysdep/default.h-no.c000066400000000000000000000000661322704306500174150ustar00rootroot00000000000000/* Public domain. */ int main(void) { return 0; } tinyssh-20180201/sysdep/default.h-no.out000066400000000000000000000000001322704306500177660ustar00rootroot00000000000000tinyssh-20180201/sysdep/hasasmvolatilememory.h-yes.c000066400000000000000000000003761322704306500224260ustar00rootroot00000000000000/* Public domain. */ static void foo(void *yv, long long ylen) { char *y = yv; while (ylen > 0) { *y++ = 0; --ylen; } __asm__ __volatile__("" : : "r"(yv) : "memory"); } int main(void) { char x[16]; foo(x, sizeof x); return 0; } tinyssh-20180201/sysdep/hasasmvolatilememory.h-yes.out000066400000000000000000000000371322704306500230050ustar00rootroot00000000000000#define HASASMVOLATILEMEMORY 1 tinyssh-20180201/sysdep/haslibutilh.h-yes.c000066400000000000000000000001141322704306500204570ustar00rootroot00000000000000/* Public domain. */ #include int main(void) { return 0; } tinyssh-20180201/sysdep/haslibutilh.h-yes.out000066400000000000000000000000261322704306500210460ustar00rootroot00000000000000#define HASLIBUTILH 1 tinyssh-20180201/sysdep/haslimits.h-yes.c000066400000000000000000000001131322704306500201430ustar00rootroot00000000000000/* Public domain. */ #include int main(void) { return 0; } tinyssh-20180201/sysdep/haslimits.h-yes.out000066400000000000000000000000241322704306500205310ustar00rootroot00000000000000#define HASLIMITS 1 tinyssh-20180201/sysdep/haslogintty.h-yes.c000066400000000000000000000001771322704306500205250ustar00rootroot00000000000000/* Public domain. */ extern int login_tty(int); static void foo(void) { login_tty(0); } int main(void) { return 0; } tinyssh-20180201/sysdep/haslogintty.h-yes.out000066400000000000000000000000261322704306500211030ustar00rootroot00000000000000#define HASLOGINTTY 1 tinyssh-20180201/sysdep/hasmlock.h-yes.c000066400000000000000000000002171322704306500177540ustar00rootroot00000000000000/* Public domain. */ #include int main(void) { char x[16]; mlock(x, sizeof x); munlock(x, sizeof x); return 0; } tinyssh-20180201/sysdep/hasmlock.h-yes.out000066400000000000000000000000231322704306500203340ustar00rootroot00000000000000#define HASMLOCK 1 tinyssh-20180201/sysdep/hasopenpty.h-yes.c000066400000000000000000000004421322704306500203450ustar00rootroot00000000000000/* Public domain. */ #include #include #include extern int openpty(int *, int *, char *, struct termios *, struct winsize *); static void foo(void) { int master, slave; openpty(&master, &slave, 0, 0, 0); } int main(void) { return 0; } tinyssh-20180201/sysdep/hasopenpty.h-yes.out000066400000000000000000000000251322704306500207270ustar00rootroot00000000000000#define HASOPENPTY 1 tinyssh-20180201/sysdep/hasutilh.h-yes.c000066400000000000000000000001111322704306500177650ustar00rootroot00000000000000/* Public domain. */ #include int main(void) { return 0; } tinyssh-20180201/sysdep/hasutilh.h-yes.out000066400000000000000000000000231322704306500203540ustar00rootroot00000000000000#define HASUTILH 1 tinyssh-20180201/sysdep/hasutmp.h-yes.c000066400000000000000000000002141322704306500176310ustar00rootroot00000000000000/* Public domain. */ #include #include #include int main(void) { struct utmp ut = {0}; return 0; } tinyssh-20180201/sysdep/hasutmp.h-yes.out000066400000000000000000000000221322704306500202130ustar00rootroot00000000000000#define HASUTMP 1 tinyssh-20180201/sysdep/hasutmphost.h-yes.c000066400000000000000000000002611322704306500205310ustar00rootroot00000000000000/* Public domain. */ #include #include #include int main(void) { struct utmp ut; if (sizeof ut.ut_host < 8) return 111; return 0; } tinyssh-20180201/sysdep/hasutmphost.h-yes.out000066400000000000000000000000261322704306500211150ustar00rootroot00000000000000#define HASUTMPHOST 1 tinyssh-20180201/sysdep/hasutmploginlogout.h-yes.c000066400000000000000000000004301322704306500221140ustar00rootroot00000000000000/* Public domain. */ #include #include #include extern void login(const struct utmp *); extern int logout(const char *); static void foo(void) { struct utmp ut = {0}; login(&ut); logout(ut.ut_line); } int main(void) { return 0; } tinyssh-20180201/sysdep/hasutmploginlogout.h-yes.out000066400000000000000000000000351322704306500225020ustar00rootroot00000000000000#define HASUTMPLOGINLOGOUT 1 tinyssh-20180201/sysdep/hasutmplogwtmp.h-yes.c000066400000000000000000000002531322704306500212460ustar00rootroot00000000000000/* Public domain. */ extern void logwtmp(const char *, const char *, const char *); static void foo(void) { logwtmp("", "", ""); } int main(void) { return 0; } tinyssh-20180201/sysdep/hasutmplogwtmp.h-yes.out000066400000000000000000000000311322704306500216250ustar00rootroot00000000000000#define HASUTMPLOGWTMP 1 tinyssh-20180201/sysdep/hasutmpname.h-yes.c000066400000000000000000000002611322704306500204740ustar00rootroot00000000000000/* Public domain. */ #include #include #include int main(void) { struct utmp ut; if (sizeof ut.ut_name < 8) return 111; return 0; } tinyssh-20180201/sysdep/hasutmpname.h-yes.out000066400000000000000000000000261322704306500210600ustar00rootroot00000000000000#define HASUTMPNAME 1 tinyssh-20180201/sysdep/hasutmppid.h-yes.c000066400000000000000000000002241322704306500203270ustar00rootroot00000000000000/* Public domain. */ #include #include #include int main(void) { struct utmp ut = {0}; return ut.ut_pid; } tinyssh-20180201/sysdep/hasutmppid.h-yes.out000066400000000000000000000000251322704306500207130ustar00rootroot00000000000000#define HASUTMPPID 1 tinyssh-20180201/sysdep/hasutmptime.h-yes.c000066400000000000000000000002241322704306500205110ustar00rootroot00000000000000/* Public domain. */ #include #include #include int main(void) { struct utmp ut = {0}; return ut.ut_time; } tinyssh-20180201/sysdep/hasutmptime.h-yes.out000066400000000000000000000000261322704306500210760ustar00rootroot00000000000000#define HASUTMPTIME 1 tinyssh-20180201/sysdep/hasutmptv.h-yes.c000066400000000000000000000002551322704306500202100ustar00rootroot00000000000000/* Public domain. */ #include #include #include int main(void) { struct utmp ut = {0}; return ut.ut_tv.tv_sec + ut.ut_tv.tv_usec; } tinyssh-20180201/sysdep/hasutmptv.h-yes.out000066400000000000000000000000241322704306500205670ustar00rootroot00000000000000#define HASUTMPTV 1 tinyssh-20180201/sysdep/hasutmptype.h-yes.c000066400000000000000000000002641322704306500205400ustar00rootroot00000000000000/* Public domain. */ #include #include #include int main(void) { struct utmp ut; ut.ut_type = USER_PROCESS | DEAD_PROCESS; return 0; } tinyssh-20180201/sysdep/hasutmptype.h-yes.out000066400000000000000000000000261322704306500211210ustar00rootroot00000000000000#define HASUTMPTYPE 1 tinyssh-20180201/sysdep/hasutmpuser.h-yes.c000066400000000000000000000002611322704306500205320ustar00rootroot00000000000000/* Public domain. */ #include #include #include int main(void) { struct utmp ut; if (sizeof ut.ut_user < 8) return 111; return 0; } tinyssh-20180201/sysdep/hasutmpuser.h-yes.out000066400000000000000000000000261322704306500211160ustar00rootroot00000000000000#define HASUTMPUSER 1 tinyssh-20180201/sysdep/hasutmpx.h-yes.c000066400000000000000000000004071322704306500200250ustar00rootroot00000000000000/* Public domain. */ #include static void foo(void) { struct utmpx ut; ut.ut_type = DEAD_PROCESS; ut.ut_type = USER_PROCESS; ut.ut_type = 0; setutxent(); pututxline(&ut); endutxent(); } int main(void) { return 0; } tinyssh-20180201/sysdep/hasutmpx.h-yes.out000066400000000000000000000000231322704306500204040ustar00rootroot00000000000000#define HASUTMPX 1 tinyssh-20180201/sysdep/hasutmpxsyslen.h-yes.c000066400000000000000000000001611322704306500212600ustar00rootroot00000000000000/* Public domain. */ #include int main(void) { struct utmpx ut = {0}; return ut.ut_syslen; } tinyssh-20180201/sysdep/hasutmpxsyslen.h-yes.out000066400000000000000000000000311322704306500216410ustar00rootroot00000000000000#define HASUTMPXSYSLEN 1 tinyssh-20180201/sysdep/hasutmpxupdwtmpx.h-yes.c000066400000000000000000000002431322704306500216340ustar00rootroot00000000000000/* Public domain. */ #include static void foo(void) { struct utmpx ut = {0}; updwtmpx("/nonexistent", &ut); } int main(void) { return 0; } tinyssh-20180201/sysdep/hasutmpxupdwtmpx.h-yes.out000066400000000000000000000000331322704306500222160ustar00rootroot00000000000000#define HASUTMPXUPDWTMPX 1 tinyssh-20180201/sysdep/list000066400000000000000000000030731322704306500156640ustar00rootroot00000000000000#!/bin/sh -e #__asm__ __volatile__ ... echo 'hasasmvolatilememory.h hasasmvolatilememory.h-yes' echo 'hasasmvolatilememory.h default.h-no' #mlock echo 'hasmlock.h hasmlock.h-yes' echo 'hasmlock.h default.h-no' #util/libutil echo 'haslibutilh.h haslibutilh.h-yes' echo 'haslibutilh.h default.h-no' echo 'hasutilh.h hasutilh.h-yes' echo 'hasutilh.h default.h-no' #openpty/login_tty echo 'hasopenpty.h hasopenpty.h-yes' echo 'hasopenpty.h default.h-no' echo 'haslogintty.h haslogintty.h-yes' echo 'haslogintty.h default.h-no' #utmpx echo 'hasutmpx.h hasutmpx.h-yes' echo 'hasutmpx.h default.h-no' echo 'hasutmpxupdwtmpx.h hasutmpxupdwtmpx.h-yes' echo 'hasutmpxupdwtmpx.h default.h-no' echo 'hasutmpxsyslen.h hasutmpxsyslen.h-yes' echo 'hasutmpxsyslen.h default.h-no' #utmp echo 'hasutmp.h hasutmp.h-yes' echo 'hasutmp.h default.h-no' echo 'hasutmpname.h hasutmpname.h-yes' echo 'hasutmpname.h default.h-no' echo 'hasutmpuser.h hasutmpuser.h-yes' echo 'hasutmpuser.h default.h-no' echo 'hasutmphost.h hasutmphost.h-yes' echo 'hasutmphost.h default.h-no' echo 'hasutmptime.h hasutmptime.h-yes' echo 'hasutmptime.h default.h-no' echo 'hasutmptv.h hasutmptv.h-yes' echo 'hasutmptv.h default.h-no' echo 'hasutmppid.h hasutmppid.h-yes' echo 'hasutmppid.h default.h-no' echo 'hasutmptype.h hasutmptype.h-yes' echo 'hasutmptype.h default.h-no' echo 'hasutmplogwtmp.h hasutmplogwtmp.h-yes' echo 'hasutmplogwtmp.h default.h-no' echo 'hasutmploginlogout.h hasutmploginlogout.h-yes' echo 'hasutmploginlogout.h default.h-no' #limits echo 'haslimits.h haslimits.h-yes' echo 'haslimits.h default.h-no' tinyssh-20180201/tinyssh-tests/000077500000000000000000000000001322704306500163155ustar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/blockingtest.c000066400000000000000000000010661322704306500211540ustar00rootroot00000000000000/* 20140302 Jan Mojzis Public domain. */ #include #include #include #include "fail.h" #include "blocking.h" int main(void) { int pi[2]; long long i; if (pipe(pi) == -1) fail("failure"); for (i = 0; i < 2; ++i) { if ((fcntl(pi[i], F_GETFL) & O_NONBLOCK) != 0) fail("failure"); blocking_disable(pi[i]); if ((fcntl(pi[i], F_GETFL) & O_NONBLOCK) == 0) fail("failure"); blocking_enable(pi[i]); if ((fcntl(pi[i], F_GETFL) & O_NONBLOCK) != 0) fail("failure"); } _exit(0); } tinyssh-20180201/tinyssh-tests/buftest.c000066400000000000000000000506011322704306500201370ustar00rootroot00000000000000/* 20140303 Jan Mojzis Public domain. */ #include #include #include #include #include "fail.h" #include "byte.h" #include "buf.h" #include "str.h" #include "crypto_uint32.h" #include "crypto_uint8.h" /* XXX */ static int xbuf_putnum8_(const char *fn, unsigned long long line, struct buf *b, long long uu) { crypto_uint8 u = uu; return buf_putnum8_(fn, line, b, u); } static int xbuf_putnum32_(const char *fn, unsigned long long line, struct buf *b, long long uu) { crypto_uint32 u = uu; return buf_putnum32_(fn, line, b, u); } struct vectors1 { int (*op)(const char *, unsigned long long, struct buf *, long long); long long spacelen; long long xlen; } testvectors1[] = { { buf_putzerobytes_, 5, 4 }, { buf_putrandombytes_, 5, 4 }, { buf_putpadding_, 5, 4 }, { xbuf_putnum32_, 5, 0 }, { xbuf_putnum8_, 2, 0 }, { 0, 0, 0 } }; struct vectors2 { int (*op)(const char *, unsigned long long, struct buf *, const unsigned char *, long long); long long spacelen; const unsigned char *x; long long xlen; } testvectors2[] = { { buf_put_, 1, (unsigned char *)"", 0 }, { buf_put_, 5, (unsigned char *)"ahoj", 4 }, { buf_putstringlen_, 5, (unsigned char *)"", 0 }, { buf_putstringlen_, 9, (unsigned char *)"ahoj", 4 }, { 0, 0, 0, 0 } }; struct vectors3 { int (*op)(const char *, unsigned long long, struct buf *, const char *); long long spacelen; const char *x; } testvectors3[] = { { buf_puts_, 1, "" }, { buf_puts_, 5, "ahoj" }, { buf_putstring_, 5, "" }, { buf_putstring_, 9, "ahoj" }, { 0, 0, 0 } }; static int _test1a1(long long spacelen, int (*op)(const char *, unsigned long long, struct buf *, long long), long long xlen) { pid_t pid; int status; unsigned char bspace[10]; struct buf b; pid = fork(); if (pid == -1) return -1; if (pid == 0) { close(2); buf_init(&b, bspace, spacelen); op(__FILE__, __LINE__, &b, xlen); buf_put(&b, (unsigned char *)"", 1); /* overflow */ _exit(0); } while (waitpid(pid, &status, 0) != pid) {}; if (!WIFEXITED(status)) return -1; return WEXITSTATUS(status); } static int _test1a2(long long spacelen, int (*op)(const char *, unsigned long long, struct buf *, const unsigned char *, long long), const unsigned char *x, long long xlen) { pid_t pid; int status; unsigned char bspace[10]; struct buf b; pid = fork(); if (pid == -1) return -1; if (pid == 0) { close(2); buf_init(&b, bspace, spacelen); op(__FILE__, __LINE__, &b, x, xlen); buf_put(&b, (unsigned char *)"", 1); /* overflow */ _exit(0); } while (waitpid(pid, &status, 0) != pid) {}; if (!WIFEXITED(status)) return -1; return WEXITSTATUS(status); } static int _test1a3(long long spacelen, int (*op)(const char *, unsigned long long, struct buf *, const char *), const char *x) { pid_t pid; int status; unsigned char bspace[10]; struct buf b; pid = fork(); if (pid == -1) return -1; if (pid == 0) { close(2); buf_init(&b, bspace, spacelen); op(__FILE__, __LINE__, &b, x); buf_put(&b, (unsigned char *)"", 1); /* overflow */ _exit(0); } while (waitpid(pid, &status, 0) != pid) {}; if (!WIFEXITED(status)) return -1; return WEXITSTATUS(status); } static void _test1b1(long long spacelen, int (*op)(const char *, unsigned long long, struct buf *, long long), long long xlen) { unsigned char bspace[10]; struct buf b; buf_init(&b, bspace, spacelen); op(__FILE__, __LINE__, &b, xlen); } static void _test1b2(long long spacelen, int (*op)(const char *, unsigned long long, struct buf *, const unsigned char *, long long), const unsigned char *x, long long xlen) { unsigned char bspace[10]; struct buf b; buf_init(&b, bspace, spacelen); op(__FILE__, __LINE__, &b, x, xlen); } static void _test1b3(long long spacelen, int (*op)(const char *, unsigned long long, struct buf *, const char *), const char *x) { unsigned char bspace[10]; struct buf b; buf_init(&b, bspace, spacelen); op(__FILE__, __LINE__, &b, x); } static void test1(void) { long long i; int r; for (i = 0; testvectors1[i].op; ++i) { r = _test1a1(testvectors1[i].spacelen, testvectors1[i].op, testvectors1[i].xlen); if (r == 0) fail("failure"); _test1b1(testvectors1[i].spacelen, testvectors1[i].op, testvectors1[i].xlen); } for (i = 0; testvectors2[i].op; ++i) { r = _test1a2(testvectors2[i].spacelen, testvectors2[i].op, testvectors2[i].x, testvectors2[i].xlen); if (r == 0) fail("failure"); _test1b2(testvectors2[i].spacelen, testvectors2[i].op, testvectors2[i].x, testvectors2[i].xlen); } for (i = 0; testvectors3[i].op; ++i) { r = _test1a3(testvectors3[i].spacelen, testvectors3[i].op, testvectors3[i].x); if (r == 0) fail("failure"); _test1b3(testvectors3[i].spacelen, testvectors3[i].op, testvectors3[i].x); } } static void test2(void) { unsigned char bspace[2]; struct buf b; unsigned char ch = 0; long long i; buf_init(&b, bspace, sizeof bspace); for (i = 0; i < 10; ++i) { buf_put(&b, &ch, 1); buf_purge(&b); } } struct vectors64 { const char *in; long long inlen; const char *out; } testvectors64[] = { { "\107\303\221\307\306\077\106\014\235\115\356\215\375", 13, "R8ORx8Y/RgydTe6N/Q==" }, { "\133\253\044\246\070\374", 6, "W6skpjj8" }, { "\253\374\323\142\326", 5, "q/zTYtY=" }, { "\335\251\125\150\245\321\040\143\174\152", 10, "3alVaKXRIGN8ag==" }, { "\155\065\344\122\353", 5, "bTXkUus=" }, { "\266\071\073\373\072\035\270\151\201", 9, "tjk7+zoduGmB" }, { "\302\373\135\206\370\012\365", 7, "wvtdhvgK9Q==" }, { "\071\203", 2, "OYM=" }, { "\210\236\076\336\014\122\125\050\016\076\063", 11, "iJ4+3gxSVSgOPjM=" }, { "\241\330\251\122\325\061\142\167\174\315\201\000\275\157\056", 15, "odipUtUxYnd8zYEAvW8u" }, { "\334\306\014\014\021\323\000\120\347\363\335", 11, "3MYMDBHTAFDn890=" }, { "\356\243\102\105\343\146\154\064\006\316\360\301\256\164", 14, "7qNCReNmbDQGzvDBrnQ=" }, { "\250\211\165\344\276\224\031\205\162\315", 10, "qIl15L6UGYVyzQ==" }, { "\356\104\051\125\022\121\070\074\332\301\014\377\303\254\140", 15, "7kQpVRJRODzawQz/w6xg" }, { "\065\340\116\113\133\334\100", 7, "NeBOS1vcQA==" }, { "\151\340\101\120\376", 5, "aeBBUP4=" }, { "\345", 1, "5Q==" }, { "\010\134", 2, "CFw=" }, { "\221\044\355\143\047\351\127\165\314\370\017\347\365", 13, "kSTtYyfpV3XM+A/n9Q==" }, { "\222\237\301\021\214\011\002\367", 8, "kp/BEYwJAvc=" }, { "\235\245\251\304\303\232\223\046\063\062\252\366", 12, "naWpxMOakyYzMqr2" }, { "\215\267\333\017\237\313\210\114\067\164\067\337\024\211\174", 15, "jbfbD5/LiEw3dDffFIl8" }, { "\344\122\212\142\231\251\146\253", 8, "5FKKYpmpZqs=" }, { "\147\105", 2, "Z0U=" }, { "\013\235\177\100\212\167\123\172\201", 9, "C51/QIp3U3qB" }, { "\102\136\120\260\230\125\046\253\323\305\044", 11, "Ql5QsJhVJqvTxSQ=" }, { "\101\152\200\060\134\014\124\202\023\057\250\115\341", 13, "QWqAMFwMVIITL6hN4Q==" }, { "\012\310\224\166\265\072\072\270\052\262\147\145\022", 13, "CsiUdrU6OrgqsmdlEg==" }, { "\021\131\104\067\051\316", 6, "EVlENynO" }, { "\104\323", 2, "RNM=" }, { "\070\274\150\150\014\077", 6, "OLxoaAw/" }, { "\100\132\201\357\023\222\243\301\357", 9, "QFqB7xOSo8Hv" }, { "\225\244", 2, "laQ=" }, { "\212\270\067\052\145\203", 6, "irg3KmWD" }, { "\363\252\326\213\370\065\072\154\077\335\202\242\236\274", 14, "86rWi/g1Omw/3YKinrw=" }, { "\141\041\315\033", 4, "YSHNGw==" }, { "\216\257\025\305\362\044\264\133", 8, "jq8VxfIktFs=" }, { "\342\377\135\236", 4, "4v9dng==" }, { "\121\100\077\162\374\162\274\121\100", 9, "UUA/cvxyvFFA" }, { "\204", 1, "hA==" }, { "\306\345\332\023\241\273\064\227\020\326\102\123\003", 13, "xuXaE6G7NJcQ1kJTAw==" }, { "\227\142\207\137\322\344\074\317\007\245\120", 11, "l2KHX9LkPM8HpVA=" }, { "\267\051\051", 3, "tykp" }, { "\005\244", 2, "BaQ=" }, { "\215\060\165\046\210", 5, "jTB1Jog=" }, { "\100\376\271\317\250\013\264\360\330\012\325\103", 12, "QP65z6gLtPDYCtVD" }, { "\233\340\212\127\160\167\077", 7, "m+CKV3B3Pw==" }, { "\200\041\036\206\273\067", 6, "gCEehrs3" }, { "\207\067\003\324\025\351\033\223\226\300\002\255\167\342\316", 15, "hzcD1BXpG5OWwAKtd+LO" }, { "\263\364\115\054\347\350", 6, "s/RNLOfo" }, { "\211\252\065\167\224", 5, "iao1d5Q=" }, { "\024\327\120\076\031\035\104\003\247", 9, "FNdQPhkdRAOn" }, { "\143\302\131\030\204\134\036\023\305\203\010\236\204\303", 14, "Y8JZGIRcHhPFgwiehMM=" }, { "\124\225\066\007", 4, "VJU2Bw==" }, { "\173\043\162\031\330\351", 6, "eyNyGdjp" }, { "\323\112\227\176\021\120\311\202\035\041\153\326\137", 13, "00qXfhFQyYIdIWvWXw==" }, { "\235\006\017\301\200\121\013\230\373\264\215\256\322\126\111", 15, "nQYPwYBRC5j7tI2u0lZJ" }, { "\317\113\144\056\014\120\246\143\325\272", 10, "z0tkLgxQpmPVug==" }, { "\106\136\226\023\146\054\366\070\007\270\345\321\245\304\177\147", 16, "Rl6WE2Ys9jgHuOXRpcR/Zw==" }, { "\042\163\374\234\332\173\055\166", 8, "InP8nNp7LXY=" }, { "\375\011\321\370\300", 5, "/QnR+MA=" }, { "\034", 1, "HA==" }, { "\350", 1, "6A==" }, { "\147\136\210\264\353\267\311\341\073\110\270\071\033", 13, "Z16ItOu3yeE7SLg5Gw==" }, { "\133\341\131\206\211\171", 6, "W+FZhol5" }, { "\146\176\236\340\264\370\270\313\261\304\217", 11, "Zn6e4LT4uMuxxI8=" }, { "\347\111\263\244\131\103\022\272\163\100\337\324\340\247\006", 15, "50mzpFlDErpzQN/U4KcG" }, { "\132\167\314\125\023\172\223\140\264\146\167\156\245", 13, "WnfMVRN6k2C0ZndupQ==" }, { "\206", 1, "hg==" }, { "\000\346\367\051\051\116", 6, "AOb3KSlO" }, { "\253\117\134\331", 4, "q09c2Q==" }, { "\267\130\307\170", 4, "t1jHeA==" }, { "\252\367\311\250\126\031\001\065\107", 9, "qvfJqFYZATVH" }, { "\204\011\351\022\206\076\056\334\100", 9, "hAnpEoY+LtxA" }, { "\004\302\141\333\230\255\215", 7, "BMJh25itjQ==" }, { "\052\357\233\266\237\017\260\101\000", 9, "Ku+btp8PsEEA" }, { "\302\024\373\144\071\312\012\044\304\340\026\222\066\216", 14, "whT7ZDnKCiTE4BaSNo4=" }, { "\342\054\344\331\312\200\052", 7, "4izk2cqAKg==" }, { "\156\234\310\023\077\041\310\005\137\175\034\307\247", 13, "bpzIEz8hyAVffRzHpw==" }, { "\051\316\243\225\076\257", 6, "Kc6jlT6v" }, { "\275\263\026\127\315\140\172\110\002\365\067\061\270\331", 14, "vbMWV81gekgC9TcxuNk=" }, { "\240\021", 2, "oBE=" }, { "\125\161\171\026\354", 5, "VXF5Fuw=" }, { "\052\131", 2, "Klk=" }, { "\335\234\230\006\054\265\273\124\147\131\015\054\036\335\353", 15, "3ZyYBiy1u1RnWQ0sHt3r" }, { "\073\126\160\312\341\345\234\353\264\245\115\220\316\063\102", 15, "O1ZwyuHlnOu0pU2QzjNC" }, { "\200\070\242\226\226\027\147", 7, "gDiilpYXZw==" }, { "\132\111\013\325\224\115\107\236\124\310\144\262\156\001\004\227", 16, "WkkL1ZRNR55UyGSybgEElw==" }, { "\340\357\121\156\255\173\153\221\125\024", 10, "4O9Rbq17a5FVFA==" }, { "\060\037\251\063\073\022\206\033", 8, "MB+pMzsShhs=" }, { "\355\241", 2, "7aE=" }, { "\144\033\132\321\153\017\244\145\211\027\313\067\166\167\104", 15, "ZBta0WsPpGWJF8s3dndE" }, { "\073\227\264\070\151\002", 6, "O5e0OGkC" }, { "\201\364\206\002\033\125\075\110\036\152\347\011\146\077\023\354", 16, "gfSGAhtVPUgeaucJZj8T7A==" }, { "\232\205\305\006\214\266\355\107\007\314\223\254\142\055\045\260", 16, "moXFBoy27UcHzJOsYi0lsA==" }, { "\053\221\122\341\163", 5, "K5FS4XM=" }, { "\245\113\335\066\012\245\334\335\006\350\373\254\121\346", 14, "pUvdNgql3N0G6PusUeY=" }, { "\250\126\360\135\053\301\342\200", 8, "qFbwXSvB4oA=" }, { "\154\323\054\236\175\252\270\270\220", 9, "bNMsnn2quLiQ" }, { "\322\260\320\175\263", 5, "0rDQfbM=" }, { "\136\073\307\102\376\033\002\243", 8, "XjvHQv4bAqM=" }, { "\361\323\236", 3, "8dOe" }, { "\143\007\375\015", 4, "Ywf9DQ==" }, { "\122\240\036\350\132\212\037\134\114", 9, "UqAe6FqKH1xM" }, { "\213\004\377\313\312\314\144\350\055\147\062\064\270\273\150\221", 16, "iwT/y8rMZOgtZzI0uLtokQ==" }, { "\246\346\106\301\277\300\100", 7, "puZGwb/AQA==" }, { "\176\034\360\143\160\016\072\017\322", 9, "fhzwY3AOOg/S" }, { "\046\335\103\356\145\364\266\165\356\146", 10, "Jt1D7mX0tnXuZg==" }, { "\147\231\300\372\053\373\375\363\257\071", 10, "Z5nA+iv7/fOvOQ==" }, { "\241", 1, "oQ==" }, { "\044\231\150\021\346\347", 6, "JJloEebn" }, { "\026\361\151\071\101", 5, "FvFpOUE=" }, { "\274\021\324\260\123\343", 6, "vBHUsFPj" }, { "\255\312", 2, "rco=" }, { "\012\362\172\166", 4, "CvJ6dg==" }, { "\223\117\213\351\120\321", 6, "k0+L6VDR" }, { "\314\150\017\355\321\372", 6, "zGgP7dH6" }, { "\262\152\141\170\227\353\363\162\116\327\247\342\302\326\255\245", 16, "smpheJfr83JO16fiwtatpQ==" }, { "\276\336\043\244\015\360\114\273\113", 9, "vt4jpA3wTLtL" }, { "\307\075\305\152\226\265\045\170", 8, "xz3Fapa1JXg=" }, { "\342\210\307\244\132\345", 6, "4ojHpFrl" }, { "\370\125\040\013\267\004\057\371\155\321\107\174\241\041", 14, "+FUgC7cEL/lt0Ud8oSE=" }, { "\327\111\202\040\314\147\164\116\217\217\220", 11, "10mCIMxndE6Pj5A=" }, { "\176", 1, "fg==" }, { "\107\326\002\256\146\112\137\304\013\020\020\163\264\213\145\141", 16, "R9YCrmZKX8QLEBBztItlYQ==" }, { "\216", 1, "jg==" }, { "\327\246\371\266\023", 5, "16b5thM=" }, { "\027\352\164\125\266\241\266\272", 8, "F+p0Vbahtro=" }, { "\001\135\250\345", 4, "AV2o5Q==" }, { "\237\302\312\152\355\022\161\240\000\151\330", 11, "n8LKau0ScaAAadg=" }, { "\343\144\171\236\255\261\275\315\300\026\346", 11, "42R5nq2xvc3AFuY=" }, { "\371\206\264\033\200\232\373\003\237\061\120\051\353", 13, "+Ya0G4Ca+wOfMVAp6w==" }, { "\315\220\061\106", 4, "zZAxRg==" }, { "\007", 1, "Bw==" }, { "\125\217\033\216\066\340\143\254\133\004\165\110\143\117\146", 15, "VY8bjjbgY6xbBHVIY09m" }, { "\050\073\200\116\346\355\073\205\061\266\161\033\125\301", 14, "KDuATubtO4UxtnEbVcE=" }, { "\233\140\272\145\333", 5, "m2C6Zds=" }, { "\045\256\173\034\034\373\051\205\041\016\070\212\023\073\204\267", 16, "Ja57HBz7KYUhDjiKEzuEtw==" }, { "\342\254\000\251\017\204\350\152\211\106\116\323\146\262\067\031", 16, "4qwAqQ+E6GqJRk7TZrI3GQ==" }, { "\100\246\015\313\000\366\205\367\273\053", 10, "QKYNywD2hfe7Kw==" }, { "\353\127\334\173\217\266\372\214\374", 9, "61fce4+2+oz8" }, { "\144\243\162\123\006\211\035\337\342\174\071\157\244\316\063\154", 16, "ZKNyUwaJHd/ifDlvpM4zbA==" }, { "\013\371\150\050", 4, "C/loKA==" }, { "\340\214\237\210\113\145\007\077\136\351", 10, "4IyfiEtlBz9e6Q==" }, { "\336\055\356\341\212\040", 6, "3i3u4Yog" }, { "\354\316\211\157\113\304\374\267\010\137\264\043\220\306\210\125", 16, "7M6Jb0vE/LcIX7QjkMaIVQ==" }, { "\355\116\363\331\314\366\005\230\253\137", 10, "7U7z2cz2BZirXw==" }, { "\017\353\200\145\335\054\106\231", 8, "D+uAZd0sRpk=" }, { "\017\146\253\337\150\156\326\076\105\040\026\154\133", 13, "D2ar32hu1j5FIBZsWw==" }, { "\072", 1, "Og==" }, { "\163\107\062\261\176\103\261\267\031\214\346\350\124\101\257", 15, "c0cysX5DsbcZjOboVEGv" }, { "\333\005\104\376\205\323\203", 7, "2wVE/oXTgw==" }, { "\072", 1, "Og==" }, { "\246\270\237\262\261\252\220\273", 8, "prifsrGqkLs=" }, { "\076\140", 2, "PmA=" }, { "\343\043\335\346\134\003\240\244\067\271\105\311", 12, "4yPd5lwDoKQ3uUXJ" }, { "\327\375\152\126", 4, "1/1qVg==" }, { "\103\231\176\252\263\126\047\356\370\266\027\072\003\162", 14, "Q5l+qrNWJ+74thc6A3I=" }, { "\373\321", 2, "+9E=" }, { "\127\052\054\340\245\243\261", 7, "Vyos4KWjsQ==" }, { "\027\236\317\116\373\155\111\057\026\371\247\227\055\242", 14, "F57PTvttSS8W+aeXLaI=" }, { "\175\166\256\272\045\302\221\306\237\151\116\031\223\233", 14, "fXauuiXCkcafaU4Zk5s=" }, { "\140\241", 2, "YKE=" }, { "\064\332\317\246\113\370\276\341\302", 9, "NNrPpkv4vuHC" }, { "\245\306\176\341\217\000\073\265\237\124", 10, "pcZ+4Y8AO7WfVA==" }, { "\026\173\274\034\340\061\376\246\233\375\326\250\164\313\304\353", 16, "Fnu8HOAx/qab/daodMvE6w==" }, { "\277\034", 2, "vxw=" }, { "\215\120\005\160\173\000\153\373\026\123\045\074\142\337", 14, "jVAFcHsAa/sWUyU8Yt8=" }, { "\221\122\070\352\346\035\227\270\342\066\237\170\266", 13, "kVI46uYdl7jiNp94tg==" }, { "\274\270", 2, "vLg=" }, { "\341\155\367\111\106\042\036\112\242\262\004\354\131\153", 14, "4W33SUYiHkqisgTsWWs=" }, { "\254\103\176\060", 4, "rEN+MA==" }, { "\277\305\046\061\037\111\121\315", 8, "v8UmMR9JUc0=" }, { "\220\155\334\167\323\340\065\301\101\014\101\277", 12, "kG3cd9PgNcFBDEG/" }, { "\117", 1, "Tw==" }, { "\152\165\104\351\003\100\006\311\061\045", 10, "anVE6QNABskxJQ==" }, { "\171\020\056\304\213", 5, "eRAuxIs=" }, { "\263\317\223\332\321\036\203\241\016\355\173\163\060\121", 14, "s8+T2tEeg6EO7XtzMFE=" }, { "\051\046\035\170\002", 5, "KSYdeAI=" }, { "\214\324\001\125\062\247\010\122\147\376\021\031", 12, "jNQBVTKnCFJn/hEZ" }, { "\035\126\117\235\225\176\135\370\347", 9, "HVZPnZV+Xfjn" }, { "\334", 1, "3A==" }, { "\203\117\166\021\144\257", 6, "g092EWSv" }, { "\262\155", 2, "sm0=" }, { "\241\242\031\110\014\223\340\175\311", 9, "oaIZSAyT4H3J" }, { "\074\373\225\217\164\140\125\353\300\256\146\202\301\133", 14, "PPuVj3RgVevArmaCwVs=" }, { "\336\354\143\220\367\007\342\114\007\040\331\362\245", 13, "3uxjkPcH4kwHINnypQ==" }, { "\144\107\331\316\274\005\264", 7, "ZEfZzrwFtA==" }, { "\027\371\125\116\174\275\160\220\306\266", 10, "F/lVTny9cJDGtg==" }, { "\155\315\167\325\171\213\242\064\211\122\217\335\250\154", 14, "bc131XmLojSJUo/dqGw=" }, { "\126\075\332\131\265\225\065\337\130\133\314\337", 12, "Vj3aWbWVNd9YW8zf" }, { "\051\032\131\176\353\047\001\037\304\170\136\155\222\344", 14, "KRpZfusnAR/EeF5tkuQ=" }, { "\323\011\213\013\160\037\274\235\026\155\352\234", 12, "0wmLC3AfvJ0Wbeqc" }, { "\174\260\057\114\125\272\330\213\141\034\130\277", 12, "fLAvTFW62IthHFi/" }, { "\234\376\012\217\376\061\152\202\177", 9, "nP4Kj/4xaoJ/" }, { "\162\267\211\246\213\237\325\136\140\143\173", 11, "creJpouf1V5gY3s=" }, { "\224\317\166\131\020\266\045", 7, "lM92WRC2JQ==" }, { "\075\002\145\273\112\375\070\101\311\125\337\070\003\336\363", 15, "PQJlu0r9OEHJVd84A97z" }, { "\177\105\134\344\106\350\034\205", 8, "f0Vc5EboHIU=" }, { "\130\336\125\300\053\331\050", 7, "WN5VwCvZKA==" }, { 0, 0, 0 } }; static void test3(void) { unsigned char bspace[100]; struct buf b; long long i, outlen; buf_init(&b, bspace, sizeof bspace); for (i = 0; testvectors64[i].in; ++i) { buf_purge(&b); outlen = str_len(testvectors64[i].out); buf_putbase64(&b, (unsigned char *)testvectors64[i].in, testvectors64[i].inlen); if (b.len != outlen || !byte_isequal(b.buf, outlen, testvectors64[i].out)) { fail("buf_putbase64 failed"); } } } static void test4(void) { unsigned char bspace[2]; struct buf b; buf_init(&b, bspace, 1); if (buf_ready(&b, 1)) fail("buf_ready failed"); buf_init(&b, bspace, 2); if (!buf_ready(&b, 1)) fail("buf_ready failed"); } struct vectorssh { const char *in; long long inlen; const char *out; long long outlen; } testvectorssh[] = { { "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 32, "\0\0\0\0" , 4}, { "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1", 32, "\0\0\0\040\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1" , 36}, { "\377\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1", 32, "\0\0\0\041\0\377\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1" , 37}, { 0, 0, 0, 0}, }; static unsigned char bspacesh[64]; static struct buf b; static void test5(void) { long long i; buf_init(&b, bspacesh, sizeof bspacesh); for (i = 0; testvectorssh[i].in; ++i) { buf_purge(&b); buf_putsharedsecret(&b, (unsigned char *)testvectorssh[i].in, testvectorssh[i].inlen); if (b.len != testvectorssh[i].outlen || !byte_isequal(b.buf, b.len, testvectorssh[i].out)) { fail("buf_putbasesharedsecret failed"); } } } int main(void) { test1(); test2(); test3(); test4(); test5(); _exit(0); } tinyssh-20180201/tinyssh-tests/bytetest.c000066400000000000000000000034071322704306500203300ustar00rootroot00000000000000/* 20140302 Jan Mojzis Public domain. */ /* XXX TODO - check if byte_isequal is constant-time */ #include #include "fail.h" #include "byte.h" int main(void) { unsigned char b1[32]; unsigned char b2[32]; long long i, j; const char *x = "abcdefgh"; char y[8]; /* byte_zero test */ for (i = 0; i < 32; ++i) { for (j = 0; j < sizeof b1; ++j) b1[j] = 0; for (j = 0; j < sizeof b2; ++j) b2[j] = 0; b1[i] = 0xff; b2[i] = 0xff; byte_zero(b1, sizeof b1); if (byte_isequal(b1, 32, b2) != 0) fail("byte_zero failure"); } /* byte_isequal test */ for (i = 0; i < sizeof b1; ++i) b1[i] = 0xff; for (i = 0; i < sizeof b2; ++i) b2[i] = 0xff; if (byte_isequal(b1, 32, b2) == 0) fail("byte_isequal failure"); for (i = 0; i < 32; ++i) { b1[i] = 0; if (byte_isequal(b1, 32, b2) != 0) fail("byte_isequal failure"); b1[i] = 0xff; } /* byte_copy test */ for (i = 0; i < sizeof b1; ++i) b1[i] = 0xff; for (i = 0; i < sizeof b2; ++i) b2[i] = 0x00; byte_copy(b1, 32, b2); if (byte_isequal(b1, 32, b2) == 0) fail("byte_copy failure"); for (i = 0; i < 32; ++i) { b1[i] = 0; byte_copy(b1, 32, b2); if (byte_isequal(b1, 32, b2) == 0) fail("byte_copy failure"); b1[i] = 0xff; } byte_zero(y, 8); if (!byte_isequal(y, 8, "\0\0\0\0\0\0\0\0")) fail("byte_zero/byte_isequal failure"); byte_copy(y, 8, x); if (!byte_isequal(y, 8, x)) fail("byte_copy/byte_isequal failure"); byte_copy(y, 7, y + 1); if (!byte_isequal(y, 8, "bcdefghh")) fail("byte_copy/byte_isequal failure"); byte_zero(y, 8); if (!byte_isequal(y, 8, "\0\0\0\0\0\0\0\0")) fail("byte_zero/byte_isequal failure"); return 0; } tinyssh-20180201/tinyssh-tests/channel_droptest.c000077700000000000000000000000001322704306500242122emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/channel_forkptytest.c000077700000000000000000000000001322704306500247442emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/channel_forktest.c000066400000000000000000000041051322704306500220120ustar00rootroot00000000000000/* 20140416 Jan Mojzis Public domain. */ #include #include #include #include #include #include "fail.h" #include "writeall.h" #include "readall.h" #include "byte.h" #include "channel.h" /* test if channel_fork pipes works from child to parent */ static void test1(void) { int fd[3]; pid_t pid; int status; char buf[5]; pid = channel_fork(fd); if (pid == -1) fail("channel_fork failure"); if (pid == 0) { if (writeall(1, "ahoj1", 5) == -1) fail("writeall failure"); if (writeall(2, "ahoj2", 5) == -1) fail("writeall failure"); _exit(0); } if (fd[0] == -1) fail("channel_fork failure"); if (fd[1] == -1) fail("channel_fork failure"); if (fd[2] == -1) fail("channel_fork failure"); if (readall(fd[1], buf, 5) == -1) fail("readall failure"); if (!byte_isequal(buf, 5, "ahoj1")) fail("readall failure"); if (readall(fd[2], buf, 5) == -1) fail("readall failure"); if (!byte_isequal(buf, 5, "ahoj2")) fail("readall failure"); while (waitpid(pid, &status, 0) != pid) {}; if (!WIFEXITED(status)) fail("process killed"); if (WEXITSTATUS(status)) fail("process exited with status != 0"); } /* test if channel_fork pipes works from parent to child */ static void test2(void) { int fd[3]; pid_t pid; int status; char buf[5]; pid = channel_fork(fd); if (pid == -1) fail("channel_fork failure"); if (pid == 0) { if (readall(0, buf, 5) == -1) fail("readall failure"); if (!byte_isequal(buf, 5, "ahoj0")) fail("readall failure"); _exit(0); } if (fd[0] == -1) fail("channel_fork failure"); if (fd[1] == -1) fail("channel_fork failure"); if (fd[2] == -1) fail("channel_fork failure"); if (writeall(fd[0], "ahoj0", 5) == -1) fail("writeall failure"); while (waitpid(pid, &status, 0) != pid) {}; if (!WIFEXITED(status)) fail("process killed"); if (WEXITSTATUS(status)) fail("process exited with status != 0"); } int main(void) { alarm(10); test1(); test2(); _exit(0); } tinyssh-20180201/tinyssh-tests/channel_subsystemtest.c000066400000000000000000000034631322704306500231150ustar00rootroot00000000000000/* 20150113 Jan Mojzis Public domain. */ #include #include "fail.h" #include "numtostr.h" #include "channel.h" const char *vector[] = { "0=0", "1=1", "2=2", "3=3", "4=4", "5=5", "6=6", "7=7", "8=8", "9=9", "10=10", "11=11", "12=12", "13=13", "14=14", "15=15", "16=16", "17=17", "18=18", "19=19", "20=20", "21=21", "22=22", "23=23", "24=24", "25=25", "26=26", "27=27", "28=28", "29=29", "30=30", "31=31", "32=32", "33=33", "34=34", "35=35", "36=36", "37=37", "38=38", "39=39", "40=40", "41=41", "42=42", "43=43", "44=44", "45=45", "46=46", "47=47", "48=48", "49=49", "50=50", "51=51", "52=52", "53=53", "54=54", "55=55", "56=56", "57=57", "58=58", "59=59", "60=60", "61=61", "62x=62", "63=63x", "64=64" }; #if CHANNEL_SUBSYSTEM_MAX != 64 error ! #endif static void test1(void) { long long i; for (i = 0; i < 64; ++i) { if (!channel_subsystem_add(vector[i])) fail("failure"); } if (channel_subsystem_add(vector[i])) fail("failure"); } static void test2(void) { long long i; char *x, *n; for (i = 0; i < 62; ++i) { n = numtostr(0, i); x = channel_subsystem_get(n); if (!x) fail("failure"); if (strcmp(x, n)) fail("failure"); } n = numtostr(0, 62); x = channel_subsystem_get(n); if (x) fail("failure"); n = numtostr(0, 63); x = channel_subsystem_get(n); if (!x) fail("failure"); if (!strcmp(x, n)) fail("failure"); n = numtostr(0, 64); x = channel_subsystem_get(n); if (x) fail("failure"); } int main(void) { test1(); test2(); _exit(0); } tinyssh-20180201/tinyssh-tests/channeltest.c000066400000000000000000000122361322704306500207750ustar00rootroot00000000000000/* 20140423 Jan Mojzis Public domain. */ #include #include #include #include #include "crypto_uint32.h" #include "fail.h" #include "run.h" #include "byte.h" #include "channel.h" const char *user = "user"; const char *termname = "xterm"; crypto_uint32 id = 0; crypto_uint32 remotewindow = 100; crypto_uint32 maxpacket = 100; crypto_uint32 localwindow; unsigned char ch = 'x'; static char *name(void) { struct passwd *pw; pw = getpwuid(geteuid()); return pw->pw_name; } /* channel can't be opened 2x */ static void testopen1(void) { channel_open(user, id, remotewindow, maxpacket, &localwindow); channel_open(user, id, remotewindow, maxpacket, &localwindow); } /* *localwindow can't be 0 */ static void testopen2(void) { channel_open(user, id, remotewindow, maxpacket, 0); } /* maxpacket can't be 0 */ static void testopen3(void) { channel_open(user, id, remotewindow, 0, &localwindow); } /* remotewindow can't be 0 */ static void testopen4(void) { channel_open(user, id, 0, maxpacket, &localwindow); } /* channel_openterminal() can't be called before channel_open() */ static void testtermopen1(void) { channel_openterminal(termname, 0, 0, 0, 0); } /* channel_env() can't be called before channel_open() */ static void testenv1(void) { channel_env("a", "b"); } /* channel_env() can't be called after channel_exec() */ static void testenv2(void) { channel_open(name(), id, remotewindow, maxpacket, &localwindow); channel_exec("exit 0"); channel_env("a", "b"); } /* channel_exec() can't be called before channel_open() */ static void testexec1(void) { channel_exec("true"); } /* channel_put() can't be called before channel_exec() */ static void testput1(void) { channel_open(user, id, remotewindow, maxpacket, &localwindow); channel_put(&ch, 1); } /* channel_puteof() can't be called before channel_exec() */ static void testputeof1(void) { channel_open(user, id, remotewindow, maxpacket, &localwindow); channel_puteof(); } /* channel_read() can't be called before channel_exec() */ static void testread1(void) { channel_open(user, id, remotewindow, maxpacket, &localwindow); channel_read(&ch, 1); } /* channel_extendedread() can't be called before channel_exec() */ static void testextendedread1(void) { channel_open(user, id, remotewindow, maxpacket, &localwindow); channel_extendedread(&ch, 1); } /* channel_write() can't be called before channel_exec() */ static void testwrite1(void) { channel_open(user, id, remotewindow, maxpacket, &localwindow); channel_write(); } /* OK - tests */ static void testok1(void) { int r, s, e; channel_open(name(), id, remotewindow, maxpacket, &localwindow); channel_exec("exit 0"); do { r = channel_waitnohang(&s, &e); } while (r == 0); if (s != 0) fail("process killed"); if (e != 0) fail("bad status"); _exit(0); } static void testok2(void) { int r, s, e; channel_open(name(), id, remotewindow, maxpacket, &localwindow); channel_exec("exit 1"); do { r = channel_waitnohang(&s, &e); } while (r == 0); if (s != 0) fail("process killed"); if (e != 1) fail("bad status"); _exit(0); } static void testok3(void) { int r, s, e; channel_open(name(), id, remotewindow, maxpacket, &localwindow); channel_exec("kill -9 $$"); do { r = channel_waitnohang(&s, &e); } while (r == 0); if (s != 9) fail("bad exit signal"); _exit(0); } static void testok4(void) { int r, s, e; unsigned char buf[10]; channel_open(name(), id, remotewindow, maxpacket, &localwindow); channel_exec("cat"); ch = 'a'; channel_put(&ch, 1); do { r = channel_write(); } while (r == 0); do { r = channel_read(buf, sizeof buf); } while (r == 0); if (r != 1) fail("channel_write()/channel_read() failure"); if (buf[0] != 'a') fail("channel_write()/channel_read() failure"); channel_puteof(); do { r = channel_waitnohang(&s, &e); } while (r == 0); if (s != 0) fail("process killed"); if (e != 0) fail("bad status"); _exit(0); } #define warn_(a, b, x) do { fprintf(stderr, "%s:%llu: warning: %s\n", (a), (unsigned long long)(b), (x)); fflush(stderr); _exit(0); } while (0); #define warn(x) warn_(__FILE__, __LINE__, (x)) static int homedir(void) { struct passwd *pw; struct stat st; pw = getpwuid(geteuid()); if (!pw) return 0; return 1 + stat(pw->pw_dir, &st); } int main(void) { /* don't run check when homedir not exist */ if (!homedir()) { warn("homedir not exist - skipping tests") _exit(0); } run_mustfail(testopen1); run_mustfail(testopen2); run_mustfail(testopen3); run_mustfail(testopen4); run_mustfail(testtermopen1); run_mustfail(testenv1); run_mustfail(testenv2); run_mustfail(testexec1); run_mustfail(testput1); run_mustfail(testputeof1); run_mustfail(testread1); run_mustfail(testextendedread1); run_mustfail(testwrite1); run_mustpass(testok1); run_mustpass(testok2); run_mustpass(testok3); run_mustpass(testok4); ; _exit(0); } tinyssh-20180201/tinyssh-tests/coetest.c000066400000000000000000000007731322704306500201360ustar00rootroot00000000000000/* 20140302 Jan Mojzis Public domain. */ #include #include #include #include "fail.h" #include "coe.h" int main(void) { int pi[2]; long long i; if (pipe(pi) == -1) fail("failure"); for (i = 0; i < 2; ++i) { if (fcntl(pi[i], F_GETFD) != 0) fail("failure"); coe_enable(pi[i]); if (fcntl(pi[i], F_GETFD) == 0) fail("failure"); coe_disable(pi[i]); if (fcntl(pi[i], F_GETFD) != 0) fail("failure"); } _exit(0); } tinyssh-20180201/tinyssh-tests/connectioninfotest.c000066400000000000000000000126221322704306500223770ustar00rootroot00000000000000/* 20140302 Jan Mojzis Public domain. */ #include #include #include #include #include #include #include #include #include #include "fail.h" #include "porttostr.h" #include "iptostr.h" #include "connectioninfo.h" #include "byte.h" static void connectioninfotest_empty(void) { char localip[IPTOSTR_LEN]; char localport[PORTTOSTR_LEN]; char remoteip[IPTOSTR_LEN]; char remoteport[PORTTOSTR_LEN]; connectioninfo(localip, localport, remoteip, remoteport); if (strcmp(localip, "unknown")) fail("connectioninfo failed"); if (strcmp(localport, "0")) fail("connectioninfo failed"); if (strcmp(remoteip, "unknown")) fail("connectioninfo failed"); if (strcmp(remoteport, "0")) fail("connectioninfo failed"); } static void connectioninfotest_tcpserverenv(void) { char localip[IPTOSTR_LEN]; char localport[PORTTOSTR_LEN]; char remoteip[IPTOSTR_LEN]; char remoteport[PORTTOSTR_LEN]; if (setenv("TCPLOCALIP", "aaax", 1) == -1) fail("setenv failed") if (setenv("TCPLOCALPORT", "bbbx", 1) == -1) fail("setenv failed") if (setenv("TCPREMOTEIP", "cccx", 1) == -1) fail("setenv failed") if (setenv("TCPREMOTEPORT", "dddx", 1) == -1) fail("setenv failed") connectioninfo(localip, localport, remoteip, remoteport); if (strcmp(localip, "aaax")) fail("connectioninfo failed"); if (strcmp(localport, "bbbx")) fail("connectioninfo failed"); if (strcmp(remoteip, "cccx")) fail("connectioninfo failed"); if (strcmp(remoteport, "dddx")) fail("connectioninfo failed"); if (unsetenv("TCPLOCALIP") == -1) fail("unsetenv failed") if (unsetenv("TCPLOCALPORT") == -1) fail("unsetenv failed") if (unsetenv("TCPREMOTEIP") == -1) fail("unsetenv failed") if (unsetenv("TCPREMOTEPORT") == -1) fail("unsetenv failed") } static void connectioninfotest_curvecpserverenv(void) { #ifdef TODO char localip[IPTOSTR_LEN]; char localport[PORTTOSTR_LEN]; char remoteip[IPTOSTR_LEN]; char remoteport[PORTTOSTR_LEN]; if (setenv("CURVECPLOCALIP", "aaay", 1) == -1) fail("setenv failed") if (setenv("CURVECPLOCALPORT", "bbby", 1) == -1) fail("setenv failed") if (setenv("CURVECPREMOTEIP", "cccy", 1) == -1) fail("setenv failed") if (setenv("CURVECPREMOTEPORT", "dddy", 1) == -1) fail("setenv failed") connectioninfo(localip, localport, remoteip, remoteport); if (strcmp(localip, "aaay")) fail("connectioninfo failed"); if (strcmp(localport, "bbby")) fail("connectioninfo failed"); if (strcmp(remoteip, "cccy")) fail("connectioninfo failed"); if (strcmp(remoteport, "dddy")) fail("connectioninfo failed"); if (unsetenv("CURVECPLOCALIP") == -1) fail("unsetenv failed") if (unsetenv("CURVECPLOCALPORT") == -1) fail("unsetenv failed") if (unsetenv("CURVECPREMOTEIP") == -1) fail("unsetenv failed") if (unsetenv("CURVECPREMOTEPORT") == -1) fail("unsetenv failed") #endif } static struct vectors { const char *port; const char *portstr; } testvectors[] = { { "\377\000", "65280" }, { "\377\001", "65281" }, { "\377\002", "65282" }, { "\377\003", "65283" }, { "\377\004", "65284" }, { "\377\005", "65285" }, { "\377\006", "65286" }, { "\377\007", "65287" }, { "\377\010", "65288" }, { "\377\011", "65289" }, { "\377\012", "65290" }, { "\377\013", "65291" }, { "\377\014", "65292" }, { "\377\015", "65293" }, { "\377\016", "65294" }, { "\377\017", "65295" }, { "\377\020", "65296" }, { "\377\021", "65297" }, { "\377\022", "65298" }, { "\377\023", "65299" }, { 0, 0 } }; static void connectioninfotest_fromfd(void) { int fd; struct sockaddr_in sa; long long i, j; char localip[IPTOSTR_LEN]; char localport[PORTTOSTR_LEN]; char remoteip[IPTOSTR_LEN]; char remoteport[PORTTOSTR_LEN]; /* create socket */ fd = socket(PF_INET, SOCK_DGRAM, 0); if (fd == -1) fail("socket failed"); /* bind */ for (i = 0; testvectors[i].port; ++i) { byte_zero(&sa, sizeof sa); sa.sin_family = PF_INET; byte_copy(&sa.sin_addr, 4, "\177\0\0\1"); byte_copy(&sa.sin_port, 2, testvectors[i].port); if (bind(fd, (struct sockaddr *)&sa, sizeof sa) == 0) goto bind; } fail("bind failed"); bind: /* connect */ for (j = i; testvectors[j].port; ++j) { byte_zero(&sa, sizeof sa); sa.sin_family = PF_INET; byte_copy(&sa.sin_addr, 4, "\177\0\0\1"); byte_copy(&sa.sin_port, 2, testvectors[i].port); if (connect(fd, (struct sockaddr *)&sa, sizeof sa) == 0) goto connect; } fail("connect failed"); connect: close(0); if (dup(fd) != 0) fail("dup failed"); close(fd); connectioninfo(localip, localport, remoteip, remoteport); if (strcmp(localip, "127.0.0.1")) fail("connectioninfo failed"); if (strcmp(localport, testvectors[i].portstr)) fail("connectioninfo failed"); if (strcmp(remoteip, "127.0.0.1")) fail("connectioninfo failed"); if (strcmp(remoteport, testvectors[j].portstr)) fail("connectioninfo failed"); close(0); } int main(void) { connectioninfotest_empty(); connectioninfotest_tcpserverenv(); connectioninfotest_empty(); connectioninfotest_curvecpserverenv(); connectioninfotest_empty(); connectioninfotest_fromfd(); connectioninfotest_empty(); _exit(0); } tinyssh-20180201/tinyssh-tests/dietest.c000077700000000000000000000000001322704306500223172emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/dropuidgidtest.c000066400000000000000000000014051322704306500215130ustar00rootroot00000000000000/* 20140320 Jan Mojzis Public domain. */ #include #include "run.h" #include "fail.h" #include "dropuidgid.h" static void droproot(void) { if (geteuid() == 0) { if (!dropuidgid(0, 1230, 1230)) _exit(111); } if (geteuid() == 0) _exit(111); } static void test1(void) { droproot(); if (dropuidgid(0, 1231, getegid())) _exit(111); _exit(0); } static void test2(void) { droproot(); if (!dropuidgid(0, geteuid(), getegid())) _exit(111); if (!dropuidgid(0, geteuid(), getegid())) _exit(111); _exit(0); } static void test3(void) { droproot(); if (!dropuidgid(0, 0, 0)) _exit(111); _exit(0); } int main(void) { run_mustpass(test1); run_mustpass(test2); run_mustfail(test3); _exit(0); } tinyssh-20180201/tinyssh-tests/emptytest.c000066400000000000000000000001411322704306500205130ustar00rootroot00000000000000/* 20140319 Jan Mojzis Public domain. */ #include int main(void) { _exit(0); } tinyssh-20180201/tinyssh-tests/envtest.c000066400000000000000000000021771322704306500201600ustar00rootroot00000000000000/* 20130606 Jan Mojzis Public domain. */ #include #include #include #include #include "fail.h" #include "env.h" static void test_zero(void) { if (env_get(0)) fail("env_get accepts zero input"); } static void doit(const char *d0, const char *d) { char *s; s = env_get(d0); if (!s) { if (d) fail("env_get failure"); return; } if (!s) fail("env_get failure"); if (strcmp(s, d)) fail("env_get failure"); return; } static void test_setunset(void) { setenv("x","x",1); doit("x", "x"); setenv("x","y",1); doit("x", "y"); unsetenv("x"); doit("x", 0); } static void test_env(void) { const char *env[10]; env[0] = "a=1"; env[1] = "a=2"; env[2] = "b=b=1"; env[3] = "c="; env[4] = "d"; env[5] = "=null"; env[6] = "e=="; env[7] = 0; environ = (char **)env; doit("a", "1"); doit("b", "b=1"); doit("b=b", "1"); doit("c", ""); doit("d", 0); doit("e", "="); doit("", "null"); } int main(void) { test_zero(); test_setunset(); test_env(); _exit(0); } tinyssh-20180201/tinyssh-tests/etest.c000066400000000000000000000002161322704306500176040ustar00rootroot00000000000000/* 20140417 Jan Mojzis Public domain. */ #include #include "e.h" #ifndef EPROTO error! #endif int main(void) { _exit(0); } tinyssh-20180201/tinyssh-tests/fail.h000066400000000000000000000013441322704306500174030ustar00rootroot00000000000000#ifndef _FAIL_H____ #define _FAIL_H____ #include #include #include "fail.h" #define fail_(a, b, x) do { fprintf(stderr, "%s:%llu: %s\n", (a), (unsigned long long)(b), (x)); fflush(stderr); _exit(111); } while (0); #define fail(x) fail_(__FILE__, __LINE__, (x)) static void fail_printdata(char *text, unsigned char *data, long long len) { long long i; fprintf(stderr, "%s = {\n ", text); for (i = 0; i < len; ++i) { if (i == len - 1) { fprintf(stderr, "0x%02x", data[i]); } else { fprintf(stderr, "0x%02x, ", data[i]); if (i % 8 == 7) fprintf(stderr, "\n "); } } fprintf(stderr, "\n};\n"); fflush(stderr); } #endif tinyssh-20180201/tinyssh-tests/forkptytest.c000077700000000000000000000000001322704306500232542emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/getlntest.c000066400000000000000000000040151322704306500204720ustar00rootroot00000000000000/* 20140323 Jan Mojzis Public domain. */ #include #include #include "fail.h" #include "savesync.h" #include "str.h" #include "byte.h" #include "open.h" #include "getln.h" int main(void) { char buf[6]; int fd; int r; /* create test file */ if (savesync("getlntest.txt", "ab\ncd", 5) == -1) fail("savesync() failure"); /* ok test */ fd = open_read("getlntest.txt"); if (fd == -1) fail("open_read() failure"); r = getln(fd, buf, sizeof buf); if (r != 1) fail("getln() failure"); if (str_len(buf) != 3) fail("getln() failure"); if (!byte_isequal(buf, 3, "ab\n")) fail("getln() failure"); r = getln(fd, buf, sizeof buf); if (r != 0) fail("getln() failure"); if (str_len(buf) != 2) fail("getln() failure"); if (!byte_isequal(buf, 2, "cd")) fail("getln() failure"); close(fd); /* overflow test */ fd = open_read("getlntest.txt"); if (fd == -1) fail("open_read() failure"); r = getln(fd, buf, 3); if (r != -1) fail("getln() failure"); close(fd); if (unlink("getlntest.txt") == -1) fail("unlink() failure"); /* empty test */ if (savesync("getlntest.txt", "", 0) == -1) fail("savesync() failure"); fd = open_read("getlntest.txt"); if (fd == -1) fail("open_read() failure"); r = getln(fd, buf, sizeof buf); if (r != 0) fail("getln() failure"); if (str_len(buf) != 0) fail("getln() failure"); close(fd); if (unlink("getlntest.txt") == -1) fail("unlink() failure"); /* empty line test */ if (savesync("getlntest.txt", "\n", 1) == -1) fail("savesync() failure"); fd = open_read("getlntest.txt"); if (fd == -1) fail("open_read() failure"); r = getln(fd, buf, sizeof buf); if (r != 1) fail("getln() failure"); if (str_len(buf) != 1) fail("getln() failure"); r = getln(fd, buf, sizeof buf); if (r != 0) fail("getln() failure"); if (str_len(buf) != 0) fail("getln() failure"); close(fd); if (unlink("getlntest.txt") == -1) fail("unlink() failure"); _exit(0); } tinyssh-20180201/tinyssh-tests/globaltest.c000066400000000000000000000004141322704306500206200ustar00rootroot00000000000000/* 20140304 Jan Mojzis Public domain. */ #include #include "global.h" #ifndef GLOBAL_BSIZE error! #endif int main(void) { global_init(); global_init(); global_purge(); global_purge(); global_init(); global_init(); _exit(0); } tinyssh-20180201/tinyssh-tests/iptostrtest.c000066400000000000000000001453141322704306500210750ustar00rootroot00000000000000/* 20130605 Jan Mojzis Public domain. */ #include #include "fail.h" #include "iptostr.h" struct vectors { const char *ip; const char *ipstr; } testvectors[] = { { "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000", "::" }, { "\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000", "1::" }, { "\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000", "0:1::" }, { "\000\001\000\001\000\000\000\000\000\000\000\000\000\000\000\000", "1:1::" }, { "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000", "0:0:1::" }, { "\000\001\000\000\000\001\000\000\000\000\000\000\000\000\000\000", "1:0:1::" }, { "\000\000\000\001\000\001\000\000\000\000\000\000\000\000\000\000", "0:1:1::" }, { "\000\001\000\001\000\001\000\000\000\000\000\000\000\000\000\000", "1:1:1::" }, { "\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000", "0:0:0:1::" }, { "\000\001\000\000\000\000\000\001\000\000\000\000\000\000\000\000", "1:0:0:1::" }, { "\000\000\000\001\000\000\000\001\000\000\000\000\000\000\000\000", "0:1:0:1::" }, { "\000\001\000\001\000\000\000\001\000\000\000\000\000\000\000\000", "1:1:0:1::" }, { "\000\000\000\000\000\001\000\001\000\000\000\000\000\000\000\000", "0:0:1:1::" }, { "\000\001\000\000\000\001\000\001\000\000\000\000\000\000\000\000", "1:0:1:1::" }, { "\000\000\000\001\000\001\000\001\000\000\000\000\000\000\000\000", "0:1:1:1::" }, { "\000\001\000\001\000\001\000\001\000\000\000\000\000\000\000\000", "1:1:1:1::" }, { "\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000", "::1:0:0:0" }, { "\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000", "1::1:0:0:0" }, { "\000\000\000\001\000\000\000\000\000\001\000\000\000\000\000\000", "0:1:0:0:1::" }, { "\000\001\000\001\000\000\000\000\000\001\000\000\000\000\000\000", "1:1:0:0:1::" }, { "\000\000\000\000\000\001\000\000\000\001\000\000\000\000\000\000", "0:0:1:0:1::" }, { "\000\001\000\000\000\001\000\000\000\001\000\000\000\000\000\000", "1:0:1:0:1::" }, { "\000\000\000\001\000\001\000\000\000\001\000\000\000\000\000\000", "0:1:1:0:1::" }, { "\000\001\000\001\000\001\000\000\000\001\000\000\000\000\000\000", "1:1:1:0:1::" }, { "\000\000\000\000\000\000\000\001\000\001\000\000\000\000\000\000", "::1:1:0:0:0" }, { "\000\001\000\000\000\000\000\001\000\001\000\000\000\000\000\000", "1:0:0:1:1::" }, { "\000\000\000\001\000\000\000\001\000\001\000\000\000\000\000\000", "0:1:0:1:1::" }, { "\000\001\000\001\000\000\000\001\000\001\000\000\000\000\000\000", "1:1:0:1:1::" }, { "\000\000\000\000\000\001\000\001\000\001\000\000\000\000\000\000", "0:0:1:1:1::" }, { "\000\001\000\000\000\001\000\001\000\001\000\000\000\000\000\000", "1:0:1:1:1::" }, { "\000\000\000\001\000\001\000\001\000\001\000\000\000\000\000\000", "0:1:1:1:1::" }, { "\000\001\000\001\000\001\000\001\000\001\000\000\000\000\000\000", "1:1:1:1:1::" }, { "\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000", "::1:0:0" }, { "\000\001\000\000\000\000\000\000\000\000\000\001\000\000\000\000", "1::1:0:0" }, { "\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000", "0:1::1:0:0" }, { "\000\001\000\001\000\000\000\000\000\000\000\001\000\000\000\000", "1:1::1:0:0" }, { "\000\000\000\000\000\001\000\000\000\000\000\001\000\000\000\000", "::1:0:0:1:0:0" }, { "\000\001\000\000\000\001\000\000\000\000\000\001\000\000\000\000", "1:0:1::1:0:0" }, { "\000\000\000\001\000\001\000\000\000\000\000\001\000\000\000\000", "0:1:1::1:0:0" }, { "\000\001\000\001\000\001\000\000\000\000\000\001\000\000\000\000", "1:1:1::1:0:0" }, { "\000\000\000\000\000\000\000\001\000\000\000\001\000\000\000\000", "::1:0:1:0:0" }, { "\000\001\000\000\000\000\000\001\000\000\000\001\000\000\000\000", "1::1:0:1:0:0" }, { "\000\000\000\001\000\000\000\001\000\000\000\001\000\000\000\000", "0:1:0:1:0:1::" }, { "\000\001\000\001\000\000\000\001\000\000\000\001\000\000\000\000", "1:1:0:1:0:1::" }, { "\000\000\000\000\000\001\000\001\000\000\000\001\000\000\000\000", "::1:1:0:1:0:0" }, { "\000\001\000\000\000\001\000\001\000\000\000\001\000\000\000\000", "1:0:1:1:0:1::" }, { "\000\000\000\001\000\001\000\001\000\000\000\001\000\000\000\000", "0:1:1:1:0:1::" }, { "\000\001\000\001\000\001\000\001\000\000\000\001\000\000\000\000", "1:1:1:1:0:1::" }, { "\000\000\000\000\000\000\000\000\000\001\000\001\000\000\000\000", "::1:1:0:0" }, { "\000\001\000\000\000\000\000\000\000\001\000\001\000\000\000\000", "1::1:1:0:0" }, { "\000\000\000\001\000\000\000\000\000\001\000\001\000\000\000\000", "0:1::1:1:0:0" }, { "\000\001\000\001\000\000\000\000\000\001\000\001\000\000\000\000", "1:1::1:1:0:0" }, { "\000\000\000\000\000\001\000\000\000\001\000\001\000\000\000\000", "::1:0:1:1:0:0" }, { "\000\001\000\000\000\001\000\000\000\001\000\001\000\000\000\000", "1:0:1:0:1:1::" }, { "\000\000\000\001\000\001\000\000\000\001\000\001\000\000\000\000", "0:1:1:0:1:1::" }, { "\000\001\000\001\000\001\000\000\000\001\000\001\000\000\000\000", "1:1:1:0:1:1::" }, { "\000\000\000\000\000\000\000\001\000\001\000\001\000\000\000\000", "::1:1:1:0:0" }, { "\000\001\000\000\000\000\000\001\000\001\000\001\000\000\000\000", "1::1:1:1:0:0" }, { "\000\000\000\001\000\000\000\001\000\001\000\001\000\000\000\000", "0:1:0:1:1:1::" }, { "\000\001\000\001\000\000\000\001\000\001\000\001\000\000\000\000", "1:1:0:1:1:1::" }, { "\000\000\000\000\000\001\000\001\000\001\000\001\000\000\000\000", "::1:1:1:1:0:0" }, { "\000\001\000\000\000\001\000\001\000\001\000\001\000\000\000\000", "1:0:1:1:1:1::" }, { "\000\000\000\001\000\001\000\001\000\001\000\001\000\000\000\000", "0:1:1:1:1:1::" }, { "\000\001\000\001\000\001\000\001\000\001\000\001\000\000\000\000", "1:1:1:1:1:1::" }, { "\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000", "::1:0" }, /* inet_ntop incompatible: ::0.1.0.0 */ { "\000\001\000\000\000\000\000\000\000\000\000\000\000\001\000\000", "1::1:0" }, { "\000\000\000\001\000\000\000\000\000\000\000\000\000\001\000\000", "0:1::1:0" }, { "\000\001\000\001\000\000\000\000\000\000\000\000\000\001\000\000", "1:1::1:0" }, { "\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000", "0:0:1::1:0" }, { "\000\001\000\000\000\001\000\000\000\000\000\000\000\001\000\000", "1:0:1::1:0" }, { "\000\000\000\001\000\001\000\000\000\000\000\000\000\001\000\000", "0:1:1::1:0" }, { "\000\001\000\001\000\001\000\000\000\000\000\000\000\001\000\000", "1:1:1::1:0" }, { "\000\000\000\000\000\000\000\001\000\000\000\000\000\001\000\000", "::1:0:0:1:0" }, { "\000\001\000\000\000\000\000\001\000\000\000\000\000\001\000\000", "1::1:0:0:1:0" }, { "\000\000\000\001\000\000\000\001\000\000\000\000\000\001\000\000", "0:1:0:1::1:0" }, { "\000\001\000\001\000\000\000\001\000\000\000\000\000\001\000\000", "1:1:0:1::1:0" }, { "\000\000\000\000\000\001\000\001\000\000\000\000\000\001\000\000", "::1:1:0:0:1:0" }, { "\000\001\000\000\000\001\000\001\000\000\000\000\000\001\000\000", "1:0:1:1::1:0" }, { "\000\000\000\001\000\001\000\001\000\000\000\000\000\001\000\000", "0:1:1:1::1:0" }, { "\000\001\000\001\000\001\000\001\000\000\000\000\000\001\000\000", "1:1:1:1::1:0" }, { "\000\000\000\000\000\000\000\000\000\001\000\000\000\001\000\000", "::1:0:1:0" }, { "\000\001\000\000\000\000\000\000\000\001\000\000\000\001\000\000", "1::1:0:1:0" }, { "\000\000\000\001\000\000\000\000\000\001\000\000\000\001\000\000", "0:1::1:0:1:0" }, { "\000\001\000\001\000\000\000\000\000\001\000\000\000\001\000\000", "1:1::1:0:1:0" }, { "\000\000\000\000\000\001\000\000\000\001\000\000\000\001\000\000", "::1:0:1:0:1:0" }, { "\000\001\000\000\000\001\000\000\000\001\000\000\000\001\000\000", "1:0:1:0:1:0:1:0" }, { "\000\000\000\001\000\001\000\000\000\001\000\000\000\001\000\000", "0:1:1:0:1:0:1:0" }, { "\000\001\000\001\000\001\000\000\000\001\000\000\000\001\000\000", "1:1:1:0:1:0:1:0" }, { "\000\000\000\000\000\000\000\001\000\001\000\000\000\001\000\000", "::1:1:0:1:0" }, { "\000\001\000\000\000\000\000\001\000\001\000\000\000\001\000\000", "1::1:1:0:1:0" }, { "\000\000\000\001\000\000\000\001\000\001\000\000\000\001\000\000", "0:1:0:1:1:0:1:0" }, { "\000\001\000\001\000\000\000\001\000\001\000\000\000\001\000\000", "1:1:0:1:1:0:1:0" }, { "\000\000\000\000\000\001\000\001\000\001\000\000\000\001\000\000", "::1:1:1:0:1:0" }, { "\000\001\000\000\000\001\000\001\000\001\000\000\000\001\000\000", "1:0:1:1:1:0:1:0" }, { "\000\000\000\001\000\001\000\001\000\001\000\000\000\001\000\000", "0:1:1:1:1:0:1:0" }, { "\000\001\000\001\000\001\000\001\000\001\000\000\000\001\000\000", "1:1:1:1:1:0:1:0" }, { "\000\000\000\000\000\000\000\000\000\000\000\001\000\001\000\000", "::1:1:0" }, { "\000\001\000\000\000\000\000\000\000\000\000\001\000\001\000\000", "1::1:1:0" }, { "\000\000\000\001\000\000\000\000\000\000\000\001\000\001\000\000", "0:1::1:1:0" }, { "\000\001\000\001\000\000\000\000\000\000\000\001\000\001\000\000", "1:1::1:1:0" }, { "\000\000\000\000\000\001\000\000\000\000\000\001\000\001\000\000", "::1:0:0:1:1:0" }, { "\000\001\000\000\000\001\000\000\000\000\000\001\000\001\000\000", "1:0:1::1:1:0" }, { "\000\000\000\001\000\001\000\000\000\000\000\001\000\001\000\000", "0:1:1::1:1:0" }, { "\000\001\000\001\000\001\000\000\000\000\000\001\000\001\000\000", "1:1:1::1:1:0" }, { "\000\000\000\000\000\000\000\001\000\000\000\001\000\001\000\000", "::1:0:1:1:0" }, { "\000\001\000\000\000\000\000\001\000\000\000\001\000\001\000\000", "1::1:0:1:1:0" }, { "\000\000\000\001\000\000\000\001\000\000\000\001\000\001\000\000", "0:1:0:1:0:1:1:0" }, { "\000\001\000\001\000\000\000\001\000\000\000\001\000\001\000\000", "1:1:0:1:0:1:1:0" }, { "\000\000\000\000\000\001\000\001\000\000\000\001\000\001\000\000", "::1:1:0:1:1:0" }, { "\000\001\000\000\000\001\000\001\000\000\000\001\000\001\000\000", "1:0:1:1:0:1:1:0" }, { "\000\000\000\001\000\001\000\001\000\000\000\001\000\001\000\000", "0:1:1:1:0:1:1:0" }, { "\000\001\000\001\000\001\000\001\000\000\000\001\000\001\000\000", "1:1:1:1:0:1:1:0" }, { "\000\000\000\000\000\000\000\000\000\001\000\001\000\001\000\000", "::1:1:1:0" }, { "\000\001\000\000\000\000\000\000\000\001\000\001\000\001\000\000", "1::1:1:1:0" }, { "\000\000\000\001\000\000\000\000\000\001\000\001\000\001\000\000", "0:1::1:1:1:0" }, { "\000\001\000\001\000\000\000\000\000\001\000\001\000\001\000\000", "1:1::1:1:1:0" }, { "\000\000\000\000\000\001\000\000\000\001\000\001\000\001\000\000", "::1:0:1:1:1:0" }, { "\000\001\000\000\000\001\000\000\000\001\000\001\000\001\000\000", "1:0:1:0:1:1:1:0" }, { "\000\000\000\001\000\001\000\000\000\001\000\001\000\001\000\000", "0:1:1:0:1:1:1:0" }, { "\000\001\000\001\000\001\000\000\000\001\000\001\000\001\000\000", "1:1:1:0:1:1:1:0" }, { "\000\000\000\000\000\000\000\001\000\001\000\001\000\001\000\000", "::1:1:1:1:0" }, { "\000\001\000\000\000\000\000\001\000\001\000\001\000\001\000\000", "1::1:1:1:1:0" }, { "\000\000\000\001\000\000\000\001\000\001\000\001\000\001\000\000", "0:1:0:1:1:1:1:0" }, { "\000\001\000\001\000\000\000\001\000\001\000\001\000\001\000\000", "1:1:0:1:1:1:1:0" }, { "\000\000\000\000\000\001\000\001\000\001\000\001\000\001\000\000", "::1:1:1:1:1:0" }, { "\000\001\000\000\000\001\000\001\000\001\000\001\000\001\000\000", "1:0:1:1:1:1:1:0" }, { "\000\000\000\001\000\001\000\001\000\001\000\001\000\001\000\000", "0:1:1:1:1:1:1:0" }, { "\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\000", "1:1:1:1:1:1:1:0" }, { "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001", "::1" }, { "\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\001", "1::1" }, { "\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\001", "0:1::1" }, { "\000\001\000\001\000\000\000\000\000\000\000\000\000\000\000\001", "1:1::1" }, { "\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\001", "0:0:1::1" }, { "\000\001\000\000\000\001\000\000\000\000\000\000\000\000\000\001", "1:0:1::1" }, { "\000\000\000\001\000\001\000\000\000\000\000\000\000\000\000\001", "0:1:1::1" }, { "\000\001\000\001\000\001\000\000\000\000\000\000\000\000\000\001", "1:1:1::1" }, { "\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001", "::1:0:0:0:1" }, { "\000\001\000\000\000\000\000\001\000\000\000\000\000\000\000\001", "1:0:0:1::1" }, { "\000\000\000\001\000\000\000\001\000\000\000\000\000\000\000\001", "0:1:0:1::1" }, { "\000\001\000\001\000\000\000\001\000\000\000\000\000\000\000\001", "1:1:0:1::1" }, { "\000\000\000\000\000\001\000\001\000\000\000\000\000\000\000\001", "0:0:1:1::1" }, { "\000\001\000\000\000\001\000\001\000\000\000\000\000\000\000\001", "1:0:1:1::1" }, { "\000\000\000\001\000\001\000\001\000\000\000\000\000\000\000\001", "0:1:1:1::1" }, { "\000\001\000\001\000\001\000\001\000\000\000\000\000\000\000\001", "1:1:1:1::1" }, { "\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\001", "::1:0:0:1" }, { "\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\001", "1::1:0:0:1" }, { "\000\000\000\001\000\000\000\000\000\001\000\000\000\000\000\001", "0:1::1:0:0:1" }, { "\000\001\000\001\000\000\000\000\000\001\000\000\000\000\000\001", "1:1::1:0:0:1" }, { "\000\000\000\000\000\001\000\000\000\001\000\000\000\000\000\001", "::1:0:1:0:0:1" }, { "\000\001\000\000\000\001\000\000\000\001\000\000\000\000\000\001", "1:0:1:0:1::1" }, { "\000\000\000\001\000\001\000\000\000\001\000\000\000\000\000\001", "0:1:1:0:1::1" }, { "\000\001\000\001\000\001\000\000\000\001\000\000\000\000\000\001", "1:1:1:0:1::1" }, { "\000\000\000\000\000\000\000\001\000\001\000\000\000\000\000\001", "::1:1:0:0:1" }, { "\000\001\000\000\000\000\000\001\000\001\000\000\000\000\000\001", "1::1:1:0:0:1" }, { "\000\000\000\001\000\000\000\001\000\001\000\000\000\000\000\001", "0:1:0:1:1::1" }, { "\000\001\000\001\000\000\000\001\000\001\000\000\000\000\000\001", "1:1:0:1:1::1" }, { "\000\000\000\000\000\001\000\001\000\001\000\000\000\000\000\001", "::1:1:1:0:0:1" }, { "\000\001\000\000\000\001\000\001\000\001\000\000\000\000\000\001", "1:0:1:1:1::1" }, { "\000\000\000\001\000\001\000\001\000\001\000\000\000\000\000\001", "0:1:1:1:1::1" }, { "\000\001\000\001\000\001\000\001\000\001\000\000\000\000\000\001", "1:1:1:1:1::1" }, { "\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\001", "::1:0:1" }, { "\000\001\000\000\000\000\000\000\000\000\000\001\000\000\000\001", "1::1:0:1" }, { "\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\001", "0:1::1:0:1" }, { "\000\001\000\001\000\000\000\000\000\000\000\001\000\000\000\001", "1:1::1:0:1" }, { "\000\000\000\000\000\001\000\000\000\000\000\001\000\000\000\001", "::1:0:0:1:0:1" }, { "\000\001\000\000\000\001\000\000\000\000\000\001\000\000\000\001", "1:0:1::1:0:1" }, { "\000\000\000\001\000\001\000\000\000\000\000\001\000\000\000\001", "0:1:1::1:0:1" }, { "\000\001\000\001\000\001\000\000\000\000\000\001\000\000\000\001", "1:1:1::1:0:1" }, { "\000\000\000\000\000\000\000\001\000\000\000\001\000\000\000\001", "::1:0:1:0:1" }, { "\000\001\000\000\000\000\000\001\000\000\000\001\000\000\000\001", "1::1:0:1:0:1" }, { "\000\000\000\001\000\000\000\001\000\000\000\001\000\000\000\001", "0:1:0:1:0:1:0:1" }, { "\000\001\000\001\000\000\000\001\000\000\000\001\000\000\000\001", "1:1:0:1:0:1:0:1" }, { "\000\000\000\000\000\001\000\001\000\000\000\001\000\000\000\001", "::1:1:0:1:0:1" }, { "\000\001\000\000\000\001\000\001\000\000\000\001\000\000\000\001", "1:0:1:1:0:1:0:1" }, { "\000\000\000\001\000\001\000\001\000\000\000\001\000\000\000\001", "0:1:1:1:0:1:0:1" }, { "\000\001\000\001\000\001\000\001\000\000\000\001\000\000\000\001", "1:1:1:1:0:1:0:1" }, { "\000\000\000\000\000\000\000\000\000\001\000\001\000\000\000\001", "::1:1:0:1" }, { "\000\001\000\000\000\000\000\000\000\001\000\001\000\000\000\001", "1::1:1:0:1" }, { "\000\000\000\001\000\000\000\000\000\001\000\001\000\000\000\001", "0:1::1:1:0:1" }, { "\000\001\000\001\000\000\000\000\000\001\000\001\000\000\000\001", "1:1::1:1:0:1" }, { "\000\000\000\000\000\001\000\000\000\001\000\001\000\000\000\001", "::1:0:1:1:0:1" }, { "\000\001\000\000\000\001\000\000\000\001\000\001\000\000\000\001", "1:0:1:0:1:1:0:1" }, { "\000\000\000\001\000\001\000\000\000\001\000\001\000\000\000\001", "0:1:1:0:1:1:0:1" }, { "\000\001\000\001\000\001\000\000\000\001\000\001\000\000\000\001", "1:1:1:0:1:1:0:1" }, { "\000\000\000\000\000\000\000\001\000\001\000\001\000\000\000\001", "::1:1:1:0:1" }, { "\000\001\000\000\000\000\000\001\000\001\000\001\000\000\000\001", "1::1:1:1:0:1" }, { "\000\000\000\001\000\000\000\001\000\001\000\001\000\000\000\001", "0:1:0:1:1:1:0:1" }, { "\000\001\000\001\000\000\000\001\000\001\000\001\000\000\000\001", "1:1:0:1:1:1:0:1" }, { "\000\000\000\000\000\001\000\001\000\001\000\001\000\000\000\001", "::1:1:1:1:0:1" }, { "\000\001\000\000\000\001\000\001\000\001\000\001\000\000\000\001", "1:0:1:1:1:1:0:1" }, { "\000\000\000\001\000\001\000\001\000\001\000\001\000\000\000\001", "0:1:1:1:1:1:0:1" }, { "\000\001\000\001\000\001\000\001\000\001\000\001\000\000\000\001", "1:1:1:1:1:1:0:1" }, { "\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001", "::1:1" }, /* inet_ntop incompatible: ::0.1.0.1 */ { "\000\001\000\000\000\000\000\000\000\000\000\000\000\001\000\001", "1::1:1" }, { "\000\000\000\001\000\000\000\000\000\000\000\000\000\001\000\001", "0:1::1:1" }, { "\000\001\000\001\000\000\000\000\000\000\000\000\000\001\000\001", "1:1::1:1" }, { "\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\001", "0:0:1::1:1" }, { "\000\001\000\000\000\001\000\000\000\000\000\000\000\001\000\001", "1:0:1::1:1" }, { "\000\000\000\001\000\001\000\000\000\000\000\000\000\001\000\001", "0:1:1::1:1" }, { "\000\001\000\001\000\001\000\000\000\000\000\000\000\001\000\001", "1:1:1::1:1" }, { "\000\000\000\000\000\000\000\001\000\000\000\000\000\001\000\001", "::1:0:0:1:1" }, { "\000\001\000\000\000\000\000\001\000\000\000\000\000\001\000\001", "1::1:0:0:1:1" }, { "\000\000\000\001\000\000\000\001\000\000\000\000\000\001\000\001", "0:1:0:1::1:1" }, { "\000\001\000\001\000\000\000\001\000\000\000\000\000\001\000\001", "1:1:0:1::1:1" }, { "\000\000\000\000\000\001\000\001\000\000\000\000\000\001\000\001", "::1:1:0:0:1:1" }, { "\000\001\000\000\000\001\000\001\000\000\000\000\000\001\000\001", "1:0:1:1::1:1" }, { "\000\000\000\001\000\001\000\001\000\000\000\000\000\001\000\001", "0:1:1:1::1:1" }, { "\000\001\000\001\000\001\000\001\000\000\000\000\000\001\000\001", "1:1:1:1::1:1" }, { "\000\000\000\000\000\000\000\000\000\001\000\000\000\001\000\001", "::1:0:1:1" }, { "\000\001\000\000\000\000\000\000\000\001\000\000\000\001\000\001", "1::1:0:1:1" }, { "\000\000\000\001\000\000\000\000\000\001\000\000\000\001\000\001", "0:1::1:0:1:1" }, { "\000\001\000\001\000\000\000\000\000\001\000\000\000\001\000\001", "1:1::1:0:1:1" }, { "\000\000\000\000\000\001\000\000\000\001\000\000\000\001\000\001", "::1:0:1:0:1:1" }, { "\000\001\000\000\000\001\000\000\000\001\000\000\000\001\000\001", "1:0:1:0:1:0:1:1" }, { "\000\000\000\001\000\001\000\000\000\001\000\000\000\001\000\001", "0:1:1:0:1:0:1:1" }, { "\000\001\000\001\000\001\000\000\000\001\000\000\000\001\000\001", "1:1:1:0:1:0:1:1" }, { "\000\000\000\000\000\000\000\001\000\001\000\000\000\001\000\001", "::1:1:0:1:1" }, { "\000\001\000\000\000\000\000\001\000\001\000\000\000\001\000\001", "1::1:1:0:1:1" }, { "\000\000\000\001\000\000\000\001\000\001\000\000\000\001\000\001", "0:1:0:1:1:0:1:1" }, { "\000\001\000\001\000\000\000\001\000\001\000\000\000\001\000\001", "1:1:0:1:1:0:1:1" }, { "\000\000\000\000\000\001\000\001\000\001\000\000\000\001\000\001", "::1:1:1:0:1:1" }, { "\000\001\000\000\000\001\000\001\000\001\000\000\000\001\000\001", "1:0:1:1:1:0:1:1" }, { "\000\000\000\001\000\001\000\001\000\001\000\000\000\001\000\001", "0:1:1:1:1:0:1:1" }, { "\000\001\000\001\000\001\000\001\000\001\000\000\000\001\000\001", "1:1:1:1:1:0:1:1" }, { "\000\000\000\000\000\000\000\000\000\000\000\001\000\001\000\001", "::1:1:1" }, { "\000\001\000\000\000\000\000\000\000\000\000\001\000\001\000\001", "1::1:1:1" }, { "\000\000\000\001\000\000\000\000\000\000\000\001\000\001\000\001", "0:1::1:1:1" }, { "\000\001\000\001\000\000\000\000\000\000\000\001\000\001\000\001", "1:1::1:1:1" }, { "\000\000\000\000\000\001\000\000\000\000\000\001\000\001\000\001", "::1:0:0:1:1:1" }, { "\000\001\000\000\000\001\000\000\000\000\000\001\000\001\000\001", "1:0:1::1:1:1" }, { "\000\000\000\001\000\001\000\000\000\000\000\001\000\001\000\001", "0:1:1::1:1:1" }, { "\000\001\000\001\000\001\000\000\000\000\000\001\000\001\000\001", "1:1:1::1:1:1" }, { "\000\000\000\000\000\000\000\001\000\000\000\001\000\001\000\001", "::1:0:1:1:1" }, { "\000\001\000\000\000\000\000\001\000\000\000\001\000\001\000\001", "1::1:0:1:1:1" }, { "\000\000\000\001\000\000\000\001\000\000\000\001\000\001\000\001", "0:1:0:1:0:1:1:1" }, { "\000\001\000\001\000\000\000\001\000\000\000\001\000\001\000\001", "1:1:0:1:0:1:1:1" }, { "\000\000\000\000\000\001\000\001\000\000\000\001\000\001\000\001", "::1:1:0:1:1:1" }, { "\000\001\000\000\000\001\000\001\000\000\000\001\000\001\000\001", "1:0:1:1:0:1:1:1" }, { "\000\000\000\001\000\001\000\001\000\000\000\001\000\001\000\001", "0:1:1:1:0:1:1:1" }, { "\000\001\000\001\000\001\000\001\000\000\000\001\000\001\000\001", "1:1:1:1:0:1:1:1" }, { "\000\000\000\000\000\000\000\000\000\001\000\001\000\001\000\001", "::1:1:1:1" }, { "\000\001\000\000\000\000\000\000\000\001\000\001\000\001\000\001", "1::1:1:1:1" }, { "\000\000\000\001\000\000\000\000\000\001\000\001\000\001\000\001", "0:1::1:1:1:1" }, { "\000\001\000\001\000\000\000\000\000\001\000\001\000\001\000\001", "1:1::1:1:1:1" }, { "\000\000\000\000\000\001\000\000\000\001\000\001\000\001\000\001", "::1:0:1:1:1:1" }, { "\000\001\000\000\000\001\000\000\000\001\000\001\000\001\000\001", "1:0:1:0:1:1:1:1" }, { "\000\000\000\001\000\001\000\000\000\001\000\001\000\001\000\001", "0:1:1:0:1:1:1:1" }, { "\000\001\000\001\000\001\000\000\000\001\000\001\000\001\000\001", "1:1:1:0:1:1:1:1" }, { "\000\000\000\000\000\000\000\001\000\001\000\001\000\001\000\001", "::1:1:1:1:1" }, { "\000\001\000\000\000\000\000\001\000\001\000\001\000\001\000\001", "1::1:1:1:1:1" }, { "\000\000\000\001\000\000\000\001\000\001\000\001\000\001\000\001", "0:1:0:1:1:1:1:1" }, { "\000\001\000\001\000\000\000\001\000\001\000\001\000\001\000\001", "1:1:0:1:1:1:1:1" }, { "\000\000\000\000\000\001\000\001\000\001\000\001\000\001\000\001", "::1:1:1:1:1:1" }, { "\000\001\000\000\000\001\000\001\000\001\000\001\000\001\000\001", "1:0:1:1:1:1:1:1" }, { "\000\000\000\001\000\001\000\001\000\001\000\001\000\001\000\001", "0:1:1:1:1:1:1:1" }, { "\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001", "1:1:1:1:1:1:1:1" }, { "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000", "::" }, { "\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000", "ffff::" }, { "\000\000\377\377\000\000\000\000\000\000\000\000\000\000\000\000", "0:ffff::" }, { "\377\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000", "ffff:ffff::" }, { "\000\000\000\000\377\377\000\000\000\000\000\000\000\000\000\000", "0:0:ffff::" }, { "\377\377\000\000\377\377\000\000\000\000\000\000\000\000\000\000", "ffff:0:ffff::" }, { "\000\000\377\377\377\377\000\000\000\000\000\000\000\000\000\000", "0:ffff:ffff::" }, { "\377\377\377\377\377\377\000\000\000\000\000\000\000\000\000\000", "ffff:ffff:ffff::" }, { "\000\000\000\000\000\000\377\377\000\000\000\000\000\000\000\000", "0:0:0:ffff::" }, { "\377\377\000\000\000\000\377\377\000\000\000\000\000\000\000\000", "ffff:0:0:ffff::" }, { "\000\000\377\377\000\000\377\377\000\000\000\000\000\000\000\000", "0:ffff:0:ffff::" }, { "\377\377\377\377\000\000\377\377\000\000\000\000\000\000\000\000", "ffff:ffff:0:ffff::" }, { "\000\000\000\000\377\377\377\377\000\000\000\000\000\000\000\000", "0:0:ffff:ffff::" }, { "\377\377\000\000\377\377\377\377\000\000\000\000\000\000\000\000", "ffff:0:ffff:ffff::" }, { "\000\000\377\377\377\377\377\377\000\000\000\000\000\000\000\000", "0:ffff:ffff:ffff::" }, { "\377\377\377\377\377\377\377\377\000\000\000\000\000\000\000\000", "ffff:ffff:ffff:ffff::" }, { "\000\000\000\000\000\000\000\000\377\377\000\000\000\000\000\000", "::ffff:0:0:0" }, { "\377\377\000\000\000\000\000\000\377\377\000\000\000\000\000\000", "ffff::ffff:0:0:0" }, { "\000\000\377\377\000\000\000\000\377\377\000\000\000\000\000\000", "0:ffff:0:0:ffff::" }, { "\377\377\377\377\000\000\000\000\377\377\000\000\000\000\000\000", "ffff:ffff:0:0:ffff::" }, { "\000\000\000\000\377\377\000\000\377\377\000\000\000\000\000\000", "0:0:ffff:0:ffff::" }, { "\377\377\000\000\377\377\000\000\377\377\000\000\000\000\000\000", "ffff:0:ffff:0:ffff::" }, { "\000\000\377\377\377\377\000\000\377\377\000\000\000\000\000\000", "0:ffff:ffff:0:ffff::" }, { "\377\377\377\377\377\377\000\000\377\377\000\000\000\000\000\000", "ffff:ffff:ffff:0:ffff::" }, { "\000\000\000\000\000\000\377\377\377\377\000\000\000\000\000\000", "::ffff:ffff:0:0:0" }, { "\377\377\000\000\000\000\377\377\377\377\000\000\000\000\000\000", "ffff:0:0:ffff:ffff::" }, { "\000\000\377\377\000\000\377\377\377\377\000\000\000\000\000\000", "0:ffff:0:ffff:ffff::" }, { "\377\377\377\377\000\000\377\377\377\377\000\000\000\000\000\000", "ffff:ffff:0:ffff:ffff::" }, { "\000\000\000\000\377\377\377\377\377\377\000\000\000\000\000\000", "0:0:ffff:ffff:ffff::" }, { "\377\377\000\000\377\377\377\377\377\377\000\000\000\000\000\000", "ffff:0:ffff:ffff:ffff::" }, { "\000\000\377\377\377\377\377\377\377\377\000\000\000\000\000\000", "0:ffff:ffff:ffff:ffff::" }, { "\377\377\377\377\377\377\377\377\377\377\000\000\000\000\000\000", "ffff:ffff:ffff:ffff:ffff::" }, { "\000\000\000\000\000\000\000\000\000\000\377\377\000\000\000\000", "0.0.0.0" }, /* inet_ntop incompatible: ::ffff:0.0.0.0 */ { "\377\377\000\000\000\000\000\000\000\000\377\377\000\000\000\000", "ffff::ffff:0:0" }, { "\000\000\377\377\000\000\000\000\000\000\377\377\000\000\000\000", "0:ffff::ffff:0:0" }, { "\377\377\377\377\000\000\000\000\000\000\377\377\000\000\000\000", "ffff:ffff::ffff:0:0" }, { "\000\000\000\000\377\377\000\000\000\000\377\377\000\000\000\000", "::ffff:0:0:ffff:0:0" }, { "\377\377\000\000\377\377\000\000\000\000\377\377\000\000\000\000", "ffff:0:ffff::ffff:0:0" }, { "\000\000\377\377\377\377\000\000\000\000\377\377\000\000\000\000", "0:ffff:ffff::ffff:0:0" }, { "\377\377\377\377\377\377\000\000\000\000\377\377\000\000\000\000", "ffff:ffff:ffff::ffff:0:0" }, { "\000\000\000\000\000\000\377\377\000\000\377\377\000\000\000\000", "::ffff:0:ffff:0:0" }, { "\377\377\000\000\000\000\377\377\000\000\377\377\000\000\000\000", "ffff::ffff:0:ffff:0:0" }, { "\000\000\377\377\000\000\377\377\000\000\377\377\000\000\000\000", "0:ffff:0:ffff:0:ffff::" }, { "\377\377\377\377\000\000\377\377\000\000\377\377\000\000\000\000", "ffff:ffff:0:ffff:0:ffff::" }, { "\000\000\000\000\377\377\377\377\000\000\377\377\000\000\000\000", "::ffff:ffff:0:ffff:0:0" }, { "\377\377\000\000\377\377\377\377\000\000\377\377\000\000\000\000", "ffff:0:ffff:ffff:0:ffff::" }, { "\000\000\377\377\377\377\377\377\000\000\377\377\000\000\000\000", "0:ffff:ffff:ffff:0:ffff::" }, { "\377\377\377\377\377\377\377\377\000\000\377\377\000\000\000\000", "ffff:ffff:ffff:ffff:0:ffff::" }, { "\000\000\000\000\000\000\000\000\377\377\377\377\000\000\000\000", "::ffff:ffff:0:0" }, { "\377\377\000\000\000\000\000\000\377\377\377\377\000\000\000\000", "ffff::ffff:ffff:0:0" }, { "\000\000\377\377\000\000\000\000\377\377\377\377\000\000\000\000", "0:ffff::ffff:ffff:0:0" }, { "\377\377\377\377\000\000\000\000\377\377\377\377\000\000\000\000", "ffff:ffff::ffff:ffff:0:0" }, { "\000\000\000\000\377\377\000\000\377\377\377\377\000\000\000\000", "::ffff:0:ffff:ffff:0:0" }, { "\377\377\000\000\377\377\000\000\377\377\377\377\000\000\000\000", "ffff:0:ffff:0:ffff:ffff::" }, { "\000\000\377\377\377\377\000\000\377\377\377\377\000\000\000\000", "0:ffff:ffff:0:ffff:ffff::" }, { "\377\377\377\377\377\377\000\000\377\377\377\377\000\000\000\000", "ffff:ffff:ffff:0:ffff:ffff::" }, { "\000\000\000\000\000\000\377\377\377\377\377\377\000\000\000\000", "::ffff:ffff:ffff:0:0" }, { "\377\377\000\000\000\000\377\377\377\377\377\377\000\000\000\000", "ffff::ffff:ffff:ffff:0:0" }, { "\000\000\377\377\000\000\377\377\377\377\377\377\000\000\000\000", "0:ffff:0:ffff:ffff:ffff::" }, { "\377\377\377\377\000\000\377\377\377\377\377\377\000\000\000\000", "ffff:ffff:0:ffff:ffff:ffff::" }, { "\000\000\000\000\377\377\377\377\377\377\377\377\000\000\000\000", "::ffff:ffff:ffff:ffff:0:0" }, { "\377\377\000\000\377\377\377\377\377\377\377\377\000\000\000\000", "ffff:0:ffff:ffff:ffff:ffff::" }, { "\000\000\377\377\377\377\377\377\377\377\377\377\000\000\000\000", "0:ffff:ffff:ffff:ffff:ffff::" }, { "\377\377\377\377\377\377\377\377\377\377\377\377\000\000\000\000", "ffff:ffff:ffff:ffff:ffff:ffff::" }, { "\000\000\000\000\000\000\000\000\000\000\000\000\377\377\000\000", "::ffff:0" }, /* inet_ntop incompatible: ::255.255.0.0 */ { "\377\377\000\000\000\000\000\000\000\000\000\000\377\377\000\000", "ffff::ffff:0" }, { "\000\000\377\377\000\000\000\000\000\000\000\000\377\377\000\000", "0:ffff::ffff:0" }, { "\377\377\377\377\000\000\000\000\000\000\000\000\377\377\000\000", "ffff:ffff::ffff:0" }, { "\000\000\000\000\377\377\000\000\000\000\000\000\377\377\000\000", "0:0:ffff::ffff:0" }, { "\377\377\000\000\377\377\000\000\000\000\000\000\377\377\000\000", "ffff:0:ffff::ffff:0" }, { "\000\000\377\377\377\377\000\000\000\000\000\000\377\377\000\000", "0:ffff:ffff::ffff:0" }, { "\377\377\377\377\377\377\000\000\000\000\000\000\377\377\000\000", "ffff:ffff:ffff::ffff:0" }, { "\000\000\000\000\000\000\377\377\000\000\000\000\377\377\000\000", "::ffff:0:0:ffff:0" }, { "\377\377\000\000\000\000\377\377\000\000\000\000\377\377\000\000", "ffff::ffff:0:0:ffff:0" }, { "\000\000\377\377\000\000\377\377\000\000\000\000\377\377\000\000", "0:ffff:0:ffff::ffff:0" }, { "\377\377\377\377\000\000\377\377\000\000\000\000\377\377\000\000", "ffff:ffff:0:ffff::ffff:0" }, { "\000\000\000\000\377\377\377\377\000\000\000\000\377\377\000\000", "::ffff:ffff:0:0:ffff:0" }, { "\377\377\000\000\377\377\377\377\000\000\000\000\377\377\000\000", "ffff:0:ffff:ffff::ffff:0" }, { "\000\000\377\377\377\377\377\377\000\000\000\000\377\377\000\000", "0:ffff:ffff:ffff::ffff:0" }, { "\377\377\377\377\377\377\377\377\000\000\000\000\377\377\000\000", "ffff:ffff:ffff:ffff::ffff:0" }, { "\000\000\000\000\000\000\000\000\377\377\000\000\377\377\000\000", "::ffff:0:ffff:0" }, { "\377\377\000\000\000\000\000\000\377\377\000\000\377\377\000\000", "ffff::ffff:0:ffff:0" }, { "\000\000\377\377\000\000\000\000\377\377\000\000\377\377\000\000", "0:ffff::ffff:0:ffff:0" }, { "\377\377\377\377\000\000\000\000\377\377\000\000\377\377\000\000", "ffff:ffff::ffff:0:ffff:0" }, { "\000\000\000\000\377\377\000\000\377\377\000\000\377\377\000\000", "::ffff:0:ffff:0:ffff:0" }, { "\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000", "ffff:0:ffff:0:ffff:0:ffff:0" }, { "\000\000\377\377\377\377\000\000\377\377\000\000\377\377\000\000", "0:ffff:ffff:0:ffff:0:ffff:0" }, { "\377\377\377\377\377\377\000\000\377\377\000\000\377\377\000\000", "ffff:ffff:ffff:0:ffff:0:ffff:0" }, { "\000\000\000\000\000\000\377\377\377\377\000\000\377\377\000\000", "::ffff:ffff:0:ffff:0" }, { "\377\377\000\000\000\000\377\377\377\377\000\000\377\377\000\000", "ffff::ffff:ffff:0:ffff:0" }, { "\000\000\377\377\000\000\377\377\377\377\000\000\377\377\000\000", "0:ffff:0:ffff:ffff:0:ffff:0" }, { "\377\377\377\377\000\000\377\377\377\377\000\000\377\377\000\000", "ffff:ffff:0:ffff:ffff:0:ffff:0" }, { "\000\000\000\000\377\377\377\377\377\377\000\000\377\377\000\000", "::ffff:ffff:ffff:0:ffff:0" }, { "\377\377\000\000\377\377\377\377\377\377\000\000\377\377\000\000", "ffff:0:ffff:ffff:ffff:0:ffff:0" }, { "\000\000\377\377\377\377\377\377\377\377\000\000\377\377\000\000", "0:ffff:ffff:ffff:ffff:0:ffff:0" }, { "\377\377\377\377\377\377\377\377\377\377\000\000\377\377\000\000", "ffff:ffff:ffff:ffff:ffff:0:ffff:0" }, { "\000\000\000\000\000\000\000\000\000\000\377\377\377\377\000\000", "255.255.0.0" }, /* inet_ntop incompatible: ::ffff:255.255.0.0 */ { "\377\377\000\000\000\000\000\000\000\000\377\377\377\377\000\000", "ffff::ffff:ffff:0" }, { "\000\000\377\377\000\000\000\000\000\000\377\377\377\377\000\000", "0:ffff::ffff:ffff:0" }, { "\377\377\377\377\000\000\000\000\000\000\377\377\377\377\000\000", "ffff:ffff::ffff:ffff:0" }, { "\000\000\000\000\377\377\000\000\000\000\377\377\377\377\000\000", "::ffff:0:0:ffff:ffff:0" }, { "\377\377\000\000\377\377\000\000\000\000\377\377\377\377\000\000", "ffff:0:ffff::ffff:ffff:0" }, { "\000\000\377\377\377\377\000\000\000\000\377\377\377\377\000\000", "0:ffff:ffff::ffff:ffff:0" }, { "\377\377\377\377\377\377\000\000\000\000\377\377\377\377\000\000", "ffff:ffff:ffff::ffff:ffff:0" }, { "\000\000\000\000\000\000\377\377\000\000\377\377\377\377\000\000", "::ffff:0:ffff:ffff:0" }, { "\377\377\000\000\000\000\377\377\000\000\377\377\377\377\000\000", "ffff::ffff:0:ffff:ffff:0" }, { "\000\000\377\377\000\000\377\377\000\000\377\377\377\377\000\000", "0:ffff:0:ffff:0:ffff:ffff:0" }, { "\377\377\377\377\000\000\377\377\000\000\377\377\377\377\000\000", "ffff:ffff:0:ffff:0:ffff:ffff:0" }, { "\000\000\000\000\377\377\377\377\000\000\377\377\377\377\000\000", "::ffff:ffff:0:ffff:ffff:0" }, { "\377\377\000\000\377\377\377\377\000\000\377\377\377\377\000\000", "ffff:0:ffff:ffff:0:ffff:ffff:0" }, { "\000\000\377\377\377\377\377\377\000\000\377\377\377\377\000\000", "0:ffff:ffff:ffff:0:ffff:ffff:0" }, { "\377\377\377\377\377\377\377\377\000\000\377\377\377\377\000\000", "ffff:ffff:ffff:ffff:0:ffff:ffff:0" }, { "\000\000\000\000\000\000\000\000\377\377\377\377\377\377\000\000", "::ffff:ffff:ffff:0" }, { "\377\377\000\000\000\000\000\000\377\377\377\377\377\377\000\000", "ffff::ffff:ffff:ffff:0" }, { "\000\000\377\377\000\000\000\000\377\377\377\377\377\377\000\000", "0:ffff::ffff:ffff:ffff:0" }, { "\377\377\377\377\000\000\000\000\377\377\377\377\377\377\000\000", "ffff:ffff::ffff:ffff:ffff:0" }, { "\000\000\000\000\377\377\000\000\377\377\377\377\377\377\000\000", "::ffff:0:ffff:ffff:ffff:0" }, { "\377\377\000\000\377\377\000\000\377\377\377\377\377\377\000\000", "ffff:0:ffff:0:ffff:ffff:ffff:0" }, { "\000\000\377\377\377\377\000\000\377\377\377\377\377\377\000\000", "0:ffff:ffff:0:ffff:ffff:ffff:0" }, { "\377\377\377\377\377\377\000\000\377\377\377\377\377\377\000\000", "ffff:ffff:ffff:0:ffff:ffff:ffff:0" }, { "\000\000\000\000\000\000\377\377\377\377\377\377\377\377\000\000", "::ffff:ffff:ffff:ffff:0" }, { "\377\377\000\000\000\000\377\377\377\377\377\377\377\377\000\000", "ffff::ffff:ffff:ffff:ffff:0" }, { "\000\000\377\377\000\000\377\377\377\377\377\377\377\377\000\000", "0:ffff:0:ffff:ffff:ffff:ffff:0" }, { "\377\377\377\377\000\000\377\377\377\377\377\377\377\377\000\000", "ffff:ffff:0:ffff:ffff:ffff:ffff:0" }, { "\000\000\000\000\377\377\377\377\377\377\377\377\377\377\000\000", "::ffff:ffff:ffff:ffff:ffff:0" }, { "\377\377\000\000\377\377\377\377\377\377\377\377\377\377\000\000", "ffff:0:ffff:ffff:ffff:ffff:ffff:0" }, { "\000\000\377\377\377\377\377\377\377\377\377\377\377\377\000\000", "0:ffff:ffff:ffff:ffff:ffff:ffff:0" }, { "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\000\000", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:0" }, { "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377", "::ffff" }, { "\377\377\000\000\000\000\000\000\000\000\000\000\000\000\377\377", "ffff::ffff" }, { "\000\000\377\377\000\000\000\000\000\000\000\000\000\000\377\377", "0:ffff::ffff" }, { "\377\377\377\377\000\000\000\000\000\000\000\000\000\000\377\377", "ffff:ffff::ffff" }, { "\000\000\000\000\377\377\000\000\000\000\000\000\000\000\377\377", "0:0:ffff::ffff" }, { "\377\377\000\000\377\377\000\000\000\000\000\000\000\000\377\377", "ffff:0:ffff::ffff" }, { "\000\000\377\377\377\377\000\000\000\000\000\000\000\000\377\377", "0:ffff:ffff::ffff" }, { "\377\377\377\377\377\377\000\000\000\000\000\000\000\000\377\377", "ffff:ffff:ffff::ffff" }, { "\000\000\000\000\000\000\377\377\000\000\000\000\000\000\377\377", "::ffff:0:0:0:ffff" }, { "\377\377\000\000\000\000\377\377\000\000\000\000\000\000\377\377", "ffff:0:0:ffff::ffff" }, { "\000\000\377\377\000\000\377\377\000\000\000\000\000\000\377\377", "0:ffff:0:ffff::ffff" }, { "\377\377\377\377\000\000\377\377\000\000\000\000\000\000\377\377", "ffff:ffff:0:ffff::ffff" }, { "\000\000\000\000\377\377\377\377\000\000\000\000\000\000\377\377", "0:0:ffff:ffff::ffff" }, { "\377\377\000\000\377\377\377\377\000\000\000\000\000\000\377\377", "ffff:0:ffff:ffff::ffff" }, { "\000\000\377\377\377\377\377\377\000\000\000\000\000\000\377\377", "0:ffff:ffff:ffff::ffff" }, { "\377\377\377\377\377\377\377\377\000\000\000\000\000\000\377\377", "ffff:ffff:ffff:ffff::ffff" }, { "\000\000\000\000\000\000\000\000\377\377\000\000\000\000\377\377", "::ffff:0:0:ffff" }, { "\377\377\000\000\000\000\000\000\377\377\000\000\000\000\377\377", "ffff::ffff:0:0:ffff" }, { "\000\000\377\377\000\000\000\000\377\377\000\000\000\000\377\377", "0:ffff::ffff:0:0:ffff" }, { "\377\377\377\377\000\000\000\000\377\377\000\000\000\000\377\377", "ffff:ffff::ffff:0:0:ffff" }, { "\000\000\000\000\377\377\000\000\377\377\000\000\000\000\377\377", "::ffff:0:ffff:0:0:ffff" }, { "\377\377\000\000\377\377\000\000\377\377\000\000\000\000\377\377", "ffff:0:ffff:0:ffff::ffff" }, { "\000\000\377\377\377\377\000\000\377\377\000\000\000\000\377\377", "0:ffff:ffff:0:ffff::ffff" }, { "\377\377\377\377\377\377\000\000\377\377\000\000\000\000\377\377", "ffff:ffff:ffff:0:ffff::ffff" }, { "\000\000\000\000\000\000\377\377\377\377\000\000\000\000\377\377", "::ffff:ffff:0:0:ffff" }, { "\377\377\000\000\000\000\377\377\377\377\000\000\000\000\377\377", "ffff::ffff:ffff:0:0:ffff" }, { "\000\000\377\377\000\000\377\377\377\377\000\000\000\000\377\377", "0:ffff:0:ffff:ffff::ffff" }, { "\377\377\377\377\000\000\377\377\377\377\000\000\000\000\377\377", "ffff:ffff:0:ffff:ffff::ffff" }, { "\000\000\000\000\377\377\377\377\377\377\000\000\000\000\377\377", "::ffff:ffff:ffff:0:0:ffff" }, { "\377\377\000\000\377\377\377\377\377\377\000\000\000\000\377\377", "ffff:0:ffff:ffff:ffff::ffff" }, { "\000\000\377\377\377\377\377\377\377\377\000\000\000\000\377\377", "0:ffff:ffff:ffff:ffff::ffff" }, { "\377\377\377\377\377\377\377\377\377\377\000\000\000\000\377\377", "ffff:ffff:ffff:ffff:ffff::ffff" }, { "\000\000\000\000\000\000\000\000\000\000\377\377\000\000\377\377", "0.0.255.255" }, /* inet_ntop incompatible: ::ffff:0.0.255.255 */ { "\377\377\000\000\000\000\000\000\000\000\377\377\000\000\377\377", "ffff::ffff:0:ffff" }, { "\000\000\377\377\000\000\000\000\000\000\377\377\000\000\377\377", "0:ffff::ffff:0:ffff" }, { "\377\377\377\377\000\000\000\000\000\000\377\377\000\000\377\377", "ffff:ffff::ffff:0:ffff" }, { "\000\000\000\000\377\377\000\000\000\000\377\377\000\000\377\377", "::ffff:0:0:ffff:0:ffff" }, { "\377\377\000\000\377\377\000\000\000\000\377\377\000\000\377\377", "ffff:0:ffff::ffff:0:ffff" }, { "\000\000\377\377\377\377\000\000\000\000\377\377\000\000\377\377", "0:ffff:ffff::ffff:0:ffff" }, { "\377\377\377\377\377\377\000\000\000\000\377\377\000\000\377\377", "ffff:ffff:ffff::ffff:0:ffff" }, { "\000\000\000\000\000\000\377\377\000\000\377\377\000\000\377\377", "::ffff:0:ffff:0:ffff" }, { "\377\377\000\000\000\000\377\377\000\000\377\377\000\000\377\377", "ffff::ffff:0:ffff:0:ffff" }, { "\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377", "0:ffff:0:ffff:0:ffff:0:ffff" }, { "\377\377\377\377\000\000\377\377\000\000\377\377\000\000\377\377", "ffff:ffff:0:ffff:0:ffff:0:ffff" }, { "\000\000\000\000\377\377\377\377\000\000\377\377\000\000\377\377", "::ffff:ffff:0:ffff:0:ffff" }, { "\377\377\000\000\377\377\377\377\000\000\377\377\000\000\377\377", "ffff:0:ffff:ffff:0:ffff:0:ffff" }, { "\000\000\377\377\377\377\377\377\000\000\377\377\000\000\377\377", "0:ffff:ffff:ffff:0:ffff:0:ffff" }, { "\377\377\377\377\377\377\377\377\000\000\377\377\000\000\377\377", "ffff:ffff:ffff:ffff:0:ffff:0:ffff" }, { "\000\000\000\000\000\000\000\000\377\377\377\377\000\000\377\377", "::ffff:ffff:0:ffff" }, { "\377\377\000\000\000\000\000\000\377\377\377\377\000\000\377\377", "ffff::ffff:ffff:0:ffff" }, { "\000\000\377\377\000\000\000\000\377\377\377\377\000\000\377\377", "0:ffff::ffff:ffff:0:ffff" }, { "\377\377\377\377\000\000\000\000\377\377\377\377\000\000\377\377", "ffff:ffff::ffff:ffff:0:ffff" }, { "\000\000\000\000\377\377\000\000\377\377\377\377\000\000\377\377", "::ffff:0:ffff:ffff:0:ffff" }, { "\377\377\000\000\377\377\000\000\377\377\377\377\000\000\377\377", "ffff:0:ffff:0:ffff:ffff:0:ffff" }, { "\000\000\377\377\377\377\000\000\377\377\377\377\000\000\377\377", "0:ffff:ffff:0:ffff:ffff:0:ffff" }, { "\377\377\377\377\377\377\000\000\377\377\377\377\000\000\377\377", "ffff:ffff:ffff:0:ffff:ffff:0:ffff" }, { "\000\000\000\000\000\000\377\377\377\377\377\377\000\000\377\377", "::ffff:ffff:ffff:0:ffff" }, { "\377\377\000\000\000\000\377\377\377\377\377\377\000\000\377\377", "ffff::ffff:ffff:ffff:0:ffff" }, { "\000\000\377\377\000\000\377\377\377\377\377\377\000\000\377\377", "0:ffff:0:ffff:ffff:ffff:0:ffff" }, { "\377\377\377\377\000\000\377\377\377\377\377\377\000\000\377\377", "ffff:ffff:0:ffff:ffff:ffff:0:ffff" }, { "\000\000\000\000\377\377\377\377\377\377\377\377\000\000\377\377", "::ffff:ffff:ffff:ffff:0:ffff" }, { "\377\377\000\000\377\377\377\377\377\377\377\377\000\000\377\377", "ffff:0:ffff:ffff:ffff:ffff:0:ffff" }, { "\000\000\377\377\377\377\377\377\377\377\377\377\000\000\377\377", "0:ffff:ffff:ffff:ffff:ffff:0:ffff" }, { "\377\377\377\377\377\377\377\377\377\377\377\377\000\000\377\377", "ffff:ffff:ffff:ffff:ffff:ffff:0:ffff" }, { "\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\377", "::ffff:ffff" }, /* inet_ntop incompatible: ::255.255.255.255 */ { "\377\377\000\000\000\000\000\000\000\000\000\000\377\377\377\377", "ffff::ffff:ffff" }, { "\000\000\377\377\000\000\000\000\000\000\000\000\377\377\377\377", "0:ffff::ffff:ffff" }, { "\377\377\377\377\000\000\000\000\000\000\000\000\377\377\377\377", "ffff:ffff::ffff:ffff" }, { "\000\000\000\000\377\377\000\000\000\000\000\000\377\377\377\377", "0:0:ffff::ffff:ffff" }, { "\377\377\000\000\377\377\000\000\000\000\000\000\377\377\377\377", "ffff:0:ffff::ffff:ffff" }, { "\000\000\377\377\377\377\000\000\000\000\000\000\377\377\377\377", "0:ffff:ffff::ffff:ffff" }, { "\377\377\377\377\377\377\000\000\000\000\000\000\377\377\377\377", "ffff:ffff:ffff::ffff:ffff" }, { "\000\000\000\000\000\000\377\377\000\000\000\000\377\377\377\377", "::ffff:0:0:ffff:ffff" }, { "\377\377\000\000\000\000\377\377\000\000\000\000\377\377\377\377", "ffff::ffff:0:0:ffff:ffff" }, { "\000\000\377\377\000\000\377\377\000\000\000\000\377\377\377\377", "0:ffff:0:ffff::ffff:ffff" }, { "\377\377\377\377\000\000\377\377\000\000\000\000\377\377\377\377", "ffff:ffff:0:ffff::ffff:ffff" }, { "\000\000\000\000\377\377\377\377\000\000\000\000\377\377\377\377", "::ffff:ffff:0:0:ffff:ffff" }, { "\377\377\000\000\377\377\377\377\000\000\000\000\377\377\377\377", "ffff:0:ffff:ffff::ffff:ffff" }, { "\000\000\377\377\377\377\377\377\000\000\000\000\377\377\377\377", "0:ffff:ffff:ffff::ffff:ffff" }, { "\377\377\377\377\377\377\377\377\000\000\000\000\377\377\377\377", "ffff:ffff:ffff:ffff::ffff:ffff" }, { "\000\000\000\000\000\000\000\000\377\377\000\000\377\377\377\377", "::ffff:0:ffff:ffff" }, { "\377\377\000\000\000\000\000\000\377\377\000\000\377\377\377\377", "ffff::ffff:0:ffff:ffff" }, { "\000\000\377\377\000\000\000\000\377\377\000\000\377\377\377\377", "0:ffff::ffff:0:ffff:ffff" }, { "\377\377\377\377\000\000\000\000\377\377\000\000\377\377\377\377", "ffff:ffff::ffff:0:ffff:ffff" }, { "\000\000\000\000\377\377\000\000\377\377\000\000\377\377\377\377", "::ffff:0:ffff:0:ffff:ffff" }, { "\377\377\000\000\377\377\000\000\377\377\000\000\377\377\377\377", "ffff:0:ffff:0:ffff:0:ffff:ffff" }, { "\000\000\377\377\377\377\000\000\377\377\000\000\377\377\377\377", "0:ffff:ffff:0:ffff:0:ffff:ffff" }, { "\377\377\377\377\377\377\000\000\377\377\000\000\377\377\377\377", "ffff:ffff:ffff:0:ffff:0:ffff:ffff" }, { "\000\000\000\000\000\000\377\377\377\377\000\000\377\377\377\377", "::ffff:ffff:0:ffff:ffff" }, { "\377\377\000\000\000\000\377\377\377\377\000\000\377\377\377\377", "ffff::ffff:ffff:0:ffff:ffff" }, { "\000\000\377\377\000\000\377\377\377\377\000\000\377\377\377\377", "0:ffff:0:ffff:ffff:0:ffff:ffff" }, { "\377\377\377\377\000\000\377\377\377\377\000\000\377\377\377\377", "ffff:ffff:0:ffff:ffff:0:ffff:ffff" }, { "\000\000\000\000\377\377\377\377\377\377\000\000\377\377\377\377", "::ffff:ffff:ffff:0:ffff:ffff" }, { "\377\377\000\000\377\377\377\377\377\377\000\000\377\377\377\377", "ffff:0:ffff:ffff:ffff:0:ffff:ffff" }, { "\000\000\377\377\377\377\377\377\377\377\000\000\377\377\377\377", "0:ffff:ffff:ffff:ffff:0:ffff:ffff" }, { "\377\377\377\377\377\377\377\377\377\377\000\000\377\377\377\377", "ffff:ffff:ffff:ffff:ffff:0:ffff:ffff" }, { "\000\000\000\000\000\000\000\000\000\000\377\377\377\377\377\377", "255.255.255.255" }, /* inet_ntop incompatible: ::ffff:255.255.255.255 */ { "\377\377\000\000\000\000\000\000\000\000\377\377\377\377\377\377", "ffff::ffff:ffff:ffff" }, { "\000\000\377\377\000\000\000\000\000\000\377\377\377\377\377\377", "0:ffff::ffff:ffff:ffff" }, { "\377\377\377\377\000\000\000\000\000\000\377\377\377\377\377\377", "ffff:ffff::ffff:ffff:ffff" }, { "\000\000\000\000\377\377\000\000\000\000\377\377\377\377\377\377", "::ffff:0:0:ffff:ffff:ffff" }, { "\377\377\000\000\377\377\000\000\000\000\377\377\377\377\377\377", "ffff:0:ffff::ffff:ffff:ffff" }, { "\000\000\377\377\377\377\000\000\000\000\377\377\377\377\377\377", "0:ffff:ffff::ffff:ffff:ffff" }, { "\377\377\377\377\377\377\000\000\000\000\377\377\377\377\377\377", "ffff:ffff:ffff::ffff:ffff:ffff" }, { "\000\000\000\000\000\000\377\377\000\000\377\377\377\377\377\377", "::ffff:0:ffff:ffff:ffff" }, { "\377\377\000\000\000\000\377\377\000\000\377\377\377\377\377\377", "ffff::ffff:0:ffff:ffff:ffff" }, { "\000\000\377\377\000\000\377\377\000\000\377\377\377\377\377\377", "0:ffff:0:ffff:0:ffff:ffff:ffff" }, { "\377\377\377\377\000\000\377\377\000\000\377\377\377\377\377\377", "ffff:ffff:0:ffff:0:ffff:ffff:ffff" }, { "\000\000\000\000\377\377\377\377\000\000\377\377\377\377\377\377", "::ffff:ffff:0:ffff:ffff:ffff" }, { "\377\377\000\000\377\377\377\377\000\000\377\377\377\377\377\377", "ffff:0:ffff:ffff:0:ffff:ffff:ffff" }, { "\000\000\377\377\377\377\377\377\000\000\377\377\377\377\377\377", "0:ffff:ffff:ffff:0:ffff:ffff:ffff" }, { "\377\377\377\377\377\377\377\377\000\000\377\377\377\377\377\377", "ffff:ffff:ffff:ffff:0:ffff:ffff:ffff" }, { "\000\000\000\000\000\000\000\000\377\377\377\377\377\377\377\377", "::ffff:ffff:ffff:ffff" }, { "\377\377\000\000\000\000\000\000\377\377\377\377\377\377\377\377", "ffff::ffff:ffff:ffff:ffff" }, { "\000\000\377\377\000\000\000\000\377\377\377\377\377\377\377\377", "0:ffff::ffff:ffff:ffff:ffff" }, { "\377\377\377\377\000\000\000\000\377\377\377\377\377\377\377\377", "ffff:ffff::ffff:ffff:ffff:ffff" }, { "\000\000\000\000\377\377\000\000\377\377\377\377\377\377\377\377", "::ffff:0:ffff:ffff:ffff:ffff" }, { "\377\377\000\000\377\377\000\000\377\377\377\377\377\377\377\377", "ffff:0:ffff:0:ffff:ffff:ffff:ffff" }, { "\000\000\377\377\377\377\000\000\377\377\377\377\377\377\377\377", "0:ffff:ffff:0:ffff:ffff:ffff:ffff" }, { "\377\377\377\377\377\377\000\000\377\377\377\377\377\377\377\377", "ffff:ffff:ffff:0:ffff:ffff:ffff:ffff" }, { "\000\000\000\000\000\000\377\377\377\377\377\377\377\377\377\377", "::ffff:ffff:ffff:ffff:ffff" }, { "\377\377\000\000\000\000\377\377\377\377\377\377\377\377\377\377", "ffff::ffff:ffff:ffff:ffff:ffff" }, { "\000\000\377\377\000\000\377\377\377\377\377\377\377\377\377\377", "0:ffff:0:ffff:ffff:ffff:ffff:ffff" }, { "\377\377\377\377\000\000\377\377\377\377\377\377\377\377\377\377", "ffff:ffff:0:ffff:ffff:ffff:ffff:ffff" }, { "\000\000\000\000\377\377\377\377\377\377\377\377\377\377\377\377", "::ffff:ffff:ffff:ffff:ffff:ffff" }, { "\377\377\000\000\377\377\377\377\377\377\377\377\377\377\377\377", "ffff:0:ffff:ffff:ffff:ffff:ffff:ffff" }, { "\000\000\377\377\377\377\377\377\377\377\377\377\377\377\377\377", "0:ffff:ffff:ffff:ffff:ffff:ffff:ffff" }, { "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff" }, { 0, 0 } }; static void test_compress(void) { long long i, j; char *buf0; char buf1[IPTOSTR_LEN]; char buf2[IPTOSTR_LEN]; for (i = 0;testvectors[i].ip; ++i) { for (j = 0; j < IPTOSTR_LEN; ++j) { buf1[j] = (char)0xff; buf2[j] = 0; } buf0 = iptostr(0, (unsigned char *)testvectors[i].ip); iptostr(buf1, (unsigned char *)testvectors[i].ip); for (j = 0; j < IPTOSTR_LEN; ++j) { buf2[j] = testvectors[i].ipstr[j]; if (!buf2[j]) break; } for (j = 0; j < IPTOSTR_LEN; ++j) { if (buf0[j] != buf2[j]) fail("bad output"); if (buf1[j] != buf2[j]) fail("bad output"); } } } static void test_bufferoverflow(void) { char buf[IPTOSTR_LEN + 16]; long long i, j; unsigned char ip[16]; char ch[2] = {0x00, (char)0xff }; if ((IPTOSTR_LEN) < sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")) fail("IPTOSTR_LEN too small"); for (i = 0; i < 16; ++i) ip[i] = 0x11; for (j = 0; j < 2; ++j) { for (i = 0; i < sizeof buf; ++i) buf[i] = ch[j]; iptostr(buf + 8, ip); for (i = 0; i < 8; ++i) if (buf[i] != ch[j]) fail("iptostr writes before output"); for (i = 0; i < 8; ++i) if (buf[i + IPTOSTR_LEN + 8] != ch[j]) fail("iptostr writes after output"); } } int main(void) { test_compress(); test_bufferoverflow(); _exit(0); } tinyssh-20180201/tinyssh-tests/loadtest.c000066400000000000000000000014011322704306500202740ustar00rootroot00000000000000/* 20140417 Jan Mojzis Public domain. */ #include #include #include #include #include "fail.h" #include "open.h" #include "randombytes.h" #include "byte.h" #include "load.h" #include "writeall.h" #define SPACELEN 1048577 unsigned char space1[SPACELEN]; unsigned char space2[SPACELEN]; static void test1(void) { int fd; fd = open_write("loadtest.data"); if (fd == -1) fail("failure"); randombytes(space1, sizeof space1); if (writeall(fd, space1, sizeof space1) == -1) fail("failure"); close(fd); if (load("loadtest.data", space2, sizeof space2) == -1) fail("failure"); if (!byte_isequal(space1, SPACELEN, space2)) fail("failure"); } int main(void) { test1(); _exit(0); } tinyssh-20180201/tinyssh-tests/loginshelltest.c000066400000000000000000000025101322704306500215170ustar00rootroot00000000000000/* 20140429 Jan Mojzis Public domain. */ #include "str.h" #include "byte.h" #include "fail.h" #include "loginshell.h" static char buf[10]; static struct vector { const char *in; const char *out; } vectors[] = { { "", "-" }, { "/", "-" }, { "//", "-" }, { "///", "-" }, { "////", "-" }, { "/////", "-" }, { "/a/b/c/d/", "-" }, { "/a///d/", "-" }, { "//b/c//", "-" }, { "x/", "-" }, { "x/x/xx/xxx/", "-" }, { "sh", "-sh" }, { "/bin/bash", "-bash" }, { "///////dash", "-dash" }, { "///////-ksh", "--ksh" }, /* truncation */ { "longlongsh", "-longlong" }, { 0, 0 } }; static void testok(void) { long long i, len; for (i = 0; vectors[i].in; ++i) { if (!loginshell(buf, sizeof buf, vectors[i].in)) fail("loginshell failure"); len = str_len(vectors[i].out); if (str_len(buf) != len) fail("loginshell failure"); if (!byte_isequal(buf, len, vectors[i].out)) fail("loginshell failure"); } } static void testbad(void) { if (loginshell(buf, -1, "")) fail("loginshell failure"); if (loginshell(buf, 0, "")) fail("loginshell failure"); if (loginshell(buf, 1, "")) fail("loginshell failure"); if (loginshell(buf, 1, "//")) fail("loginshell failure"); } int main(void) { testok(); testbad(); _exit(0); } tinyssh-20180201/tinyssh-tests/logsystest.c000077700000000000000000000000001322704306500230762emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/logtest.c000066400000000000000000000050371322704306500201470ustar00rootroot00000000000000/* 20140319 Jan Mojzis Public domain. */ #include #include #include #include #include "fail.h" #include "byte.h" #include "log.h" static int readall(int fd, unsigned char *x, long long xlen) { long long r; long long len = 0; while (xlen > 0) { r = read(fd, x, xlen); if (r == 0) break; if (r <= 0) return -1; x += r; len += r; xlen -= r; } return len; } static unsigned char buf[1024]; #define LINE_EXP "?????????\n????????????????????? !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????" static void run(void (*op)(void)) { pid_t pid; int status, fromchild[2]; long long r, i, j; if (pipe(fromchild) == -1) fail("pipe() failure"); pid = fork(); if (pid == -1) fail("fork() failure"); if (pid == 0) { close(fromchild[0]); if (dup2(fromchild[1], 2) == -1) _exit(111); op(); _exit(0); } close(fromchild[1]); r = readall(fromchild[0], buf, sizeof buf); if (r == -1) fail("read() failure"); j = 0; for (i = 0; i < r; ++i) { if (buf[i] == ' ') ++j; if (j == 3) break; } r -= i + 1; byte_copy(buf, r, buf + i + 1); for (r = r - 1; r > 0; --r) { if (buf[r] == ' ') { buf[r] = 0; break; } } while (waitpid(pid, &status, 0) != pid) {}; if (!WIFEXITED(status)) fail("process killed"); if (WEXITSTATUS(status)) fail("process exited with status != 0"); if (r < sizeof(LINE_EXP) - 1) fail("failure"); if (!byte_isequal(buf, sizeof(LINE_EXP) - 1, LINE_EXP)) fail("failure"); } static char line[256]; static void feed(void) { unsigned long long i; for (i = 0; i < 256; ++i) line[i] = (unsigned char)(i + 1); } static void test_fatal(void) { log_init(0, "x", 1, 0); log_d1("hidden"); log_i1("hidden"); log_w1("hidden"); log_f1(line); } static void test_warning(void) { log_init(1, "x", 1, 0); log_d1("hidden"); log_i1("hidden"); log_w1(line); } static void test_info(void) { log_init(1, "x", 1, 0); log_d1("hidden"); log_i1(line); } static void test_debug(void) { log_init(2, "x", 1, 0); log_d1(line); } int main(void) { return 0; feed(); run(test_fatal); run(test_warning); run(test_info); run(test_debug); _exit(0); } tinyssh-20180201/tinyssh-tests/newenvtest.c000066400000000000000000000066571322704306500207010ustar00rootroot00000000000000/* 20140129 Jan Mojzis Public domain. */ #include #include #include #include "run.h" #include "fail.h" #include "newenv.h" #define SCRIPT1 "\ err='newenvtest: failed: newenv_env does not set correcty variable'\n\ [ x\"$AA1\" = x ] || ( echo $err; exit 111; ) \n\ [ x\"$AA3\" = x ] || ( echo $err; exit 111; ) \n\ [ x\"$BBB\" = xok ] || ( echo $err; exit 111; ) \n\ [ x\"$CC1\" = xok ] || ( echo $err; exit 111; ) \n\ [ x\"$CC3\" = x ] || ( echo $err; exit 111; ) \n\ [ x\"$DD1\" = xok ] || ( echo $err; exit 111; ) \n\ [ x\"$DD3\" = xok ] || ( echo $err; exit 111; ) \n\ [ x\"$EE1\" = xok ] || ( echo $err; exit 111; ) \n\ [ x\"$FF1\" = xok ] || ( echo $err; exit 111; ) \n\ [ x\"$YY1\" = xok ] || ( echo $err; exit 111; ) \n\ [ x\"$ZZ1\" = x ] || ( echo $err; exit 111; ) \n\ [ x\"$ZZ3\" = x ] || ( echo $err; exit 111; ) \n\ exit 0 \n\ " static void test1(void) { char *run[4]; long long i; char buf[100]; /* normal setenv */ if (setenv("BBB", "ok", 1) == -1) fail("setenv failure"); if (!newenv_copyenv("BBB")) fail("newenv_copyenv failure"); /* normal env */ if (!newenv_env("CC1", "ok")) fail("newenv_env failure"); if (newenv_copyenv("CC3")) fail("newenv_copyenv failure"); /* replaced env */ if (!newenv_env("DD1", "failed")) fail("newenv_env failure"); if (!newenv_env("DD1", "ok")) fail("newenv_env failure"); if (setenv("DD3", "failed", 1) == -1) fail("setenv failure"); if (!newenv_copyenv("DD3")) fail("newenv_copyenv failure"); if (setenv("DD3", "ok", 1) == -1) fail("setenv failure"); if (!newenv_copyenv("DD3")) fail("newenv_copyenv failure"); /* setenv first */ if (setenv("EE1", "failed", 1) == -1) fail("setenv failure"); if (!newenv_env("EE1", "ok")) fail("newenv_env failure"); /* setenv last */ if (!newenv_env("FF1", "ok")) fail("newenv_env failure"); if (setenv("FF1", "failed", 1) == -1) fail("setenv failure"); /* replaced env - ok */ if (!newenv_env("YY1", "ok")) fail("newenv_env failure"); for (i = 0; i < 200; ++i) { snprintf(buf, sizeof buf, "%lld", i); newenv_env(buf, buf); } if (!newenv_env("YY1", "ok")) fail("newenv_env failure"); /* replaced env - overflow */ for (i = 0; i < 200; ++i) { snprintf(buf, sizeof buf, "%lld", i); newenv_env(buf, buf); } if (newenv_env("ZZ1", "failed")) fail("newenv_env failure"); if (setenv("ZZ3", "failed", 1) == -1) fail("setenv failure"); if (newenv_copyenv("ZZ3")) fail("newenv_copyenv failure"); run[0] = (char *)"/bin/sh"; run[1] = (char *)"-ec"; run[2] = (char *)SCRIPT1; run[3] = (char *)0; newenv_exec(*run, run); fail("failure"); } #define SCRIPT2 "\ err='newenvtest2: failed: environment should be empty'\n\ [ x\"$AAAA\" = x ] || ( echo $err; exit 111; ) \n\ exit 0 \n\ " static void test2(void) { char *run[4]; /* setenv */ if (setenv("AAAA", "failed", 1) == -1) fail("setenv failure"); run[0] = (char *)"/bin/sh"; run[1] = (char *)"-ec"; run[2] = (char *)SCRIPT2; run[3] = 0; newenv_exec(*run, run); } static void test3(void) { for (;;) { if (newenv_lowenv("XXX", "YYY")) break; } if (!newenv_env("XXX", "YYY")) fail("newenv_env failure"); } static void testdummy(void) { _exit(111); } int main(void) { run_mustpass(test1); run_mustpass(test2); test3(); run_mustfail(testdummy); _exit(0); } tinyssh-20180201/tinyssh-tests/numtostrtest.c000066400000000000000000000227731322704306500212670ustar00rootroot00000000000000/* 20140201 Jan Mojzis Public domain. */ #include #include #include #include "fail.h" #include "numtostr.h" static long long int128max(void) { long long x = 9223372036854775807LL; x <<= 32; x <<= 32; x += 9223372036854775807LL; x += 9223372036854775807LL; x += 1; return x; } static void test_bufferoverflow(void) { char buf[NUMTOSTR_LEN + 16]; long long i, j; char ch[2] = {0x00, (char)0xff }; long long llmaxnum; long long llminnum; long long numlen = sizeof(long long); if (numlen == 16) { llmaxnum = int128max(); llminnum = -llmaxnum - 1LL; } else if (numlen == 8) { llmaxnum = 9223372036854775807LL; llminnum = -llmaxnum - 1LL; } else { fail("unsupported size for 'num'"); } if ((NUMTOSTR_LEN) < sizeof("-170141183460469231731687303715884105728")) fail("NUMTOSTR_LEN too small"); for (j = 0; j < 2; ++j) { for (i = 0; i < sizeof buf; ++i) buf[i] = ch[j]; numtostr(buf + 8, llminnum); for (i = 0; i < 8; ++i) if (buf[i] != ch[j]) fail("numtostr() writes before output"); for (i = 0; i < 8; ++i) if (buf[i + NUMTOSTR_LEN + 8] != ch[j]) fail("numtostr() writes after output"); for (i = 0; i < sizeof buf; ++i) buf[i] = ch[j]; numtostr(buf + 8, llmaxnum); for (i = 0; i < 8; ++i) if (buf[i] != ch[j]) fail("numtostr() writes before output"); for (i = 0; i < 8; ++i) if (buf[i + NUMTOSTR_LEN + 8] != ch[j]) fail("numtostr() writes after output"); } } static void test_minmax(void) { const char *llmax; const char *llmin; long long llmaxnum; long long llminnum; char *x; long long numlen = sizeof(long long); if (numlen == 16) { llmax = "170141183460469231731687303715884105727"; llmin = "-170141183460469231731687303715884105728"; llmaxnum = int128max(); llminnum = -llmaxnum - 1LL; } else if (numlen == 8) { llmax = "9223372036854775807"; llmin = "-9223372036854775808"; llmaxnum = 9223372036854775807LL; llminnum = -llmaxnum - 1LL; } else { fail("unsupported size for 'num'"); } x = numtostr(0, llmaxnum); if (strcmp(x, llmax)) fail("numtostr() failure"); x = numtostr(0, llminnum); if (strcmp(x, llmin)) fail("numtostr() failure"); } struct vectors { long long num; const char *strnum; } testvectors[] = { { -100, "-100" }, { -99, "-99" }, { -98, "-98" }, { -97, "-97" }, { -96, "-96" }, { -95, "-95" }, { -94, "-94" }, { -93, "-93" }, { -92, "-92" }, { -91, "-91" }, { -90, "-90" }, { -89, "-89" }, { -88, "-88" }, { -87, "-87" }, { -86, "-86" }, { -85, "-85" }, { -84, "-84" }, { -83, "-83" }, { -82, "-82" }, { -81, "-81" }, { -80, "-80" }, { -79, "-79" }, { -78, "-78" }, { -77, "-77" }, { -76, "-76" }, { -75, "-75" }, { -74, "-74" }, { -73, "-73" }, { -72, "-72" }, { -71, "-71" }, { -70, "-70" }, { -69, "-69" }, { -68, "-68" }, { -67, "-67" }, { -66, "-66" }, { -65, "-65" }, { -64, "-64" }, { -63, "-63" }, { -62, "-62" }, { -61, "-61" }, { -60, "-60" }, { -59, "-59" }, { -58, "-58" }, { -57, "-57" }, { -56, "-56" }, { -55, "-55" }, { -54, "-54" }, { -53, "-53" }, { -52, "-52" }, { -51, "-51" }, { -50, "-50" }, { -49, "-49" }, { -48, "-48" }, { -47, "-47" }, { -46, "-46" }, { -45, "-45" }, { -44, "-44" }, { -43, "-43" }, { -42, "-42" }, { -41, "-41" }, { -40, "-40" }, { -39, "-39" }, { -38, "-38" }, { -37, "-37" }, { -36, "-36" }, { -35, "-35" }, { -34, "-34" }, { -33, "-33" }, { -32, "-32" }, { -31, "-31" }, { -30, "-30" }, { -29, "-29" }, { -28, "-28" }, { -27, "-27" }, { -26, "-26" }, { -25, "-25" }, { -24, "-24" }, { -23, "-23" }, { -22, "-22" }, { -21, "-21" }, { -20, "-20" }, { -19, "-19" }, { -18, "-18" }, { -17, "-17" }, { -16, "-16" }, { -15, "-15" }, { -14, "-14" }, { -13, "-13" }, { -12, "-12" }, { -11, "-11" }, { -10, "-10" }, { -9, "-9" }, { -8, "-8" }, { -7, "-7" }, { -6, "-6" }, { -5, "-5" }, { -4, "-4" }, { -3, "-3" }, { -2, "-2" }, { -1, "-1" }, { 0, "0" }, { 1, "1" }, { 2, "2" }, { 3, "3" }, { 4, "4" }, { 5, "5" }, { 6, "6" }, { 7, "7" }, { 8, "8" }, { 9, "9" }, { 10, "10" }, { 11, "11" }, { 12, "12" }, { 13, "13" }, { 14, "14" }, { 15, "15" }, { 16, "16" }, { 17, "17" }, { 18, "18" }, { 19, "19" }, { 20, "20" }, { 21, "21" }, { 22, "22" }, { 23, "23" }, { 24, "24" }, { 25, "25" }, { 26, "26" }, { 27, "27" }, { 28, "28" }, { 29, "29" }, { 30, "30" }, { 31, "31" }, { 32, "32" }, { 33, "33" }, { 34, "34" }, { 35, "35" }, { 36, "36" }, { 37, "37" }, { 38, "38" }, { 39, "39" }, { 40, "40" }, { 41, "41" }, { 42, "42" }, { 43, "43" }, { 44, "44" }, { 45, "45" }, { 46, "46" }, { 47, "47" }, { 48, "48" }, { 49, "49" }, { 50, "50" }, { 51, "51" }, { 52, "52" }, { 53, "53" }, { 54, "54" }, { 55, "55" }, { 56, "56" }, { 57, "57" }, { 58, "58" }, { 59, "59" }, { 60, "60" }, { 61, "61" }, { 62, "62" }, { 63, "63" }, { 64, "64" }, { 65, "65" }, { 66, "66" }, { 67, "67" }, { 68, "68" }, { 69, "69" }, { 70, "70" }, { 71, "71" }, { 72, "72" }, { 73, "73" }, { 74, "74" }, { 75, "75" }, { 76, "76" }, { 77, "77" }, { 78, "78" }, { 79, "79" }, { 80, "80" }, { 81, "81" }, { 82, "82" }, { 83, "83" }, { 84, "84" }, { 85, "85" }, { 86, "86" }, { 87, "87" }, { 88, "88" }, { 89, "89" }, { 90, "90" }, { 91, "91" }, { 92, "92" }, { 93, "93" }, { 94, "94" }, { 95, "95" }, { 96, "96" }, { 97, "97" }, { 98, "98" }, { 99, "99" }, { 100, "100" }, { -9223372036854775808LL, "-9223372036854775808" }, { -9223372036854775807LL, "-9223372036854775807" }, { -9223372036854775806LL, "-9223372036854775806" }, { -9223372036854775805LL, "-9223372036854775805" }, { -9223372036854775804LL, "-9223372036854775804" }, { -9223372036854775803LL, "-9223372036854775803" }, { -9223372036854775802LL, "-9223372036854775802" }, { -9223372036854775801LL, "-9223372036854775801" }, { -9223372036854775800LL, "-9223372036854775800" }, { -9223372036854775799LL, "-9223372036854775799" }, { -9223372036854775798LL, "-9223372036854775798" }, { -9223372036854775797LL, "-9223372036854775797" }, { -9223372036854775796LL, "-9223372036854775796" }, { -9223372036854775795LL, "-9223372036854775795" }, { -9223372036854775794LL, "-9223372036854775794" }, { -9223372036854775793LL, "-9223372036854775793" }, { -9223372036854775792LL, "-9223372036854775792" }, { -9223372036854775791LL, "-9223372036854775791" }, { -9223372036854775790LL, "-9223372036854775790" }, { -9223372036854775789LL, "-9223372036854775789" }, { -9223372036854775788LL, "-9223372036854775788" }, { -9223372036854775787LL, "-9223372036854775787" }, { -9223372036854775786LL, "-9223372036854775786" }, { -9223372036854775785LL, "-9223372036854775785" }, { -9223372036854775784LL, "-9223372036854775784" }, { -9223372036854775783LL, "-9223372036854775783" }, { -9223372036854775782LL, "-9223372036854775782" }, { -9223372036854775781LL, "-9223372036854775781" }, { 9223372036854775780LL, "9223372036854775780" }, { 9223372036854775781LL, "9223372036854775781" }, { 9223372036854775782LL, "9223372036854775782" }, { 9223372036854775783LL, "9223372036854775783" }, { 9223372036854775784LL, "9223372036854775784" }, { 9223372036854775785LL, "9223372036854775785" }, { 9223372036854775786LL, "9223372036854775786" }, { 9223372036854775787LL, "9223372036854775787" }, { 9223372036854775788LL, "9223372036854775788" }, { 9223372036854775789LL, "9223372036854775789" }, { 9223372036854775790LL, "9223372036854775790" }, { 9223372036854775791LL, "9223372036854775791" }, { 9223372036854775792LL, "9223372036854775792" }, { 9223372036854775793LL, "9223372036854775793" }, { 9223372036854775794LL, "9223372036854775794" }, { 9223372036854775795LL, "9223372036854775795" }, { 9223372036854775796LL, "9223372036854775796" }, { 9223372036854775797LL, "9223372036854775797" }, { 9223372036854775798LL, "9223372036854775798" }, { 9223372036854775799LL, "9223372036854775799" }, { 9223372036854775800LL, "9223372036854775800" }, { 9223372036854775801LL, "9223372036854775801" }, { 9223372036854775802LL, "9223372036854775802" }, { 9223372036854775803LL, "9223372036854775803" }, { 9223372036854775804LL, "9223372036854775804" }, { 9223372036854775805LL, "9223372036854775805" }, { 9223372036854775806LL, "9223372036854775806" }, { 9223372036854775807LL, "9223372036854775807" }, { 0, 0 } }; static void test_vector(void) { long long i; char *x; for (i = 0; testvectors[i].strnum; ++i) { x = numtostr(0, testvectors[i].num); if (strcmp(x, testvectors[i].strnum)) fail("numtostr() failure"); } } int main(void) { test_bufferoverflow(); test_minmax(); test_vector(); _exit(0); } tinyssh-20180201/tinyssh-tests/opentest.c000066400000000000000000000022601322704306500203220ustar00rootroot00000000000000/* 20140410 Jan Mojzis Public domain. */ #include #include #include "run.h" #include "fail.h" #include "open.h" static void cat(void) { char *catcmd[2] = { (char *)"cat", 0 }; execvp(*catcmd, catcmd); } /* test if close-on-exec works for open_read() */ static void test1(void) { int fd; close(0); fd = open_read("opentest.c"); if (fd != 0) fail("unable to open opentest.c for reading"); cat(); } /* test if close-on-exec works for open_write() */ static void test2(void) { int fd; close(1); fd = open_write("opentest.data"); if (fd != 1) fail("unable to open opentest.data for writing"); cat(); } /* test if close-on-exec works for open_pipe() */ static void test3(void) { int fd, pi[2]; close(0); close(1); fd = open_pipe(pi); if (fd == -1) fail("unable to open pipe"); if (pi[0] != 0) fail("unable to open pipe"); if (pi[1] != 1) fail("unable to open pipe"); cat(); } /* dummy test */ static void testdummy(void) { _exit(0); } int main(void) { alarm(10); run_mustfail(test1); run_mustfail(test2); run_mustfail(test3); run_mustpass(testdummy); _exit(0); } tinyssh-20180201/tinyssh-tests/packet_authtest.c000077700000000000000000000000001322704306500240462emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/packet_channel_opentest.c000077700000000000000000000000001322704306500255362emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/packet_channel_recvtest.c000077700000000000000000000000001322704306500255342emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/packet_channel_requesttest.c000077700000000000000000000000001322704306500262652emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/packet_channel_sendtest.c000077700000000000000000000000001322704306500255262emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/packet_gettest.c000077700000000000000000000000001322704306500236642emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/packet_hellotest.c000077700000000000000000000000001322704306500242102emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/packet_kexdhtest.c000077700000000000000000000000001322704306500242102emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/packet_kextest.c000077700000000000000000000000001322704306500236742emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/packet_puttest.c000077700000000000000000000000001322704306500237152emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/packet_recvtest.c000077700000000000000000000000001322704306500240442emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/packet_sendtest.c000077700000000000000000000000001322704306500240362emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/packet_unimplementedtest.c000077700000000000000000000000001322704306500257532emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/packetparsertest.c000066400000000000000000000113141322704306500220450ustar00rootroot00000000000000/* 20140303 Jan Mojzis Public domain. */ #include #include "run.h" #include "fail.h" #include "byte.h" #include "packetparser.h" /* checks packetparser_uint8(), packetparser_uint32() function and packetparser_end called more than once */ static void test1(void) { unsigned char buf[4]; crypto_uint8 ch; crypto_uint32 u; long long i, pos = 0; byte_copy(buf, 4, "abcd"); /* uint8 */ pos = 0; for (i = 0; i < sizeof buf; ++i) { pos = packetparser_uint8(buf, sizeof buf, pos, &ch); if (ch != buf[i]) fail("failure"); } if (pos != sizeof buf) fail("failure"); /* uint32 */ pos = 0; pos = packetparser_uint8(buf, sizeof buf, 0, &ch); pos = packetparser_uint32(buf, sizeof buf, 0, &u); if (pos != sizeof buf) fail("failure"); pos = packetparser_end(buf, sizeof buf, pos); pos = packetparser_end(buf, sizeof buf, pos); pos = packetparser_end(buf, sizeof buf, pos); } /* checks if packetparser_skip() skips 0 bytes */ static void test2(void) { unsigned char buf[5]; crypto_uint8 ch; crypto_uint32 len; long long i, pos = 0; for (i = 0; i < sizeof buf; ++i) buf[i] = 0; pos = packetparser_uint32(buf, sizeof buf, pos, &len); if (len != 0) fail("failure"); pos = packetparser_skip(buf, sizeof buf, pos, len); pos = packetparser_uint8(buf, sizeof buf, pos, &ch); if (ch) fail("failure"); if (pos != sizeof buf) fail("failure"); pos = packetparser_end(buf, sizeof buf, pos); pos = packetparser_end(buf, sizeof buf, pos); pos = packetparser_end(buf, sizeof buf, pos); } /* checks if packetparser_copy() accepts 0 bytes */ static void test4(void) { unsigned char buf[5]; unsigned char buf2[6]; crypto_uint8 ch; crypto_uint32 len; long long i, pos = 0; for (i = 0; i < sizeof buf; ++i) buf[i] = 0; pos = packetparser_uint32(buf, sizeof buf, pos, &len); if (len != 0) fail("failure"); pos = packetparser_copy(buf, sizeof buf, pos, buf2, len); pos = packetparser_uint8(buf, sizeof buf, pos, &ch); if (ch) fail("failure"); if (pos != sizeof buf) fail("failure"); pos = packetparser_end(buf, sizeof buf, pos); pos = packetparser_end(buf, sizeof buf, pos); pos = packetparser_end(buf, sizeof buf, pos); } /* packetparser_skip() overflow */ static void _test3a(void) { unsigned char buf[5]; long long pos = 0; pos = packetparser_skip(buf, sizeof buf, pos, 6); } static void _test3aa(void) { unsigned char buf[5]; long long len, pos; len = pos = 9223372036854775807LL; pos = packetparser_skip(buf, len, pos, 1); } /* packetparser_uint32() overflow */ static void _test3b(void) { unsigned char buf[3]; crypto_uint32 u; long long pos = 0; pos = packetparser_uint32(buf, sizeof buf, pos, &u); } static void _test3bb(void) { unsigned char buf[4]; crypto_uint32 u; long long len, pos; len = pos = 9223372036854775807LL; pos = packetparser_uint32(buf, len, pos, &u); } /* packetparser_uint8() overflow */ static void _test3c(void) { unsigned char buf[3]; crypto_uint8 ch; long long pos = 0; pos = packetparser_uint8(buf, sizeof buf, pos, &ch); pos = packetparser_uint8(buf, sizeof buf, pos, &ch); pos = packetparser_uint8(buf, sizeof buf, pos, &ch); pos = packetparser_uint8(buf, sizeof buf, pos, &ch); } static void _test3cc(void) { unsigned char buf[3]; crypto_uint8 ch; long long len, pos; len = pos = 9223372036854775807LL; pos = packetparser_uint8(buf, len, pos, &ch); } /* packetparser_copy() overflow */ static void _test3d(void) { unsigned char buf1[10]; unsigned char buf2[11]; long long pos = 0; pos = packetparser_copy(buf1, sizeof buf1, pos, buf2, sizeof buf2); } static void _test3dd(void) { unsigned char buf1[10]; unsigned char buf2[10]; long long len, pos; len = pos = 9223372036854775807LL; pos = packetparser_copy(buf1, len, pos, buf2, sizeof buf2); } /* packetparser_end() failure */ static void _test3e(void) { unsigned char buf[1]; packetparser_end(buf, 0, 1); } static void _test3ee(void) { unsigned char buf[1]; long long pos = 9223372036854775807LL; packetparser_end(buf, pos, pos); } static void test3(void) { run_mustfail(_test3a); run_mustfail(_test3aa); run_mustfail(_test3b); run_mustfail(_test3bb); run_mustfail(_test3c); run_mustfail(_test3cc); run_mustfail(_test3d); run_mustfail(_test3dd); run_mustfail(_test3e); run_mustfail(_test3ee); } /* dummy test */ static void testdummy(void) { _exit(0); } int main(void) { test1(); test2(); test3(); test4(); run_mustpass(testdummy); _exit(0); } tinyssh-20180201/tinyssh-tests/packettest.c000077700000000000000000000000001322704306500230252emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/porttostrtest.c000066400000000000000000000046051322704306500214460ustar00rootroot00000000000000/* 20140201 Jan Mojzis Public domain. */ #include #include #include "fail.h" #include "porttostr.h" #include "crypto_uint16.h" static void porttostr_bufferoverflow(void) { char buf[PORTTOSTR_LEN + 16]; long long i, j; unsigned char port[2] = { 5, 5 }; char ch[2] = {0x00, (char)0xff }; if ((PORTTOSTR_LEN) < sizeof("65535")) fail("PORTTOSTR_LEN too small"); for (j = 0; j < 2; ++j) { for (i = 0; i < sizeof buf; ++i) buf[i] = ch[j]; porttostr(buf + 8, port); for (i = 0; i < 8; ++i) if (buf[i] != ch[j]) fail("porttostr writes before output"); for (i = 0; i < 8; ++i) if (buf[i + PORTTOSTR_LEN + 8] != ch[j]) fail("porttostr writes after output"); } } static struct vectors { const char *port; const char *portstr; } testvectors[] = { { "\377\377", "65535" }, { "\000\000", "0\0\0\0\0" }, { 0, 0 } }; static void porttostr_testvectors(void) { char *x, *y, *z; long long i, j; char buf[PORTTOSTR_LEN]; for (i = 0; testvectors[i].port; ++i) { for (j = 0; j < sizeof buf; ++j) buf[j] = (char)0xff; x = porttostr(buf, (unsigned char *)testvectors[i].port); y = porttostr(0, (unsigned char *)testvectors[i].port); z = (char *)testvectors[i].portstr; for (j = 0; j < PORTTOSTR_LEN; ++j) { if (buf[j] != z[j]) fail("bad output"); if (x[j] != z[j]) fail("bad output"); if (y[j] != z[j]) fail("bad output"); } } } static void packport(unsigned char *y, crypto_uint16 x) { y[1] = x & 255; x >>= 8; y[0] = x & 255; } static void porttostr_full(void) { long long i, j; unsigned char port[2]; char *x, *y; char buf[PORTTOSTR_LEN]; char buf2[PORTTOSTR_LEN + 10]; for (i = 0; i < 65536; ++i) { for (j = 0; j < sizeof buf; ++j) buf[j] = (char)0xff; for (j = 0; j < sizeof buf; ++j) buf2[j] = 0; packport(port, i); x = porttostr(buf, port); y = porttostr(0, port); snprintf(buf2, sizeof buf2, "%lld", i); for (j = 0; j < PORTTOSTR_LEN; ++j) { if (buf[j] != buf2[j]) fail("bad output"); if (x[j] != buf2[j]) fail("bad output"); if (y[j] != buf2[j]) fail("bad output"); } } } int main(void) { porttostr_bufferoverflow(); porttostr_testvectors(); porttostr_full(); _exit(0); } tinyssh-20180201/tinyssh-tests/randommodtest.c000066400000000000000000000010541322704306500213410ustar00rootroot00000000000000/* 20140416 Jan Mojzis Public domain. */ #include #include #include "fail.h" #include "randommod.h" int main(void) { long long i, r; if (randommod(-1) != 0) fail("failure"); if (randommod(0) != 0) fail("failure"); if (randommod(1) != 0) fail("failure"); for (i = 2; i < 10; ++i) { r = randommod(i); if (r > i - 1 || r < 0) fail("failure"); } for (i = 18014398509481984ULL; i < 18014398509481994ULL; ++i) { if (randommod(i) == randommod(i)) fail("failure"); } _exit(0); } tinyssh-20180201/tinyssh-tests/readalltest.c000066400000000000000000000014541322704306500207710ustar00rootroot00000000000000/* 20140417 Jan Mojzis Public domain. */ #include #include #include #include #include "fail.h" #include "open.h" #include "randombytes.h" #include "byte.h" #include "readall.h" #include "writeall.h" #define SPACELEN 1048577 unsigned char space1[SPACELEN]; unsigned char space2[SPACELEN]; static void test1(void) { int fd; fd = open_write("readall.data"); if (fd == -1) fail("failure"); randombytes(space1, sizeof space1); if (writeall(fd, space1, sizeof space1) == -1) fail("failure"); close(fd); fd = open_read("readall.data"); if (readall(fd, space2, sizeof space2) == -1) fail("failure"); close(fd); if (!byte_isequal(space1, SPACELEN, space2)) fail("failure"); } int main(void) { test1(); _exit(0); } tinyssh-20180201/tinyssh-tests/run.h000066400000000000000000000064201322704306500172740ustar00rootroot00000000000000#ifndef _RUN_H____ #define _RUN_H____ #include #include #include #include #include "fail.h" static void _run_mustfail(const char *file, unsigned long long line, void (*op)(void)) {\ \ pid_t pid; \ int status; \ \ pid = fork(); \ if (pid == -1) fail_(file, line, "unable to fork"); \ \ if (pid == 0) { \ close(2); \ op(); \ _exit(0); \ } \ \ while (waitpid(pid, &status, 0) != pid) {}; \ if (!WIFEXITED(status)) fail_(file, line, "process killed"); \ if (!WEXITSTATUS(status)) fail_(file, line, "process exited with status = 0"); \ } static void _run_mustpass(const char *file, unsigned long long line, void (*op)(void)) {\ \ pid_t pid; \ int status; \ \ pid = fork(); \ if (pid == -1) fail_(file, line, "unable to fork"); \ \ if (pid == 0) { \ close(2); \ op(); \ _exit(111); \ } \ \ while (waitpid(pid, &status, 0) != pid) {}; \ if (!WIFEXITED(status)) fail_(file, line, "process killed"); \ if (WEXITSTATUS(status)) fail_(file, line, "process exited with status != 0"); \ } #define run_mustfail(x) _run_mustfail(__FILE__, __LINE__, (x)); #define run_mustpass(x) _run_mustpass(__FILE__, __LINE__, (x)); #endif tinyssh-20180201/tinyssh-tests/savesynctest.c000066400000000000000000000013301322704306500212110ustar00rootroot00000000000000/* 20140417 Jan Mojzis Public domain. */ #include #include #include #include #include "fail.h" #include "randombytes.h" #include "byte.h" #include "load.h" #include "savesync.h" #include "writeall.h" #define SPACELEN 1048577 unsigned char space1[SPACELEN]; unsigned char space2[SPACELEN]; static void test1(void) { randombytes(space1, sizeof space1); if (savesync("savesynctest.data", space1, sizeof space1) == -1) fail("savesync() failure"); if (load("savesynctest.data", space2, sizeof space2) == -1) fail("load() failure"); if (!byte_isequal(space1, SPACELEN, space2)) fail("load()/savesync() failure"); } int main(void) { test1(); _exit(0); } tinyssh-20180201/tinyssh-tests/sshcrypto_cipher_aesctr128test.c000077700000000000000000000000001322704306500267422emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/sshcrypto_cipher_aesctr256test.c000077700000000000000000000000001322704306500267442emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/sshcrypto_cipher_aesctrtest.c000077700000000000000000000000001322704306500265072emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/sshcrypto_cipher_chachapolytest.c000077700000000000000000000000001322704306500273412emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/sshcrypto_ciphertest.c000077700000000000000000000000001322704306500251462emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/sshcrypto_kex_curve25519test.c000077700000000000000000000000001322704306500262752emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/sshcrypto_kex_nistp256test.c000077700000000000000000000000001322704306500261352emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/sshcrypto_kextest.c000077700000000000000000000000001322704306500244632emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/sshcrypto_key_ed25519test.c000077700000000000000000000000001322704306500255422emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/sshcrypto_key_nistp256ecdsatest.c000077700000000000000000000000001322704306500271362emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/sshcrypto_keytest.c000077700000000000000000000000001322704306500244642emptytest.custar00rootroot00000000000000tinyssh-20180201/tinyssh-tests/sshcryptotest.c000066400000000000000000000021001322704306500214100ustar00rootroot00000000000000/* 20140417 Jan Mojzis Public domain. */ #include #include "sshcrypto.h" /* grep "define sshcrypto_" source/tinyssh/sshcrypto.h | cut -d ' ' -f2 | while read x; do echo \#ifndef $x; echo error! ;echo \#endif; done */ #ifndef sshcrypto_dh_PUBLICKEYMAX error! #endif #ifndef sshcrypto_dh_SECRETKEYMAX error! #endif #ifndef sshcrypto_dh_MAX error! #endif #ifndef sshcrypto_hash_MAX error! #endif #ifndef sshcrypto_sign_PUBLICKEYMAX error! #endif #ifndef sshcrypto_sign_SECRETKEYMAX error! #endif #ifndef sshcrypto_sign_MAX error! #endif #ifndef sshcrypto_sign_BASE64PUBLICKEYMAX error! #endif #ifndef sshcrypto_sign_BASE64PUBLICKEYMIN error! #endif #ifndef sshcrypto_cipher_KEYMAX error! #endif int main(void) { /* check sshcrypto_init() called called more than once */ sshcrypto_init(); sshcrypto_init(); /* check sshcrypto_purge() called called more than once */ sshcrypto_purge(); sshcrypto_purge(); /* check sshcrypto_init() called called more than once after sshcrypto_purge() */ sshcrypto_init(); sshcrypto_init(); _exit(0); } tinyssh-20180201/tinyssh-tests/sshtest.c000066400000000000000000000034501322704306500201600ustar00rootroot00000000000000/* 20140319 Jan Mojzis Public domain. */ #include #include #include #include "fail.h" #include "ssh.h" /* grep SSH_ * | sed 's/.*SSH_/SSH_/g' | cut -d ',' -f1 | cut -d ' ' -f1 | cut -d ')' -f1 | cut -d ':' -f1 | cut -d '"' -f1 | cut -d ';' -f1 | sort -u | grep -v 'SSH_TTY\|SSH_CONNECTION'| while read x; do echo \#ifndef $x; echo error! ;echo \#endif; done */ #ifndef SSH_MSG_CHANNEL_CLOSE error! #endif #ifndef SSH_MSG_CHANNEL_DATA error! #endif #ifndef SSH_MSG_CHANNEL_EOF error! #endif #ifndef SSH_MSG_CHANNEL_EXTENDED_DATA error! #endif #ifndef SSH_MSG_CHANNEL_OPEN error! #endif #ifndef SSH_MSG_CHANNEL_OPEN_CONFIRMATION error! #endif #ifndef SSH_MSG_CHANNEL_OPEN_FAILURE error! #endif #ifndef SSH_MSG_CHANNEL_REQUEST error! #endif #ifndef SSH_MSG_CHANNEL_SUCCESS error! #endif #ifndef SSH_MSG_CHANNEL_WINDOW_ADJUST error! #endif #ifndef SSH_MSG_DEBUG error! #endif #ifndef SSH_MSG_DISCONNECT error! #endif #ifndef SSH_MSG_IGNORE error! #endif #ifndef SSH_MSG_KEXDH_INIT error! #endif #ifndef SSH_MSG_KEXDH_REPLY error! #endif #ifndef SSH_MSG_KEXINIT error! #endif #ifndef SSH_MSG_NEWKEYS error! #endif #ifndef SSH_MSG_SERVICE_ACCEPT error! #endif #ifndef SSH_MSG_SERVICE_REQUEST error! #endif #ifndef SSH_MSG_UNIMPLEMENTED error! #endif #ifndef SSH_MSG_USERAUTH_FAILURE error! #endif #ifndef SSH_MSG_USERAUTH_PK_OK error! #endif #ifndef SSH_MSG_USERAUTH_REQUEST error! #endif #ifndef SSH_MSG_USERAUTH_SUCCESS error! #endif #ifndef SSH_OPEN_ADMINISTRATIVELY_PROHIBITED error! #endif int main(void) { if (strcmp(ssh_sigstr(SIGTERM), "TERM")) fail("failure") if (strcmp(ssh_sigstrlong(SIGTERM), "SIGTERM (termination)")) fail("failure") if (strcmp(ssh_sigstr(-1), "UNKNOWN")) fail("failure") if (strcmp(ssh_sigstrlong(-1), "UNKNOWN SIGNAL")) fail("failure") _exit(0); } tinyssh-20180201/tinyssh-tests/stringparsertest.c000066400000000000000000000040221322704306500221020ustar00rootroot00000000000000/* 20140204 Jan Mojzis Public domain. */ #include #include #include "fail.h" #include "str.h" #include "byte.h" #include "stringparser.h" static struct vectors { const char *buf; } testvectors[] = { { "aaa,bb,c" }, { ",aaa,bb,c" }, { "aaa,bb,c," }, { "aaa,,,,bb,,,,c" }, { ",,,aaa,,,,bb,,,,c" }, { ",,,aaa,,,,bb,,,,c,,," }, { "aaa,bb,,c," }, { 0 } }; static void stringstringparser_test1(void) { unsigned char *buf; long long i, pos = 0; unsigned char *x; long long xlen, len; for (i = 0; testvectors[i].buf; ++i) { buf = (unsigned char *)testvectors[i].buf; len = str_len(testvectors[i].buf); pos = 0; pos = stringparser(buf, len, pos, &x, &xlen); if (!pos) fail("parsing error"); if (xlen != 3) fail("parsing error"); if (!byte_isequal(x, xlen, "aaa")) fail("parsing error"); pos = stringparser(buf, len, pos, &x, &xlen); if (!pos) fail("parsing error"); if (xlen != 2) fail("parsing error"); if (!byte_isequal(x, xlen, "bb")) fail("parsing error"); pos = stringparser(buf, len, pos, &x, &xlen); if (!pos) fail("parsing error"); if (xlen != 1) fail("parsing error"); if (!byte_isequal(x, xlen, "c")) fail("parsing error"); if (stringparser(buf, len, pos, &x, &xlen)) fail("overflow"); } } static void stringstringparser_test2(void) { unsigned char *buf; long long pos = 0; unsigned char *x; long long xlen, len; buf = (unsigned char *)""; len = str_len((char *)buf); pos = 0; if (stringparser(buf, len, pos, &x, &xlen)) fail("overflow"); buf = (unsigned char *)","; len = str_len((char *)buf); pos = 0; if (stringparser(buf, len, pos, &x, &xlen)) fail("overflow"); buf = (unsigned char *)",,,,,,,,"; len = str_len((char *)buf); pos = 0; if (stringparser(buf, len, pos, &x, &xlen)) fail("overflow"); } int main(void) { stringstringparser_test1(); stringstringparser_test2(); _exit(0); } tinyssh-20180201/tinyssh-tests/strtest.c000066400000000000000000000056351322704306500202020ustar00rootroot00000000000000/* 20130610 Jan Mojzis Public domain. */ #include #include #include #include "fail.h" #include "str.h" static void test_len(void) { if (str_len("") != 0) fail("str_len return's bad length"); if (str_len("\0ahoj") != 0) fail("str_len return's bad length"); if (str_len("a\0hoj") != 1) fail("str_len return's bad length"); if (str_len("ahoj\0") != 4) fail("str_len return's bad length"); if (str_len("ahoj") != 4) fail("str_len return's bad length"); } static void test_start(void) { if (!str_start("","")) fail("str_start failure"); if (!str_start("x","")) fail("str_start failure"); if (str_start("","x")) fail("str_start failure"); if (!str_start("ahojx","ahoj")) fail("str_start failure"); if (str_start("ahoj","ahojx")) fail("str_start failure"); } static void test_equal(void) { #ifdef TODO /* equal */ if (!str_equal("","")) fail("str_equal failure"); if (!str_equal("\0","\0")) fail("str_equal failure"); if (!str_equal("","\0")) fail("str_equal failure"); if (!str_equal("\0","")) fail("str_equal failure"); if (!str_equal("ahoj","ahoj")) fail("str_equal failure"); if (!str_equal("ahoj","ahoj\0")) fail("str_equal failure"); if (!str_equal("ahoj\0","ahoj")) fail("str_equal failure"); /* not equal */ if (str_equal("x","")) fail("str_equal failure"); if (str_equal("","x")) fail("str_equal failure"); if (str_equal("xx","x")) fail("str_equal failure"); if (str_equal("x","xx")) fail("str_equal failure"); if (str_equal("ahojx","ahoj")) fail("str_equal failure"); if (str_equal("ahoj","ahojx")) fail("str_equal failure"); #endif } static void test_equaln(void) { char buf[5]; /* not equal */ if (str_equaln(buf, 0, "a")) fail("str_equaln failure"); if (str_equaln("ahoj", 4, "aho")) fail("str_equaln failure"); if (str_equaln("ahoj", 4, "ahoj!")) fail("str_equaln failure"); if (str_equaln("ahoj", 4, "ahox")) fail("str_equaln failure"); /* equal */ if (!str_equaln(buf, 0, "")) fail("str_equaln failure"); if (strncmp(buf, "", 0)) fail("strncmp failure"); if (!str_equaln("ahoj", 4, "ahoj")) fail("str_equaln failure"); if (strncmp("ahoj", "ahoj", 4)) fail("strncmp failure"); } static void test_copyn(void) { char buf[5]; /* bad */ if (str_copyn(buf, 0, "")) fail("str_copyn failure"); if (str_copyn(buf, 1, "a")) fail("str_copyn failure"); if (str_copyn(buf, sizeof buf, "ahoj!")) fail("str_copyn failure"); if (strcmp(buf, "ahoj")) fail("str_copyn failure"); /* ok */ if (!str_copyn(buf, sizeof buf, "ahoj")) fail("str_copyn failure"); if (strcmp(buf, "ahoj")) fail("str_copyn failure"); if (!str_copyn(buf, sizeof buf, "")) fail("str_copyn failure"); if (strcmp(buf, "")) fail("str_copyn failure"); } int main(void) { test_len(); test_start(); test_equal(); test_equaln(); test_copyn(); _exit(0); } tinyssh-20180201/tinyssh-tests/subprocess_authtest.c000066400000000000000000000447011322704306500226000ustar00rootroot00000000000000/* 20140321 Jan Mojzis Public domain. */ #include #include #include #include #include #include "fail.h" #include "dropuidgid.h" #include "savesync.h" #include "open.h" #include "global.h" #include "byte.h" #include "str.h" #include "log.h" #include "subprocess.h" static int readall(int fd, unsigned char *x, long long xlen) { long long r; long long len = 0; while (xlen > 0) { r = read(fd, x, xlen); if (r == 0) break; if (r <= 0) return -1; x += r; len += r; xlen -= r; } return len; } static unsigned char logbuf[1024]; static char globalpath[4096]; static long long globalpathlen; static void run(void (*op)(void), const char *exp) { pid_t pid; int status, fromchild[2]; long long r, i; if (pipe(fromchild) == -1) fail("pipe() failure"); pid = fork(); if (pid == -1) fail("fork() failure"); if (pid == 0) { close(fromchild[0]); if (dup2(fromchild[1], 2) == -1) _exit(111); op(); _exit(0); } close(fromchild[1]); r = readall(fromchild[0], logbuf, sizeof logbuf); if (r == -1) fail("read() failure"); for (i = 0; i < r; ++i) if (logbuf[i] == '\n') break; r = i; for (i = 0; i < r; ++i) if (logbuf[i] == '/') break; r -= i; byte_copy(logbuf, r, logbuf + i); /* fprintf(stderr, "xxx: %s\n", logbuf); fflush(stderr); */ if (r < globalpathlen + 1) fail("log error"); if (!byte_isequal(globalpath, globalpathlen, logbuf)) fail("log error"); r -= globalpathlen + 1; byte_copy(logbuf, r, logbuf + globalpathlen + 1); for (i = 0; i < r; ++i) if (logbuf[i] == '{') break; r = i; logbuf[r] = 0; while (waitpid(pid, &status, 0) != pid) {}; if (!WIFEXITED(status)) fail("process killed"); if (WEXITSTATUS(status)) fail("process exited with status != 0"); i = str_len(exp); if (r != i) fail("failed"); if (!byte_isequal(logbuf, i, exp)) fail("failed"); } static int run2(void (*op)(void)) { pid_t pid; int status; pid = fork(); if (pid == -1) return -1; if (pid == 0) { close(2); op(); _exit(0); } while (waitpid(pid, &status, 0) != pid) {}; if (!WIFEXITED(status)) return -1; return WEXITSTATUS(status); } static void test_usernotexist(void) { const char *account = "21ecdfcc00506bc138d004a0c04139442e24b02ac456bf05601f1e8f645baa2"; const char *keyname = "ssh-ed25519"; const char *key = "key1"; if (subprocess_auth(account, keyname, key) == 0) fail("subprocess_auth() failure"); } static void test_usertoolong(void) { const char *account = "21ecdfcc00506bc138d004a0c04139442e24b02ac456bf05601f1e8f645baa25"; const char *keyname = "ssh-ed25519"; const char *key = "key1"; if (subprocess_auth(account, keyname, key) == 0) fail("subprocess_auth() failure"); } static void test_keytooshort(void) { const char *account = "21ecdfcc00506bc138d004a0c04139442e24b02ac456bf05601f1e8f645baa2"; const char *keyname = "ssh-ed25519"; const char *key = "AAAAC3NzaC1lZDI1NTE5AAAAICj44ZR+OCpjuLbOwqys2MKHroSvAWGgEE1o7yq+UVe"; if (subprocess_auth(account, keyname, key) == 0) fail("subprocess_auth() failure"); } static struct passwd *pw; static void droproot(void) { uid_t uid; uid = geteuid(); if (uid == 0) { pw = getpwnam("nobody"); if (!pw) fail("getpwnam() failure") if (!dropuidgid(pw->pw_name, pw->pw_uid, pw->pw_gid)) fail("dropuidgid() failure"); } else { pw = getpwuid(uid); if (!pw) fail("getpwuid() failure") } if (geteuid() == 0) fail("dropuidgid() failure"); } static void test_root(void) { const char *account = "root"; const char *keyname = "ssh-ed25519"; const char *key = "key1"; if (subprocess_auth(account, keyname, key) == 0) fail("subprocess_auth() failure"); } #define path global_bspace2 /* reusing global buffer */ #define buf global_bspace1 /* reusing global buffer */ static void test_path_authorizedkeys_ne(void) { umask(000); if (mkdir("d1", 0755) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_authorizedkeys_fifo(void) { umask(000); if (mkdir("d1", 0755) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (mkfifo("authorized_keys", 0644) == -1) fail("mkfifo() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_authorizedkeys_perm1(void) { umask(000); if (mkdir("d1", 0755) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (savesync("authorized_keys", "", 0) == -1) fail("savesync() failure"); if (chmod("authorized_keys", 0777) == -1) fail("chmod() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_authorizedkeys_perm2(void) { umask(000); if (mkdir("d1", 0755) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (savesync("authorized_keys", "", 0) == -1) fail("savesync() failure"); if (chmod("authorized_keys", 0775) == -1) fail("chmod() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_authorizedkeys_perm3(void) { umask(000); if (mkdir("d1", 0755) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (savesync("authorized_keys", "", 0) == -1) fail("savesync() failure"); if (chmod("authorized_keys", 0757) == -1) fail("chmod() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_dir_perm1(void) { umask(000); if (mkdir("d1", 0775) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (savesync("authorized_keys", "", 0) == -1) fail("savesync() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_dir_perm2(void) { umask(000); if (mkdir("d1", 0777) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (savesync("authorized_keys", "", 0) == -1) fail("savesync() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_dir_perm3(void) { umask(000); if (mkdir("d1", 0757) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (savesync("authorized_keys", "", 0) == -1) fail("savesync() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_dir2_perm1(void) { umask(000); if (mkdir("d1", 0777) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (mkdir("d2", 0777) == -1) fail("mkdir() failure"); if (chdir("d2") == -1) fail("chdir() failure"); if (savesync("authorized_keys", "", 0) == -1) fail("savesync() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d2") == -1) fail("rmdir() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_dir2_perm2(void) { umask(000); if (mkdir("d1", 0777) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (mkdir("d2", 0775) == -1) fail("mkdir() failure"); if (chdir("d2") == -1) fail("chdir() failure"); if (savesync("authorized_keys", "", 0) == -1) fail("savesync() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d2") == -1) fail("rmdir() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_dir2_perm3(void) { umask(000); if (mkdir("d1", 0777) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (mkdir("d2", 0757) == -1) fail("mkdir() failure"); if (chdir("d2") == -1) fail("chdir() failure"); if (savesync("authorized_keys", "", 0) == -1) fail("savesync() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d2") == -1) fail("rmdir() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_dir3_perm1(void) { umask(000); if (mkdir("d1", 0777) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (mkdir("d2", 0755) == -1) fail("mkdir() failure"); if (chdir("d2") == -1) fail("chdir() failure"); if (savesync("authorized_keys", "", 0) == -1) fail("savesync() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d2") == -1) fail("rmdir() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_dir3_perm2(void) { umask(000); if (mkdir("d1", 0775) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (mkdir("d2", 0755) == -1) fail("mkdir() failure"); if (chdir("d2") == -1) fail("chdir() failure"); if (savesync("authorized_keys", "", 0) == -1) fail("savesync() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d2") == -1) fail("rmdir() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_dir3_perm3(void) { umask(000); if (mkdir("d1", 0757) == -1) fail("mkdir() failure"); if (chdir("d1") == -1) fail("chdir() failure"); if (mkdir("d2", 0755) == -1) fail("mkdir() failure"); if (chdir("d2") == -1) fail("chdir() failure"); if (savesync("authorized_keys", "", 0) == -1) fail("savesync() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d2") == -1) fail("rmdir() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_path_dir_symlink(void) { umask(000); if (mkdir("d1", 0775) == -1) fail("mkdir() failure"); if (symlink("d1", "d2") == -1) fail("symlink() failure"); if (chdir("d2") == -1) fail("chdir() failure"); if (savesync("authorized_keys", "", 0) == -1) fail("savesync() failure"); if (subprocess_auth_checkpath_((char *)path, sizeof path, geteuid())) fail("subprocess_auth_checkpath_() failure"); if (unlink("authorized_keys") == -1) fail("unlink() failure"); if (chdir("..") == -1) fail("chdir() failure"); if (unlink("d2") == -1) fail("rmdir() failure"); if (rmdir("d1") == -1) fail("rmdir() failure"); } static void test_authorizedkeys_ne(void) { const char *keyname = ""; const char *key = ""; if (!getcwd((char *)path, sizeof path)) fail("getcwd() failure"); if (subprocess_auth_authorizedkeys_((char *)keyname, (char *)key, (char *)path, (char *)buf, sizeof buf)) fail("subprocess_auth_authorizedkeys_() failure"); } #define AUTHORIZED_KEYS "\ \n\ \n\ ###\n\ \n\ \n\ \n\ \n\ ssh-rsa AAAAB3Nza...LiPk== user@example.net\n\ from=\"*.sales.example.net,!pc.sales.example.net\" ssh-rsa AAAAB2...19Q== john@example.net\n\ command=\"dump /home\",no-pty,no-port-forwarding ssh-dss AAAAC3...51R== example.net\n\ permitopen=\"192.0.2.1:80\",permitopen=\"192.0.2.2:25\" ssh-dss AAAAB5...21S==\n\ tunnel=\"0\",command=\"sh /etc/netstart tun0\" ssh-rsa AAAA...== jane@example.net\n\ ecdsa-sha2-nistp256 ecdsakey1 apache@apache\n\ \n\ \n\ ssh-ed25519 badkey1 note - extra ' ' before keyname\n\ ssh-ed25519 badkey2. note - '.' as separator\n\ ssh-ed255191 badkey3\n\ ssh-ed25519\tbadkey4\n\ ssh-ed25519 badkey5\n\ \n\ \n\ ssh-ed25519 key1\n\ ssh-ed25519 key2\r\n\ ssh-ed25519 key3 note - ' ' as separator\n\ ssh-ed25519 key4\0note - '\0' as separator\n\ ssh-ed25519 key5 note - last line" static void authorizedkeys(void) { if (savesync("authorized_keys", AUTHORIZED_KEYS, sizeof(AUTHORIZED_KEYS) - 1) == -1) fail("savesync() failure"); } static void test_authorizedkeys_ok(void) { const char *keyname, *key; if (!getcwd((char *)path, sizeof path)) fail("getcwd() failure"); keyname = "ssh-ed25519"; key = "key1"; if (!subprocess_auth_authorizedkeys_((char *)keyname, (char *)key, (char *)path, (char *)buf, sizeof buf)) fail("subprocess_auth_authorizedkeys_() failure"); keyname = "ssh-ed25519"; key = "key2"; if (!subprocess_auth_authorizedkeys_((char *)keyname, (char *)key, (char *)path, (char *)buf, sizeof buf)) fail("subprocess_auth_authorizedkeys_() failure"); keyname = "ssh-ed25519"; key = "key3"; if (!subprocess_auth_authorizedkeys_((char *)keyname, (char *)key, (char *)path, (char *)buf, sizeof buf)) fail("subprocess_auth_authorizedkeys_() failure"); keyname = "ssh-ed25519"; key = "key4"; if (!subprocess_auth_authorizedkeys_((char *)keyname, (char *)key, (char *)path, (char *)buf, sizeof buf)) fail("subprocess_auth_authorizedkeys_() failure"); keyname = "ssh-ed25519"; key = "key5"; if (!subprocess_auth_authorizedkeys_((char *)keyname, (char *)key, (char *)path, (char *)buf, sizeof buf)) fail("subprocess_auth_authorizedkeys_() failure"); } static void test_authorizedkeys_bad(void) { const char *keyname, *key; if (!getcwd((char *)path, sizeof path)) fail("getcwd() failure"); keyname = "ssh-ed25519"; key = "badkey1"; if (subprocess_auth_authorizedkeys_((char *)keyname, (char *)key, (char *)path, (char *)buf, sizeof buf)) fail("subprocess_auth_authorizedkeys_() failure"); keyname = "ssh-ed25519"; key = "badkey2"; if (subprocess_auth_authorizedkeys_((char *)keyname, (char *)key, (char *)path, (char *)buf, sizeof buf)) fail("subprocess_auth_authorizedkeys_() failure"); keyname = "ssh-ed25519"; key = "badkey3"; if (subprocess_auth_authorizedkeys_((char *)keyname, (char *)key, (char *)path, (char *)buf, sizeof buf)) fail("subprocess_auth_authorizedkeys_() failure"); keyname = "ssh-ed25519"; key = "badkey4"; if (subprocess_auth_authorizedkeys_((char *)keyname, (char *)key, (char *)path, (char *)buf, sizeof buf)) fail("subprocess_auth_authorizedkeys_() failure"); keyname = "ssh-ed25519"; key = "badkey5"; if (subprocess_auth_authorizedkeys_((char *)keyname, (char *)key, (char *)path, (char *)buf, sizeof buf)) fail("subprocess_auth_authorizedkeys_() failure"); } int main(void) { if (!getcwd(globalpath, sizeof globalpath)) fail("getcwd() failure"); globalpathlen = str_len(globalpath); log_init(2, "xxx", 1, 0); run(test_path_authorizedkeys_ne, "d1/authorized_keys (file does not exist)"); run(test_path_authorizedkeys_fifo, "d1/authorized_keys (access denied)"); run(test_path_authorizedkeys_perm1, "d1/authorized_keys (access denied)"); run(test_path_authorizedkeys_perm2, "d1/authorized_keys (access denied)"); run(test_path_authorizedkeys_perm3, "d1/authorized_keys (access denied)"); run(test_path_dir_perm1, "d1/ (access denied)"); run(test_path_dir_perm2, "d1/ (access denied)"); run(test_path_dir_perm3, "d1/ (access denied)"); run(test_path_dir2_perm1, "d1/d2/ (access denied)"); run(test_path_dir2_perm2, "d1/d2/ (access denied)"); run(test_path_dir2_perm3, "d1/d2/ (access denied)"); run(test_path_dir3_perm1, "d1/ (access denied)"); run(test_path_dir3_perm2, "d1/ (access denied)"); run(test_path_dir3_perm3, "d1/ (access denied)"); run(test_path_dir_symlink, "d1/ (access denied)"); log_init(-1, "xxx", 1, 0); test_authorizedkeys_ne(); authorizedkeys(); test_authorizedkeys_ok(); test_authorizedkeys_bad(); droproot(); run2(test_usernotexist); run2(test_usertoolong); run2(test_keytooshort); run2(test_root); _exit(0); } tinyssh-20180201/tinyssh-tests/subprocess_signtest.c000066400000000000000000000057021322704306500225750ustar00rootroot00000000000000/* 20140321 Jan Mojzis Public domain. */ #include #include #include #include "fail.h" #include "savesync.h" #include "sshcrypto.h" #include "open.h" #include "purge.h" #include "byte.h" #include "randommod.h" #include "crypto_uint32.h" #include "subprocess.h" unsigned char sh[sshcrypto_hash_MAX]; unsigned char sm[sshcrypto_sign_MAX + sshcrypto_hash_MAX]; unsigned char m[sshcrypto_sign_MAX + sshcrypto_hash_MAX]; unsigned long long mlen; unsigned char sk[sshcrypto_sign_SECRETKEYMAX]; const char *keydir = "./keydir"; static void create(const char *fn, const unsigned char *x, long long xlen) { if (savesync(fn, x, xlen) == -1) fail("unable to create test directory"); } int main(void) { long long i, j; int fd; fd = open_cwd(); if (fd == -1) fail("open_cwd() failure"); /* make keydir */ umask(022); if (mkdir(keydir, 0755) == -1) fail("unable to create test directory"); if (chdir(keydir) == -1) fail("unable to chdir to directory"); for (i = 0; sshcrypto_keys[i].name; ++i) { if (sshcrypto_keys[i].sign_keypair(sshcrypto_keys[i].sign_publickey, sk) != 0) fail("unable to generate key pair"); umask(022); create(sshcrypto_keys[i].sign_publickeyfilename, sshcrypto_keys[i].sign_publickey, sshcrypto_keys[i].sign_publickeybytes); umask(077); create(sshcrypto_keys[i].sign_secretkeyfilename, sk, sshcrypto_keys[i].sign_secretkeybytes); purge(sk, sizeof sk); } if (fchdir(fd) == -1) fail("fchdir() failure"); for (i = 0; sshcrypto_keys[i].name; ++i) { /* set globals */ sshcrypto_key_name = sshcrypto_keys[i].name; sshcrypto_sign = sshcrypto_keys[i].sign; sshcrypto_sign_publickey = sshcrypto_keys[i].sign_publickey; sshcrypto_sign_publickeybytes = sshcrypto_keys[i].sign_publickeybytes; sshcrypto_sign_secretkeybytes = sshcrypto_keys[i].sign_secretkeybytes; sshcrypto_sign_bytes = sshcrypto_keys[i].sign_bytes; sshcrypto_sign_secretkeyfilename = sshcrypto_keys[i].sign_secretkeyfilename; sshcrypto_hash_bytes = 64; for (j = 0; j < 100; ++j) { /* sign */ purge(sh, sizeof sh); if (subprocess_sign(sm, sshcrypto_sign_bytes, keydir, sh, sshcrypto_hash_bytes) != 0) fail("unable to sign"); byte_copy(sm + sshcrypto_sign_bytes, sshcrypto_hash_bytes, sh); /* verify */ if (sshcrypto_keys[i].sign_open(m, &mlen, sm, sshcrypto_hash_bytes + sshcrypto_sign_bytes, sshcrypto_keys[i].sign_publickey) != 0) fail("unable to open signed box"); #if 0 /* forgery */ sm[randommod(sshcrypto_sign_bytes + sshcrypto_hash_bytes)] += 1 + randommod(255); if (sshcrypto_keys[i].sign_open(m, &mlen, sm, sshcrypto_hash_bytes + sshcrypto_sign_bytes, sshcrypto_keys[i].sign_publickey) == 0) fail("forgery"); #endif } } _exit(0); } tinyssh-20180201/tinyssh-tests/trymlocktest.c000066400000000000000000000003231322704306500212230ustar00rootroot00000000000000/* 20140303 Jan Mojzis Public domain. */ #include #include "trymlock.h" unsigned char buf[100]; int main(void) { long long i; for (i = 81; i < 100; ++i) trymlock(buf, i); _exit(0); } tinyssh-20180201/tinyssh-tests/writealltest.c000066400000000000000000000014111322704306500212010ustar00rootroot00000000000000/* 20140417 Jan Mojzis Public domain. */ #include #include #include #include #include "fail.h" #include "open.h" #include "randombytes.h" #include "byte.h" #include "load.h" #include "writeall.h" #define SPACELEN 1048577 unsigned char space1[SPACELEN]; unsigned char space2[SPACELEN]; static void test1(void) { int fd; fd = open_write("writealltest.data"); if (fd == -1) fail("failure"); randombytes(space1, sizeof space1); if (writeall(fd, space1, sizeof space1) == -1) fail("failure"); close(fd); if (load("writealltest.data", space2, sizeof space2) == -1) fail("failure"); if (!byte_isequal(space1, SPACELEN, space2)) fail("failure"); } int main(void) { test1(); _exit(0); } tinyssh-20180201/tinyssh/000077500000000000000000000000001322704306500151555ustar00rootroot00000000000000tinyssh-20180201/tinyssh/LIBS000066400000000000000000000015541322704306500156360ustar00rootroot00000000000000blocking.o buf.o byte.o channel_drop.o channel_fork.o channel_forkpty.o channel.o channel_subsystem.o coe.o connectioninfo.o die.o dropuidgid.o env.o e.o getln.o global.o iptostr.o load.o loginshell.o log.o logsys.o newenv.o numtostr.o open.o packet_auth.o packet_channel_open.o packet_channel_recv.o packet_channel_request.o packet_channel_send.o packet_get.o packet_hello.o packet_kexdh.o packet_kex.o packet.o packetparser.o packet_put.o packet_recv.o packet_send.o packet_unimplemented.o porttostr.o randommod.o readall.o savesync.o sshcrypto_cipher_aesctr256.o sshcrypto_cipher_aesctr.o sshcrypto_cipher_chachapoly.o sshcrypto_cipher.o sshcrypto_kex_curve25519.o sshcrypto_kex_nistp256.o sshcrypto_kex.o sshcrypto_key_ed25519.o sshcrypto_key_nistp256ecdsa.o sshcrypto_key.o sshcrypto.o ssh.o stringparser.o str.o subprocess_auth.o subprocess_sign.o trymlock.o writeall.o tinyssh-20180201/tinyssh/SOURCES000066400000000000000000000014361322704306500162270ustar00rootroot00000000000000blocking buf byte channel channel_drop channel_fork channel_forkpty channel_subsystem coe connectioninfo die dropuidgid e env getln global iptostr load log loginshell logsys newenv numtostr open packet packet_auth packet_channel_open packet_channel_recv packet_channel_request packet_channel_send packet_get packet_hello packet_kex packet_kexdh packetparser packet_put packet_recv packet_send packet_unimplemented porttostr randommod readall savesync ssh sshcrypto sshcrypto_cipher sshcrypto_cipher_aesctr sshcrypto_cipher_aesctr256 sshcrypto_cipher_chachapoly sshcrypto_kex sshcrypto_kex_curve25519 sshcrypto_kex_nistp256 sshcrypto_key sshcrypto_key_ed25519 sshcrypto_key_nistp256ecdsa str stringparser subprocess_auth subprocess_sign tinysshd tinysshd-makekey tinysshd-printkey trymlock writeall tinyssh-20180201/tinyssh/TARGETS000066400000000000000000000000541322704306500162100ustar00rootroot00000000000000tinysshd-makekey tinysshd-printkey tinysshd tinyssh-20180201/tinyssh/blocking.c000066400000000000000000000004231322704306500171100ustar00rootroot00000000000000/* taken from nacl-20110221, from curvecp/blocking.c */ #include #include "blocking.h" void blocking_enable(int fd) { fcntl(fd,F_SETFL,fcntl(fd,F_GETFL,0) & ~O_NONBLOCK); } void blocking_disable(int fd) { fcntl(fd,F_SETFL,fcntl(fd,F_GETFL,0) | O_NONBLOCK); } tinyssh-20180201/tinyssh/blocking.h000066400000000000000000000001641322704306500171170ustar00rootroot00000000000000#ifndef BLOCKING_H #define BLOCKING_H extern void blocking_enable(int); extern void blocking_disable(int); #endif tinyssh-20180201/tinyssh/buf.c000066400000000000000000000134421322704306500161010ustar00rootroot00000000000000/* 20140108 Jan Mojzis Public domain. The 'buf' library holds a string in allocated space. The string length is limited by allocated memory. All 'buf_put*' functions checks the limit and if the string exceeds the limit, 'buf_put*' function immediately exits with 111 status code. */ #include "byte.h" #include "str.h" #include "purge.h" #include "randombytes.h" #include "uint32_pack_big.h" #include "bug.h" #include "buf.h" /* Initialize 'b' structure. */ void buf_init_(const char *fn, unsigned long long line, struct buf *b, unsigned char *buf, long long alloc) { if (!b || !buf || alloc <= 0 || alloc > 1073741824) bug_inval_(fn, line); b->buf = buf; b->len = 0; b->alloc = alloc; purge(b->buf, b->alloc); } /* Remove content of 'b'. */ void buf_purge_(const char *fn, unsigned long long line, struct buf *b) { if (!b || b->len < 0 || b->len > 1073741824 || b->alloc <= 0 || b->alloc > 1073741824 || !b->buf) bug_inval_(fn, line); purge(b->buf, b->len); b->len = 0; } /* Retun if 'b' has available space for string of length 'len'. */ int buf_ready_(const char *fn, unsigned long long line, struct buf *b, long long len) { if (!b || b->len < 0 || b->len > 1073741824 || b->alloc <= 0 || b->alloc > 1073741824 || !b->buf || len < 0 || len > 1073741824) bug_inval_(fn, line); return (b->len + len < b->alloc); } /* Put string 'x' of length 'len'. */ int buf_put_(const char *fn, unsigned long long line, struct buf *b, const unsigned char *x, long long len) { if (!b || b->len < 0 || b->len > 1073741824 || b->alloc <= 0 || b->alloc > 1073741824 || !b->buf || !x || len < 0 || len > 1073741824) bug_inval_(fn, line); if (b->len + len >= b->alloc) bug_nomem_(fn, line); byte_copy(b->buf + b->len, len, x); b->len += len; return 1; } /* Put 0-terminated string 'x'. */ int buf_puts_(const char *fn, unsigned long long line, struct buf *b, const char *x) { return buf_put_(fn, line, b, (const unsigned char *)x, str_len(x)); } /* Put zero bytes of length 'len'. */ int buf_putzerobytes_(const char *fn, unsigned long long line, struct buf *b, long long len) { if (!b || b->len < 0 || b->len > 1073741824 || b->alloc <= 0 || b->alloc > 1073741824 || !b->buf || len < 0 || len > 1073741824) bug_inval_(fn, line); if (b->len + len >= b->alloc) bug_nomem_(fn, line); byte_zero(b->buf + b->len, len); b->len += len; return 1; } /* Put random bytes of length 'len'. */ int buf_putrandombytes_(const char *fn, unsigned long long line, struct buf *b, long long len) { if (!b || b->len < 0 || b->len > 1073741824 || b->alloc <= 0 || b->alloc > 1073741824 || !b->buf || len < 0 || len > 1073741824) bug_inval_(fn, line); if (b->len + len >= b->alloc) bug_nomem_(fn, line); randombytes(b->buf + b->len, len); b->len += len; return 1; } /* Put padding of length 'len'. */ int buf_putpadding_(const char *fn, unsigned long long line, struct buf *b, long long len) { if (!b || b->len < 0 || b->len > 1073741824 || b->alloc <= 0 || b->alloc > 1073741824 || !b->buf || len < 0 || len > 1073741824) bug_inval_(fn, line); if (b->len + len >= b->alloc) bug_nomem_(fn, line); purge(b->buf + b->len, len); b->len += len; return 1; } /* Put 32-bit unsigned integer in big-endian format. */ int buf_putnum32_(const char *fn, unsigned long long line, struct buf *b, crypto_uint32 x) { unsigned char s[4]; uint32_pack_big(s, x); return buf_put_(fn, line, b, s, sizeof s); } /* Put 8-bit unsigned integer. */ int buf_putnum8_(const char *fn, unsigned long long line, struct buf *b, crypto_uint8 u) { return buf_put_(fn, line, b, &u, 1); } /* Put string 'x' of length 'len' and format it as a SSH-string. */ int buf_putstringlen_(const char *fn, unsigned long long line, struct buf *b, const unsigned char *x, long long len) { if (!buf_putnum32_(fn, line, b, len)) return 0; return buf_put_(fn, line, b, x, len); } /* Put 0-terminated string 'x' and format it as a SSH-string. */ int buf_putstring_(const char *fn, unsigned long long line, struct buf *b, const char *x) { return buf_putstringlen_(fn, line, b, (unsigned char *)x, str_len(x)); } /* Put SSH shared secret (bignum formated into wire format) */ int buf_putsharedsecret_(const char *fn, unsigned long long line, struct buf *b, const unsigned char *x, long long len) { long long pos; if (len < 0 || len > 1073741824 || !b || !x) bug_inval_(fn, line); for (pos = 0; pos < len; ++pos) if (x[pos]) break; if (x[pos] & 0x80) { buf_putnum32_(fn, line, b, len - pos + 1); buf_putnum8_(fn, line, b, 0); } else { buf_putnum32_(fn, line, b, len - pos + 0); } return buf_put_(fn, line, b, x + pos, len - pos); } /* Put string 'x' of length 'len' and encode it into base64. */ static const unsigned char b64chars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; int buf_putbase64_(const char *fn, unsigned long long line, struct buf *b, const unsigned char *x, long long len) { long long i; unsigned long long bits = 0, v = 0; unsigned char ch; if (len < 0 || len > 1073741824 || !b || !x) bug_inval_(fn, line); for (i = 0; i < len; ++i) { v <<= 8; v += x[i]; bits += 8; while (bits > 6) { ch = b64chars[((v >> (bits - 6)) & 63)]; buf_putnum8_(fn, line, b, ch); bits -= 6; } } if (bits) { v <<= (6 - bits); ch = b64chars[v & 63]; buf_putnum8_(fn, line, b, ch); } while (b->len & 3) { buf_putnum8_(fn, line, b, '='); } return 1; } tinyssh-20180201/tinyssh/buf.h000066400000000000000000000050351322704306500161050ustar00rootroot00000000000000/* 20140108 Jan Mojzis Public domain. */ #ifndef _BUF_H____ #define _BUF_H____ #include "crypto_uint8.h" #include "crypto_uint32.h" struct buf { unsigned char *buf; long long len; long long alloc; }; extern void buf_init_(const char *, unsigned long long, struct buf *, unsigned char *, long long); extern void buf_purge_(const char *, unsigned long long, struct buf *); extern int buf_ready_(const char *, unsigned long long, struct buf *, long long); extern int buf_put_(const char *, unsigned long long, struct buf *, const unsigned char *, long long); extern int buf_puts_(const char *, unsigned long long, struct buf *, const char *); extern int buf_putzerobytes_(const char *, unsigned long long, struct buf *, long long); extern int buf_putrandombytes_(const char *, unsigned long long, struct buf *, long long); extern int buf_putpadding_(const char *, unsigned long long, struct buf *, long long); extern int buf_putnum32_(const char *, unsigned long long, struct buf *, crypto_uint32); extern int buf_putnum8_(const char *, unsigned long long, struct buf *, crypto_uint8); extern int buf_putstringlen_(const char *, unsigned long long, struct buf *, const unsigned char *, long long); extern int buf_putstring_(const char *, unsigned long long, struct buf *, const char *); extern int buf_putsharedsecret_(const char *, unsigned long long, struct buf *, const unsigned char *, long long); extern int buf_putbase64_(const char *, unsigned long long, struct buf *, const unsigned char *, long long); #define buf_init(a, b, c) buf_init_(__FILE__, __LINE__, (a), (b), (c)) #define buf_purge(a) buf_purge_(__FILE__, __LINE__, (a)) #define buf_ready(a, b) buf_ready_(__FILE__, __LINE__, (a), (b)) #define buf_put(a, b, c) buf_put_(__FILE__, __LINE__, (a), (b), (c)) #define buf_puts(a, b) buf_puts_(__FILE__, __LINE__, (a), (b)) #define buf_putzerobytes(a, b) buf_putzerobytes_(__FILE__, __LINE__, (a), (b)) #define buf_putrandombytes(a, b) buf_putrandombytes_(__FILE__, __LINE__, (a), (b)) #define buf_putpadding(a, b) buf_putpadding_(__FILE__, __LINE__, (a), (b)) #define buf_putnum32(a, b) buf_putnum32_(__FILE__, __LINE__, (a), (b)) #define buf_putnum8(a, b) buf_putnum8_(__FILE__, __LINE__, (a), (b)) #define buf_putstringlen(a, b, c) buf_putstringlen_(__FILE__, __LINE__, (a), (b), (c)) #define buf_putstring(a, b) buf_putstring_(__FILE__, __LINE__, (a), (b)) #define buf_putsharedsecret(a, b, c) buf_putsharedsecret_(__FILE__, __LINE__, (a), (b), (c)) #define buf_putbase64(a, b, c) buf_putbase64_(__FILE__, __LINE__, (a), (b), (c)) #endif tinyssh-20180201/tinyssh/bug.h000066400000000000000000000012231322704306500161010ustar00rootroot00000000000000#ifndef _BUG_H____ #define _BUG_H____ #include #include "global.h" #include "e.h" #include "log.h" #define bug_(a, b) do { log_9_(-1, 0, a, b, 0, 0, 0, 0, 0, 0, 0, 0, 0); global_die(111); } while (0); #define bug() bug_(__FILE__, __LINE__) #define bug_nomem() do { errno = ENOMEM; bug(); } while (0); #define bug_proto() do { errno = EPROTO; bug(); } while (0); #define bug_inval() do { errno = EINVAL; bug(); } while (0); #define bug_nomem_(a, b) do { errno = ENOMEM; bug_(a, b); } while (0); #define bug_proto_(a, b) do { errno = EPROTO; bug_(a, b); } while (0); #define bug_inval_(a, b) do { errno = EINVAL; bug_(a, b); } while (0); #endif tinyssh-20180201/tinyssh/byte.c000066400000000000000000000012631322704306500162660ustar00rootroot00000000000000/* taken from nacl-20110221, from curvecp/byte_copy.c curvecp/byte_isequal.c curvecp/byte_zero.c */ #include "byte.h" void byte_copy(void *yv,long long ylen,const void *xv) { char *y = (char *)yv; const char *x = (const char *)xv; while (ylen > 0) { *y++ = *x++; --ylen; } } int byte_isequal(const void *yv,long long ylen,const void *xv) { const unsigned char *y = (const unsigned char *)yv; const unsigned char *x = (const unsigned char *)xv; unsigned char diff = 0; while (ylen > 0) { diff |= (*y++ ^ *x++); --ylen; } return (256 - (unsigned int) diff) >> 8; } void byte_zero(void *yv,long long ylen) { char *y = (char *)yv; while (ylen > 0) { *y++ = 0; --ylen; } } tinyssh-20180201/tinyssh/byte.h000066400000000000000000000003041322704306500162660ustar00rootroot00000000000000#ifndef BYTE_H #define BYTE_H extern void byte_zero(void *,long long); extern void byte_copy(void *,long long,const void *); extern int byte_isequal(const void *,long long,const void *); #endif tinyssh-20180201/tinyssh/channel.c000066400000000000000000000272321322704306500167370ustar00rootroot00000000000000/* 20140124 Jan Mojzis Public domain. The 'channel' library is used to handle data from/to SSH channel (rfc4254). */ #include #include #include #include #include #include #include extern char *ptsname(int); #include "byte.h" #include "bug.h" #include "newenv.h" #include "e.h" #include "purge.h" #include "connectioninfo.h" #include "iptostr.h" #include "porttostr.h" #include "buf.h" #include "str.h" #include "logsys.h" #include "loginshell.h" #include "trymlock.h" #include "limit.h" #include "channel.h" /* 1. channel not open: maxpacket == 0, pid == 0 2. channel open: maxpacket != 0, pid == 0 3. child executed: maxpacket != 0, pid > 0, fd[01] != -1 4. child eof: maxpacket != 0, pid > 0, fd[12] == -1 5. child died: maxpacket != 0, pid == -1 */ struct channel channel = {0}; /* The 'channel_open' function opens the channel. It sets 'localwindow' and maxpacket, values obtained from from SSH_MSG_CHANNEL_OPEN message. Function also obtaines connection information and sets environment variables PATH, SSH_CONNECTION and MAIL. */ int channel_open(const char *user, crypto_uint32 id, crypto_uint32 remotewindow, crypto_uint32 maxpacket, crypto_uint32 *localwindow) { struct buf b = { channel.buf0, 0, CHANNEL_BUFSIZE }; if (!localwindow) bug_inval(); if (!maxpacket) bug_inval(); if (!remotewindow) bug_inval(); if (channel.maxpacket != 0) bug_proto(); if (channel.pid != 0) bug_proto(); /* copy user-name */ if (!str_copyn(channel.user, sizeof channel.user, user)) bug_nomem(); /* set id, maxpacket, remotewindow, localwindow */ channel.id = id; channel.maxpacket = maxpacket; channel.remotewindow = remotewindow; channel.localwindow = *localwindow = CHANNEL_BUFSIZE; /* copy PATH */ if (!newenv_copyenv("PATH")) if (!newenv_env("PATH", "/bin:/usr/bin")) return 0; /* create env. SSH_CONNECTION */ connectioninfo(channel.localip, channel.localport, channel.remoteip, channel.remoteport); buf_purge(&b); buf_puts(&b, channel.remoteip); buf_puts(&b, " "); buf_puts(&b, channel.remoteport); buf_puts(&b, " "); buf_puts(&b, channel.localip); buf_puts(&b, " "); buf_puts(&b, channel.localport); buf_putnum8(&b, 0); if (!newenv_env("SSH_CONNECTION", (char *)b.buf)) return 0; /* create env. MAIL */ #ifdef _PATH_MAILDIR buf_purge(&b); buf_puts(&b, _PATH_MAILDIR); buf_puts(&b, "/"); buf_puts(&b, user); buf_putnum8(&b, 0); if (!newenv_env("MAIL", (char *)b.buf)) return 0; #endif purge(channel.buf0, sizeof channel.buf0); return 1; } /* The 'channel_openterminal' function opens terminal, sets environment variable TERM and initial terminal windowsize. */ int channel_openterminal(const char *name, crypto_uint32 a, crypto_uint32 b, crypto_uint32 x, crypto_uint32 y) { if (channel.maxpacket == 0) bug_proto(); if (channel.pid != 0) bug_proto(); if (channel.flagterminal == 1) bug_proto(); if (!channel_openpty(&channel.master, &channel.slave)) return 0; if (!newenv_env("TERM", name)) return 0; channel.flagterminal = 1; channel.a = a; channel.b = b; channel.x = x; channel.y = y; return 1; } /* The 'channel_ptyresize' function sets new terminal windowsize. */ void channel_ptyresize(crypto_uint32 a, crypto_uint32 b, crypto_uint32 x, crypto_uint32 y) { struct winsize w; if (channel.maxpacket == 0) bug_proto(); if (channel.pid <= 0) bug_proto(); if (!a && !b && !x && !y) return; w.ws_col = a; w.ws_row = b; w.ws_xpixel = x; w.ws_ypixel = y; ioctl(channel.fd0, TIOCSWINSZ, &w); } /* The 'channel_env' adds new environment variable sent from client. */ int channel_env(const char *x, const char *y) { if (channel.maxpacket == 0) bug_proto(); if (channel.pid != 0) bug_proto(); if (!x || !y) bug_inval(); return newenv_lowenv(x, y); } /* The 'channel_exec' function executes new process. If terminal is requsted, than users shell is executed, if exec is requested, than command 'cmd' is executed. Process is executed under appropriate users UID. */ int channel_exec(const char *cmd) { char *run[4]; char *shell; char *name; int fd[3]; char ln[NAME_MAX + 2]; if (channel.maxpacket == 0) bug_proto(); if (channel.pid != 0 ) bug_proto(); if (channel.flagterminal) { channel.pid = channel_forkpty(fd, channel.master, channel.slave); if (channel.pid > 0) { name = ptsname(fd[0]); if (!name) bug(); if (!str_copyn(channel.termname, sizeof channel.termname, name)) bug_nomem(); } } else { channel.pid = channel_fork(fd); } if (channel.pid == -1) return 0; if (channel.pid == 0) { logsys_login(channel.user, channel.remoteip, 0, 0); if (!channel_droppriv(channel.user, &shell)) _exit(111); if (cmd) { run[0] = shell; run[1] = (char *)"-c"; run[2] = (char *)cmd; run[3] = 0; } else { if (!loginshell(ln, sizeof ln, shell)) bug(); run[0] = ln; run[1] = 0; } signal(SIGPIPE, SIG_DFL); newenv_exec(shell, run); _exit(111); } channel.fd0 = fd[0]; channel.fd1 = fd[1]; channel.fd2 = fd[2]; channel.len0 = 0; newenv_purge(); if (channel.flagterminal && channel.pid > 0) channel_ptyresize(channel.a, channel.b, channel.x, channel.y); return 1; } /* The 'channel_put' function adds data from client to childs buffer. */ void channel_put(unsigned char *buf, long long len) { if (channel.maxpacket == 0) bug_proto(); if (channel.pid <= 0 ) bug_proto(); if (channel.fd0 == -1) bug_proto(); if (!buf || len < 0) bug_inval(); if (channel.len0 + len > CHANNEL_BUFSIZE) bug_nomem(); byte_copy(channel.buf0 + channel.len0, len, buf); channel.len0 += len; channel.localwindow -= len; } /* The 'channel_puteof' function adds information that remote side closed standard output. */ void channel_puteof(void) { if (channel.maxpacket == 0) bug_proto(); if (channel.pid == 0) bug_proto(); if (channel.fd0 == -1) bug_proto(); channel.remoteeof = 1; if (channel.len0 == 0) { close(channel.fd0); channel.fd0 = -1; } } /* The 'channel_putisready' function returns if child is ready accept data. */ int channel_putisready(void) { if (channel.maxpacket == 0) return 0; if (channel.pid <= 0) return 0; if (channel.fd0 == -1) return 0; return (CHANNEL_BUFSIZE > channel.len0); } /* The 'channel_read' function reads data from childs standard output. */ long long channel_read(unsigned char *buf, long long len) { long long r; if (channel.maxpacket == 0) bug_proto(); if (channel.pid <= 0 ) bug_proto(); if (channel.fd1 == -1) bug_proto(); if (!buf || len < 0) bug_inval(); if (channel.remotewindow <= 0) return 0; r = len; if (r > 1048576) r = 1048576; if (r > channel.remotewindow) r = channel.remotewindow; r = read(channel.fd1, buf, r); if (r == -1) { if (errno == EINTR) return 0; if (errno == EAGAIN) return 0; if (errno == EWOULDBLOCK) return 0; } if (r <= 0) { channel.fd1 = -1; return 0; } channel.remotewindow -= r; return r; } /* The 'channel_extendedread' function reads data from childs error output. */ long long channel_extendedread(unsigned char *buf, long long len) { long long r; if (channel.maxpacket == 0) bug_proto(); if (channel.pid <= 0 ) bug_proto(); if (channel.fd2 == -1) bug_proto(); if (!buf || len < 0) bug_inval(); if (channel.remotewindow <= 0) return 0; r = len; if (r > 1048576) r = 1048576; if (r > channel.remotewindow) r = channel.remotewindow; r = read(channel.fd2, buf, r); if (r == -1) { if (errno == EINTR) return 0; if (errno == EAGAIN) return 0; if (errno == EWOULDBLOCK) return 0; } if (r <= 0) { channel.fd2 = -1; return 0; } channel.remotewindow -= r; return r; } /* The 'channel_readisready' function returns if we can read data from childs standard output. */ int channel_readisready(void) { if (channel.maxpacket == 0 || channel.pid == 0) return 0; if (channel.fd1 == -1) return 0; return (channel.remotewindow > 0); } /* The 'channel_extendedreadisready' function returns if we can read data from childs error output. */ int channel_extendedreadisready(void) { if (channel.maxpacket == 0 || channel.pid == 0) return 0; if (channel.fd2 == -1) return 0; return (channel.remotewindow > 0); } /* The 'channel_write' function writes data to childs standard input. */ int channel_write(void) { long long w; if (channel.maxpacket == 0) bug_proto(); if (channel.pid <= 0 ) bug_proto(); if (channel.fd0 == -1) bug_proto(); if (channel.len0 <= 0) return 1; w = write(channel.fd0, channel.buf0, channel.len0); if (w == -1) { if (errno == EINTR) return 1; if (errno == EAGAIN) return 1; if (errno == EWOULDBLOCK) return 1; } if (w <= 0) { channel.fd0 = -1; return 0; } byte_copy(channel.buf0, channel.len0 - w, channel.buf0 + w); purge(channel.buf0 + channel.len0 - w, w); channel.len0 -= w; if (channel.remoteeof && channel.len0 == 0) { close(channel.fd0); channel.fd0 = -1; } return 1; } /* The 'channel_writeisready' function returns if we can write data to childs standard input. */ int channel_writeisready(void) { if (channel.maxpacket == 0) return 0; if (channel.pid <= 0 ) return 0; if (channel.fd0 == -1) return 0; return (channel.len0 > 0); } /* The 'channel_iseof' function returns if child closed standard and error output. */ int channel_iseof(void) { if (channel.maxpacket == 0) return 0; if (channel.pid == 0) return 0; if (channel.pid == -1) return 1; return (channel.fd1 == -1 && channel.fd2 == -1); } /* The 'channel_waitnohang' function returns if child exited or was killed. */ int channel_waitnohang(int *s, int *e) { int r, status; if (!s || !e) bug_inval(); if (channel.maxpacket == 0) bug_proto(); if (channel.pid <= 0 ) return 0; do { r = waitpid(channel.pid, &status, WNOHANG); } while (r == -1 && errno == EINTR); if (r <= 0) return 0; if (channel.flagterminal) logsys_logout(channel.user, channel.remoteip, channel.termname, channel.pid); if (WIFEXITED(status)) { *e = WEXITSTATUS(status); *s = 0; } else if (WIFSIGNALED(status)) { *e = 0; *s = WTERMSIG(status); } else { *e = *s = -1; } channel.pid = -1; return 1; } /* Remove sentitive data from allocated memory. */ void channel_purge(void) { purge(&channel, sizeof channel); trymunlock(&channel, sizeof channel); } /* Initialize channel structure. */ void channel_init(void) { trymlock(&channel, sizeof channel); purge(&channel, sizeof channel); channel.maxpacket = 0; channel.remoteeof = 0; channel.len0 = 0; channel.pid = 0; channel.flagterminal = 0; channel.master = -1; channel.slave = -1; } int channel_getfd0(void) { return channel.fd0; } int channel_getfd1(void) { return channel.fd1; } int channel_getfd2(void) { return channel.fd2; } long long channel_getlen0(void) { return channel.len0; } crypto_uint32 channel_getid(void) { return channel.id; } crypto_uint32 channel_getlocalwindow(void) { return channel.localwindow; } void channel_incrementremotewindow(crypto_uint32 x) { channel.remotewindow += x; } void channel_incrementlocalwindow(crypto_uint32 x) { channel.localwindow += x; } tinyssh-20180201/tinyssh/channel.h000066400000000000000000000051561322704306500167450ustar00rootroot00000000000000#ifndef _CHANNEL_H____ #define _CHANNEL_H____ #include "crypto_uint32.h" #include "iptostr.h" #include "porttostr.h" #include "limit.h" #define CHANNEL_BUFSIZE 131072 struct channel { /* channel */ crypto_uint32 maxpacket; crypto_uint32 id; crypto_uint32 localwindow; crypto_uint32 remotewindow; /* child */ unsigned char buf0[CHANNEL_BUFSIZE]; long long len0; long long pid; int fd0; int fd1; int fd2; int status; /* ip */ char localip[IPTOSTR_LEN]; char localport[PORTTOSTR_LEN]; char remoteip[IPTOSTR_LEN]; char remoteport[PORTTOSTR_LEN]; /* terminal */ char user[LOGIN_NAME_MAX + 1]; char termname[TTY_NAME_MAX + 1]; int flagterminal; int master; int slave; int a; int b; int x; int y; /* channel */ int remoteeof; }; extern struct channel channel; /* channel_drop.c */ extern int channel_droppriv(char *, char **); /* channel_fork.c */ extern long long channel_fork(int *); /* channel_forkpty.c */ extern long long channel_forkpty(int *, int, int); extern int channel_openpty(int *, int *); /* channel.c */ extern void channel_purge(void); extern int channel_open(const char *, crypto_uint32, crypto_uint32, crypto_uint32, crypto_uint32 *); extern int channel_openterminal(const char *, crypto_uint32, crypto_uint32, crypto_uint32, crypto_uint32); extern void channel_ptyresize(crypto_uint32, crypto_uint32, crypto_uint32, crypto_uint32); extern int channel_env(const char *, const char *); extern int channel_exec(const char *); extern void channel_put(unsigned char *, long long); extern void channel_puteof(void); extern int channel_putisready(void); extern long long channel_read(unsigned char *, long long); extern long long channel_extendedread(unsigned char *, long long); extern int channel_readisready(void); extern int channel_extendedreadisready(void); extern int channel_write(void); extern int channel_writeisready(void); extern int channel_iseof(void); extern int channel_waitnohang(int *, int *); extern void channel_purge(void); extern void channel_init(void); extern int channel_getfd0(void); extern int channel_getfd1(void); extern int channel_getfd2(void); extern long long channel_getlen0(void); extern crypto_uint32 channel_getid(void); extern crypto_uint32 channel_getlocalwindow(void); extern void channel_incrementremotewindow(crypto_uint32); extern void channel_incrementlocalwindow(crypto_uint32); /* channel subsystem.c */ #define CHANNEL_SUBSYSTEM_MAX 64 extern int channel_subsystem_add(const char *); extern char *channel_subsystem_get(const char *); extern void channel_subsystem_log(void); #endif tinyssh-20180201/tinyssh/channel_drop.c000066400000000000000000000020001322704306500177450ustar00rootroot00000000000000/* 20140129 Jan Mojzis Public domain. */ #include #include #include #include "dropuidgid.h" #include "newenv.h" #include "channel.h" int channel_droppriv(char *user, char **shell) { struct passwd *pw; char *name; pw = getpwnam(user); if (!pw) return 0; if (isatty(0)) { name = ttyname(0); if (!name) return 0; if (!newenv_env("SSH_TTY", name)) return 0; /* setowner */ if (chown(name, pw->pw_uid, pw->pw_gid) == -1) return 0; if (chmod(name, 0600) == -1) return 0; } /* drop privileges */ if (!dropuidgid(pw->pw_name, pw->pw_uid, pw->pw_gid)) return 0; if (chdir(pw->pw_dir) == -1) return 0; if (!newenv_env("HOME", pw->pw_dir)) return 0; if (!newenv_env("USER", pw->pw_name)) return 0; if (!newenv_env("LOGNAME", pw->pw_name)) return 0; if (!newenv_env("LOGIN", pw->pw_name)) return 0; if (!newenv_env("SHELL", pw->pw_shell)) return 0; *shell = pw->pw_shell; return 1; } tinyssh-20180201/tinyssh/channel_fork.c000066400000000000000000000021351322704306500177530ustar00rootroot00000000000000/* 20140129 Jan Mojzis Public domain. */ #include #include "blocking.h" #include "open.h" #include "channel.h" /* The 'channel_fork' function is used to create a new process. Function creates 3 pipes from/to child: fd[0] is pipe to childs standard input fd[1] is pipe from childs standard output fd[2] is pipe from childs error output Function returns also childs PID. */ long long channel_fork(int fd[3]) { int pi[2], pa[3], ch[3]; long long i, pid; for (i = 0; i < 3; ++i) pa[i] = ch[i] = fd[i] = -1; for (i = 0; i < 3; ++i) { if (open_pipe(pi) == -1) goto cleanup; pa[i] = pi[i ? 0 : 1]; ch[i] = pi[i ? 1 : 0]; } pid = fork(); if (pid == -1) goto cleanup; if (pid == 0) { for (i = 0; i < 3; ++i) { close(pa[i]); close(i); blocking_enable(ch[i]); if (dup(ch[i]) != i) _exit(111); } return 0; } for (i = 0; i < 3; ++i) { close(ch[i]); fd[i] = pa[i]; } return pid; cleanup: for (i = 0; i < 3; ++i) { close(pa[i]); close(ch[i]); } return -1; } tinyssh-20180201/tinyssh/channel_forkpty.c000066400000000000000000000062261322704306500205150ustar00rootroot00000000000000/* 20150212 Jan Mojzis Public domain. */ #include #if defined(sun) || defined(__hpux) #include #endif #include #include #include #include #include extern char *ptsname(int); extern int grantpt(int); extern int unlockpt(int); #include "hasopenpty.h" #ifdef HASOPENPTY extern int openpty(int *, int *, char *, struct termios *, struct winsize *); #endif #include "haslogintty.h" #ifdef HASLOGINTTY extern int login_tty(int); #endif #include "coe.h" #include "blocking.h" #include "global.h" #include "channel.h" static int _login_tty(int fd) { char *name; setsid(); #ifdef TIOCSCTTY if (ioctl(fd, TIOCSCTTY, (char *)0) == -1) return -1; #endif name = ttyname(fd); if (!name) return -1; #ifndef TIOCSCTTY if (fd != 0) close(0); if (fd != 1) close(1); if (fd != 2) close(2); close(open(name, O_RDWR)); #endif if (dup2(fd, 0) == -1) return -1; if (dup2(fd, 1) == -1) return -1; if (dup2(fd, 2) == -1) return -1; if (fd > 2) close(fd); return 0; } static int _openpty(int *amaster, int *aslave) { int master = -1, slave = -1; char *slave_name; static const char *fn[] = { "/dev/ptmx", "/dev/ptc", 0 }; long long i; for (i = 0; fn[i]; ++i) { master = open(fn[i], O_RDWR | O_NOCTTY); if (master != -1) break; } if (master == -1) return -1; if (grantpt(master) == -1) { close(master); return -1; } if (unlockpt(master) == -1) { close(master); return -1; } slave_name = ptsname(master); if (!slave_name) { close(master); return -1; } slave = open(slave_name, O_RDWR | O_NOCTTY); if (slave == -1) { close(master); return -1; } #if defined(sun) || defined(__hpux) ioctl(slave, I_PUSH, "ptem"); ioctl(slave, I_PUSH, "ldterm"); #endif #if defined(sun) ioctl(slave, I_PUSH, "ttcompat"); #endif if (amaster) *amaster = master; if (aslave) *aslave = slave; return 0; } int channel_openpty(int *amaster, int *aslave) { #ifdef HASOPENPTY if (openpty(amaster, aslave, 0, 0, 0) == -1) return 0; #else if (_openpty(amaster, aslave) == -1) return 0; #endif if (!ttyname(*aslave)) { close(*amaster); close(*aslave); return 0; } return 1; } /* The 'channel_forkpty' function is used to create a new process operating in a pseudoterminal. Function sets 3 integers in 'fd[3]': fd[0] and fd[1] is pseudoterminal fd fd[2] is always -1 */ long long channel_forkpty(int fd[3], int master, int slave) { long long pid; if (!ttyname(slave)) return -1; fd[0] = fd[1] = master; fd[2] = -1; pid = fork(); switch (pid) { case -1: close(slave); close(master); return -1; case 0: close(master); #ifdef HASLOGINTTY if (!ttyname(slave)) global_die(111); if (login_tty(slave) == -1) global_die(111); #else if (_login_tty(slave) == -1) global_die(111); #endif return 0; default: coe_enable(master); blocking_disable(master); close(slave); return pid; } } tinyssh-20180201/tinyssh/channel_subsystem.c000066400000000000000000000017421322704306500210530ustar00rootroot00000000000000/* 20150114 Jan Mojzis Public domain. */ #include "str.h" #include "log.h" #include "e.h" #include "channel.h" static long long channel_subsystem_pos = 0; static char *channel_subsystem[CHANNEL_SUBSYSTEM_MAX] = {0}; int channel_subsystem_add(const char *x) { if (channel_subsystem_pos >= CHANNEL_SUBSYSTEM_MAX) return 0; channel_subsystem[channel_subsystem_pos++] = (char *)x; return 1; } char *channel_subsystem_get(const char *x) { long long len, i; if (!x) return 0; len = str_len(x); for (i = 0; i < CHANNEL_SUBSYSTEM_MAX; ++i) { if (!channel_subsystem[i]) break; if (str_start(channel_subsystem[i], x) && (channel_subsystem[i][len] == '=')) return channel_subsystem[i] + len + 1; } return 0; } void channel_subsystem_log(void) { long long i; for (i = 0; i < CHANNEL_SUBSYSTEM_MAX; ++i) { if (!channel_subsystem[i]) break; log_d3("subsystem: ", channel_subsystem[i], " registered"); } } tinyssh-20180201/tinyssh/coe.c000066400000000000000000000005751322704306500160760ustar00rootroot00000000000000/* 20140414 Jan Mojzis Public domain. */ #include #include "coe.h" /* The 'coe_enable(fd)' function enables the close-on-exec flag on a file-descriptor 'fd'. */ void coe_enable(int fd) { fcntl(fd, F_SETFD, 1); } /* The 'coe_disable(fd)' function disables the close-on-exec flag on a file-descriptor 'fd'. */ void coe_disable(int fd) { fcntl(fd, F_SETFD, 0); } tinyssh-20180201/tinyssh/coe.h000066400000000000000000000001521322704306500160720ustar00rootroot00000000000000#ifndef _COE_H____ #define _COE_H____ extern void coe_enable(int); extern void coe_disable(int); #endif tinyssh-20180201/tinyssh/connectioninfo.c000066400000000000000000000070371322704306500203430ustar00rootroot00000000000000/* 20140131 Jan Mojzis Public domain. */ #include #include #include #include #include #include "e.h" #include "byte.h" #include "iptostr.h" #include "porttostr.h" #include "env.h" #include "str.h" #include "connectioninfo.h" /* The connectioninfo_fromfd function gets informations about TCP connection from getsockname(), getpeername() libc functions. */ static int connectioninfo_fromfd(char *localip, char *localport, char *remoteip, char *remoteport) { long long i; struct sockaddr_storage sa; socklen_t salen; int fd = 0; unsigned char ip[16]; unsigned char port[2]; char *ipstr[2]; char *portstr[2]; int (*op[2])(int, struct sockaddr *, socklen_t *) = { getsockname, getpeername }; ipstr[0] = localip; portstr[0] = localport; ipstr[1] = remoteip; portstr[1] = remoteport; for (i = 0; i < 2; ++i) { salen = sizeof sa; if (op[i](fd, (struct sockaddr *)&sa, &salen) == -1) return 0; if (sa.ss_family == PF_INET) { struct sockaddr_in *sin = (struct sockaddr_in *)&sa; byte_copy(ip, 12, "\0\0\0\0\0\0\0\0\0\0\377\377"); byte_copy(ip + 12, 4, &sin->sin_addr); byte_copy(port, 2, &sin->sin_port); } #ifdef PF_INET6 else if (sa.ss_family == PF_INET6) { struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&sa; byte_copy(ip, 16, &sin6->sin6_addr); byte_copy(port, 2, &sin6->sin6_port); } #endif else { errno = EPROTONOSUPPORT; return 0; } iptostr(ipstr[i], ip); porttostr(portstr[i], port); } return 1; } static int env(char *y, long long ylen, const char *e) { char *x; x = env_get(e); if (!x) return 0; if (!str_copyn(y, ylen, x)) return 0; return 1; } /* The connectioninfo_fromtcpserverenv function gets informations about TCP connection from environment. */ static int connectioninfo_fromtcpserverenv(char *localip, char *localport, char *remoteip, char *remoteport) { if (!env(localip, IPTOSTR_LEN, "TCPLOCALIP")) return 0; if (!env(localport, PORTTOSTR_LEN, "TCPLOCALPORT")) return 0; if (!env(remoteip, IPTOSTR_LEN, "TCPREMOTEIP")) return 0; if (!env(remoteport, PORTTOSTR_LEN, "TCPREMOTEPORT")) return 0; return 1; } /* The connectioninfo_fromcurvecpserverenv function gets informations about CurveCP connection from environment. */ static int connectioninfo_fromcurvecpserverenv(char *localip, char *localport, char *remoteip, char *remoteport) { if (!env(localip, IPTOSTR_LEN, "CURVECPLOCALIP")) return 0; if (!env(localport, PORTTOSTR_LEN, "CURVECPLOCALPORT")) return 0; if (!env(remoteip, IPTOSTR_LEN, "CURVECPREMOTEIP")) return 0; if (!env(remoteport, PORTTOSTR_LEN, "CURVECPREMOTEPORT")) return 0; return 1; } #define unknown "unknown" #define port0 "0" /* The connectioninfo function gets informations about TCP/CurveCP connection. */ void connectioninfo(char *localip, char *localport, char *remoteip, char *remoteport) { if (connectioninfo_fromtcpserverenv(localip, localport, remoteip, remoteport)) return; if (connectioninfo_fromcurvecpserverenv(localip, localport, remoteip, remoteport)) return; if (connectioninfo_fromfd(localip, localport, remoteip, remoteport)) return; byte_copy(localip, sizeof unknown, unknown); byte_copy(remoteip, sizeof unknown, unknown); byte_copy(localport, sizeof port0, port0); byte_copy(remoteport, sizeof port0, port0); return; } tinyssh-20180201/tinyssh/connectioninfo.h000066400000000000000000000002011322704306500203320ustar00rootroot00000000000000#ifndef _CONNECTIONINFO_H____ #define _CONNECTIONINFO_H____ extern void connectioninfo(char *, char *, char *, char *); #endif tinyssh-20180201/tinyssh/die.c000066400000000000000000000007761322704306500160740ustar00rootroot00000000000000#include "global.h" #include "log.h" #include "die.h" void die_usage(const char *x) { log_u1(x); global_die(100); } void die_fatal_(const char *fn, unsigned long long line, const char *trouble, const char *d, const char *f) { if (d) { if (f) log_9_(1, 0, fn, line, trouble, " ", d, "/", f, 0, 0, 0, 0); else log_9_(1, 0, fn, line, trouble, " ", d, 0, 0, 0, 0, 0, 0); } else { log_9_(1, 0, fn, line, trouble, 0, 0, 0, 0, 0, 0, 0, 0); } global_die(111); } tinyssh-20180201/tinyssh/die.h000066400000000000000000000004021322704306500160630ustar00rootroot00000000000000#ifndef _DIE_H____ #define _DIE_H____ extern void die_usage(const char *); extern void die_fatal_(const char *, unsigned long long, const char *, const char *, const char *); #define die_fatal(a, b, c) die_fatal_(__FILE__, __LINE__, (a), (b), (c)) #endif tinyssh-20180201/tinyssh/dropuidgid.c000066400000000000000000000015241322704306500174550ustar00rootroot00000000000000/* 20140420 Jan Mojzis Public domain. */ #include #include #include #include "e.h" #include "dropuidgid.h" /* The 'dropuidgid' function is used to drop root privileges. If the process has appropriate permittions, the 'dropuidgid' function sets user ID and group ID of calling process to uid and gid. The 'dropuidgid' function also initialize supplementary group IDs. */ int dropuidgid(const char *name, uid_t uid, gid_t gid) { /* we can change group only as the root */ if (geteuid() == 0) { if (setgid(gid) == -1) return 0; if (getgid() != gid) { errno = EPERM; return 0; } if (name) if (initgroups(name, gid) == -1) return 0; } if (geteuid() != uid) { if (setuid(uid) == -1) return 0; if (getuid() != uid) { errno = EPERM; return 0; } } return 1; } tinyssh-20180201/tinyssh/dropuidgid.h000066400000000000000000000002071322704306500174570ustar00rootroot00000000000000#ifndef _DROPUIDGID_H____ #define _DROPUIDGID_H____ #include extern int dropuidgid(const char *, uid_t, gid_t); #endif tinyssh-20180201/tinyssh/e.c000066400000000000000000000070301322704306500155450ustar00rootroot00000000000000/* taken from nacl-20110221, from curvecp/e.c */ #include "e.h" #define X(e,s) if (i == e) return s; const char *e_str(int i) { X(0,"no error"); X(EINTR,"interrupted system call") X(ENOMEM,"out of memory") X(ENOENT,"file does not exist") X(ETXTBSY,"text busy") X(EIO,"input/output error") X(EEXIST,"file already exists") X(ETIMEDOUT,"timed out") X(EINPROGRESS,"operation in progress") X(EAGAIN,"temporary failure") X(EWOULDBLOCK,"input/output would block") X(EPIPE,"broken pipe") X(EPERM,"permission denied") X(EACCES,"access denied") X(ENODEV,"device not configured") X(EPROTO,"protocol error") X(EISDIR,"is a directory") X(ESRCH,"no such process") X(E2BIG,"argument list too long") X(ENOEXEC,"exec format error") X(EBADF,"file descriptor not open") X(ECHILD,"no child processes") X(EDEADLK,"operation would cause deadlock") X(EFAULT,"bad address") X(ENOTBLK,"not a block device") X(EBUSY,"device busy") X(EXDEV,"cross-device link") X(ENODEV,"device does not support operation") X(ENOTDIR,"not a directory") X(EINVAL,"invalid argument") X(ENFILE,"system cannot open more files") X(EMFILE,"process cannot open more files") X(ENOTTY,"not a tty") X(EFBIG,"file too big") X(ENOSPC,"out of disk space") X(ESPIPE,"unseekable descriptor") X(EROFS,"read-only file system") X(EMLINK,"too many links") X(EDOM,"input out of range") X(ERANGE,"output out of range") X(EALREADY,"operation already in progress") X(ENOTSOCK,"not a socket") X(EDESTADDRREQ,"destination address required") X(EMSGSIZE,"message too long") X(EPROTOTYPE,"incorrect protocol type") X(ENOPROTOOPT,"protocol not available") X(EPROTONOSUPPORT,"protocol not supported") X(ESOCKTNOSUPPORT,"socket type not supported") X(EOPNOTSUPP,"operation not supported") X(EPFNOSUPPORT,"protocol family not supported") X(EAFNOSUPPORT,"address family not supported") X(EADDRINUSE,"address already used") X(EADDRNOTAVAIL,"address not available") X(ENETDOWN,"network down") X(ENETUNREACH,"network unreachable") X(ENETRESET,"network reset") X(ECONNABORTED,"connection aborted") X(ECONNRESET,"connection reset") X(ENOBUFS,"out of buffer space") X(EISCONN,"already connected") X(ENOTCONN,"not connected") X(ESHUTDOWN,"socket shut down") X(ETOOMANYREFS,"too many references") X(ECONNREFUSED,"connection refused") X(ELOOP,"symbolic link loop") X(ENAMETOOLONG,"file name too long") X(EHOSTDOWN,"host down") X(EHOSTUNREACH,"host unreachable") X(ENOTEMPTY,"directory not empty") X(EPROCLIM,"too many processes") X(EUSERS,"too many users") X(EDQUOT,"disk quota exceeded") X(ESTALE,"stale NFS file handle") X(EREMOTE,"too many levels of remote in path") X(EBADRPC,"RPC structure is bad") X(ERPCMISMATCH,"RPC version mismatch") X(EPROGUNAVAIL,"RPC program unavailable") X(EPROGMISMATCH,"program version mismatch") X(EPROCUNAVAIL,"bad procedure for program") X(ENOLCK,"no locks available") X(ENOSYS,"system call not available") X(EFTYPE,"bad file type") X(EAUTH,"authentication error") X(ENEEDAUTH,"not authenticated") X(ENOSTR,"not a stream device") X(ETIME,"timer expired") X(ENOSR,"out of stream resources") X(ENOMSG,"no message of desired type") X(EBADMSG,"bad message type") X(EIDRM,"identifier removed") X(ENONET,"machine not on network") X(EREMOTE,"object not local") X(ENOLINK,"link severed") X(EADV,"advertise error") X(ESRMNT,"srmount error") X(ECOMM,"communication error") X(EMULTIHOP,"multihop attempted") X(EREMCHG,"remote address changed") return "unknown error"; } tinyssh-20180201/tinyssh/e.h000066400000000000000000000155061322704306500155610ustar00rootroot00000000000000#ifndef E_H #define E_H #include extern const char *e_str(int); #ifndef EPERM #define EPERM (-5001) #endif #ifndef ENOENT #define ENOENT (-5002) #endif #ifndef ESRCH #define ESRCH (-5003) #endif #ifndef EINTR #define EINTR (-5004) #endif #ifndef EIO #define EIO (-5005) #endif #ifndef ENXIO #define ENXIO (-5006) #endif #ifndef E2BIG #define E2BIG (-5007) #endif #ifndef ENOEXEC #define ENOEXEC (-5008) #endif #ifndef EBADF #define EBADF (-5009) #endif #ifndef ECHILD #define ECHILD (-5010) #endif #ifndef EAGAIN #define EAGAIN (-5011) #endif #ifndef EWOULDBLOCK #define EWOULDBLOCK (-7011) #endif #ifndef ENOMEM #define ENOMEM (-5012) #endif #ifndef EACCES #define EACCES (-5013) #endif #ifndef EFAULT #define EFAULT (-5014) #endif #ifndef ENOTBLK #define ENOTBLK (-5015) #endif #ifndef EBUSY #define EBUSY (-5016) #endif #ifndef EEXIST #define EEXIST (-5017) #endif #ifndef EXDEV #define EXDEV (-5018) #endif #ifndef ENODEV #define ENODEV (-5019) #endif #ifndef ENOTDIR #define ENOTDIR (-5020) #endif #ifndef EISDIR #define EISDIR (-5021) #endif #ifndef EINVAL #define EINVAL (-5022) #endif #ifndef ENFILE #define ENFILE (-5023) #endif #ifndef EMFILE #define EMFILE (-5024) #endif #ifndef ENOTTY #define ENOTTY (-5025) #endif #ifndef ETXTBSY #define ETXTBSY (-5026) #endif #ifndef EFBIG #define EFBIG (-5027) #endif #ifndef ENOSPC #define ENOSPC (-5028) #endif #ifndef ESPIPE #define ESPIPE (-5029) #endif #ifndef EROFS #define EROFS (-5030) #endif #ifndef EMLINK #define EMLINK (-5031) #endif #ifndef EPIPE #define EPIPE (-5032) #endif #ifndef EDOM #define EDOM (-5033) #endif #ifndef ERANGE #define ERANGE (-5034) #endif #ifndef EDEADLK #define EDEADLK (-5035) #endif #ifndef EDEADLOCK #define EDEADLOCK (-7035) #endif #ifndef ENAMETOOLONG #define ENAMETOOLONG (-5036) #endif #ifndef ENOLCK #define ENOLCK (-5037) #endif #ifndef ENOSYS #define ENOSYS (-5038) #endif #ifndef ENOTEMPTY #define ENOTEMPTY (-5039) #endif #ifndef ELOOP #define ELOOP (-5040) #endif #ifndef ENOMSG #define ENOMSG (-5042) #endif #ifndef EIDRM #define EIDRM (-5043) #endif #ifndef ECHRNG #define ECHRNG (-5044) #endif #ifndef EL2NSYNC #define EL2NSYNC (-5045) #endif #ifndef EL3HLT #define EL3HLT (-5046) #endif #ifndef EL3RST #define EL3RST (-5047) #endif #ifndef ELNRNG #define ELNRNG (-5048) #endif #ifndef EUNATCH #define EUNATCH (-5049) #endif #ifndef ENOCSI #define ENOCSI (-5050) #endif #ifndef EL2HLT #define EL2HLT (-5051) #endif #ifndef EBADE #define EBADE (-5052) #endif #ifndef EBADR #define EBADR (-5053) #endif #ifndef EXFULL #define EXFULL (-5054) #endif #ifndef ENOANO #define ENOANO (-5055) #endif #ifndef EBADRQC #define EBADRQC (-5056) #endif #ifndef EBADSLT #define EBADSLT (-5057) #endif #ifndef EBFONT #define EBFONT (-5059) #endif #ifndef ENOSTR #define ENOSTR (-5060) #endif #ifndef ENODATA #define ENODATA (-5061) #endif #ifndef ETIME #define ETIME (-5062) #endif #ifndef ENOSR #define ENOSR (-5063) #endif #ifndef ENONET #define ENONET (-5064) #endif #ifndef ENOPKG #define ENOPKG (-5065) #endif #ifndef EREMOTE #define EREMOTE (-5066) #endif #ifndef ENOLINK #define ENOLINK (-5067) #endif #ifndef EADV #define EADV (-5068) #endif #ifndef ESRMNT #define ESRMNT (-5069) #endif #ifndef ECOMM #define ECOMM (-5070) #endif #ifndef EPROTO #define EPROTO (-5071) #endif #ifndef EMULTIHOP #define EMULTIHOP (-5072) #endif #ifndef EDOTDOT #define EDOTDOT (-5073) #endif #ifndef EBADMSG #define EBADMSG (-5074) #endif #ifndef EOVERFLOW #define EOVERFLOW (-5075) #endif #ifndef ENOTUNIQ #define ENOTUNIQ (-5076) #endif #ifndef EBADFD #define EBADFD (-5077) #endif #ifndef EREMCHG #define EREMCHG (-5078) #endif #ifndef ELIBACC #define ELIBACC (-5079) #endif #ifndef ELIBBAD #define ELIBBAD (-5080) #endif #ifndef ELIBSCN #define ELIBSCN (-5081) #endif #ifndef ELIBMAX #define ELIBMAX (-5082) #endif #ifndef ELIBEXEC #define ELIBEXEC (-5083) #endif #ifndef EILSEQ #define EILSEQ (-5084) #endif #ifndef ERESTART #define ERESTART (-5085) #endif #ifndef ESTRPIPE #define ESTRPIPE (-5086) #endif #ifndef EUSERS #define EUSERS (-5087) #endif #ifndef ENOTSOCK #define ENOTSOCK (-5088) #endif #ifndef EDESTADDRREQ #define EDESTADDRREQ (-5089) #endif #ifndef EMSGSIZE #define EMSGSIZE (-5090) #endif #ifndef EPROTOTYPE #define EPROTOTYPE (-5091) #endif #ifndef ENOPROTOOPT #define ENOPROTOOPT (-5092) #endif #ifndef EPROTONOSUPPORT #define EPROTONOSUPPORT (-5093) #endif #ifndef ESOCKTNOSUPPORT #define ESOCKTNOSUPPORT (-5094) #endif #ifndef EOPNOTSUPP #define EOPNOTSUPP (-5095) #endif #ifndef EPFNOSUPPORT #define EPFNOSUPPORT (-5096) #endif #ifndef EAFNOSUPPORT #define EAFNOSUPPORT (-5097) #endif #ifndef EADDRINUSE #define EADDRINUSE (-5098) #endif #ifndef EADDRNOTAVAIL #define EADDRNOTAVAIL (-5099) #endif #ifndef ENETDOWN #define ENETDOWN (-5100) #endif #ifndef ENETUNREACH #define ENETUNREACH (-5101) #endif #ifndef ENETRESET #define ENETRESET (-5102) #endif #ifndef ECONNABORTED #define ECONNABORTED (-5103) #endif #ifndef ECONNRESET #define ECONNRESET (-5104) #endif #ifndef ENOBUFS #define ENOBUFS (-5105) #endif #ifndef EISCONN #define EISCONN (-5106) #endif #ifndef ENOTCONN #define ENOTCONN (-5107) #endif #ifndef ESHUTDOWN #define ESHUTDOWN (-5108) #endif #ifndef ETOOMANYREFS #define ETOOMANYREFS (-5109) #endif #ifndef ETIMEDOUT #define ETIMEDOUT (-5110) #endif #ifndef ECONNREFUSED #define ECONNREFUSED (-5111) #endif #ifndef EHOSTDOWN #define EHOSTDOWN (-5112) #endif #ifndef EHOSTUNREACH #define EHOSTUNREACH (-5113) #endif #ifndef EALREADY #define EALREADY (-5114) #endif #ifndef EINPROGRESS #define EINPROGRESS (-5115) #endif #ifndef ESTALE #define ESTALE (-5116) #endif #ifndef EUCLEAN #define EUCLEAN (-5117) #endif #ifndef ENOTNAM #define ENOTNAM (-5118) #endif #ifndef ENAVAIL #define ENAVAIL (-5119) #endif #ifndef EISNAM #define EISNAM (-5120) #endif #ifndef EREMOTEIO #define EREMOTEIO (-5121) #endif #ifndef EDQUOT #define EDQUOT (-5122) #endif #ifndef ENOMEDIUM #define ENOMEDIUM (-5123) #endif #ifndef EMEDIUMTYPE #define EMEDIUMTYPE (-5124) #endif #ifndef ECANCELED #define ECANCELED (-5125) #endif #ifndef ENOKEY #define ENOKEY (-5126) #endif #ifndef EKEYEXPIRED #define EKEYEXPIRED (-5127) #endif #ifndef EKEYREVOKED #define EKEYREVOKED (-5128) #endif #ifndef EKEYREJECTED #define EKEYREJECTED (-5129) #endif #ifndef EOWNERDEAD #define EOWNERDEAD (-5130) #endif #ifndef ENOTRECOVERABLE #define ENOTRECOVERABLE (-5131) #endif #ifndef ERFKILL #define ERFKILL (-5132) #endif #ifndef EPROCLIM #define EPROCLIM (-6067) #endif #ifndef EBADRPC #define EBADRPC (-6072) #endif #ifndef ERPCMISMATCH #define ERPCMISMATCH (-6073) #endif #ifndef EPROGUNAVAIL #define EPROGUNAVAIL (-6074) #endif #ifndef EPROGMISMATCH #define EPROGMISMATCH (-6075) #endif #ifndef EPROCUNAVAIL #define EPROCUNAVAIL (-6076) #endif #ifndef EFTYPE #define EFTYPE (-6079) #endif #ifndef EAUTH #define EAUTH (-6080) #endif #ifndef ENEEDAUTH #define ENEEDAUTH (-6081) #endif #ifndef ENOATTR #define ENOATTR (-6087) #endif #ifndef ENOTCAPABLE #define ENOTCAPABLE (-6093) #endif #endif tinyssh-20180201/tinyssh/env.c000066400000000000000000000006761322704306500161220ustar00rootroot00000000000000#include "str.h" #include "env.h" /* The 'env_get(name)' function returns the value of the first environment variable whose name is 'name', or 0 if there is no such variable. */ char *env_get(const char *name) { long long len, i; if (!name) return 0; len = str_len(name); for (i = 0; environ[i]; ++i) if (str_start(environ[i], name) && (environ[i][len] == '=')) return environ[i] + len + 1; return 0; } tinyssh-20180201/tinyssh/env.h000066400000000000000000000004201322704306500161120ustar00rootroot00000000000000#ifndef _ENV_H____ #define _ENV_H____ /* The environment 'environ', is a 0-terminated array of 0-terminated strings, called environment variables. Each environment variable is of the form name=value. */ extern char **environ; extern char *env_get(const char *); #endif tinyssh-20180201/tinyssh/getln.c000066400000000000000000000022101322704306500164250ustar00rootroot00000000000000/* 20140323 Jan Mojzis Public domain. */ #include #include #include "e.h" #include "getln.h" static int getch(int fd, char *x) { int r; struct pollfd p; for (;;) { r = read(fd, x, 1); if (r == -1) { if (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK) { p.fd = fd; p.events = POLLIN | POLLERR; poll(&p, 1, -1); continue; } } break; } return r; } /* The function 'getln' reads line from filedescriptor 'fd' into buffer 'xv' of length 'xmax'. */ int getln(int fd, void *xv, long long xmax) { long long xlen; int r; char ch; char *x = (char *)xv; if (xmax < 1) { errno = EINVAL; return -1; } x[0] = 0; if (fd < 0) { errno = EBADF; return -1; } xlen = 0; for (;;) { if (xlen >= xmax - 1) { x[xmax - 1] = 0; errno = ENOMEM; return -1; } r = getch(fd, &ch); if (r != 1) { close(fd); fd = -1; break; } if (ch == 0) ch = '\n'; x[xlen++] = ch; if (ch == '\n') break; } x[xlen] = 0; return r; } tinyssh-20180201/tinyssh/getln.h000066400000000000000000000001351322704306500164360ustar00rootroot00000000000000#ifndef _GETLN_H____ #define _GETLN_H____ extern int getln(int, void *, long long); #endif tinyssh-20180201/tinyssh/global.c000066400000000000000000000025371322704306500165700ustar00rootroot00000000000000/* 20140214 Jan Mojzis Public domain. The 'global' library is used for global memory initializition and global memory cleanup. The 'global' library also has space for 2 versatile buffers. */ #include #include "newenv.h" #include "channel.h" #include "packet.h" #include "sshcrypto.h" #include "purge.h" #include "trymlock.h" #include "global.h" unsigned char global_bspace1[GLOBAL_BSIZE]; unsigned char global_bspace2[GLOBAL_BSIZE]; /* Initialize memory space. */ void global_init(void) { packet_init(); channel_init(); newenv_init(); sshcrypto_init(); trymlock(global_bspace1, sizeof global_bspace1); trymlock(global_bspace2, sizeof global_bspace2); purge(global_bspace1, sizeof global_bspace1); purge(global_bspace2, sizeof global_bspace2); } /* Remove sentitive data from allocated memory. */ void global_purge(void) { unsigned char stack[4096]; purge(stack, sizeof stack); packet_purge(); channel_purge(); newenv_purge(); sshcrypto_purge(); purge(global_bspace1, sizeof global_bspace1); purge(global_bspace2, sizeof global_bspace2); trymunlock(global_bspace1, sizeof global_bspace1); trymunlock(global_bspace2, sizeof global_bspace2); } /* Remove sentitive data from allocated memory and exit with status 'x'. */ void global_die(int x) { global_purge(); _exit(x); } tinyssh-20180201/tinyssh/global.h000066400000000000000000000004231322704306500165650ustar00rootroot00000000000000#ifndef _GLOBAL_H____ #define _GLOBAL_H____ #define GLOBAL_BSIZE 65536 extern unsigned char global_bspace1[GLOBAL_BSIZE]; extern unsigned char global_bspace2[GLOBAL_BSIZE]; extern void global_init(void); extern void global_purge(void); extern void global_die(int); #endif tinyssh-20180201/tinyssh/iptostr.c000066400000000000000000000055731322704306500170370ustar00rootroot00000000000000/* 20130604 Jan Mojzis Public domain. */ #include "byte.h" #include "iptostr.h" static char *iptostr4(char *, const unsigned char *); static char *iptostr6(char *, const unsigned char *); /* The 'iptostr(strbuf,ip)' function converts IP address 'ip' from network byte order into the 0-terminated string. The 'ip' length is always 16 bytes. The caller must allocate at least IPTOSTR_LEN bytes for 'strbuf'. */ char *iptostr(char *strbuf, const unsigned char *ip) { static char staticbuf[IPTOSTR_LEN]; if (!strbuf) strbuf = staticbuf; /* not thread-safe */ if (byte_isequal("\0\0\0\0\0\0\0\0\0\0\377\377", 12, ip)) { return iptostr4(strbuf, ip + 12); } return iptostr6(strbuf, ip); } /* convert IPv4 address */ static char *iptostr4(char *strbuf, const unsigned char *ip) { long long i, len = 0; unsigned long long num; for (i = 3; i >= 0; --i) { num = ip[i]; do { num /= 10; ++len; } while (num); if (i > 0) ++len; } strbuf += len; for (i = 3; i >= 0; --i) { num = ip[i]; do { *--strbuf = '0' + (num % 10); num /= 10; } while (num); if (i > 0) *--strbuf = '.'; } while (len < IPTOSTR_LEN) strbuf[len++] = 0; return strbuf; } /* The 'ip' is splited into 8 16-bit blocks and the 'countz' function counts successive zeros and searches for largest zero-block. 'first' ... first position of the zero-block 'last' ... last position of the zero-block */ static void countz(long long *first, long long *last, const unsigned long long *ip) { long long i, j, e; long long count[8]; for (i = 7; i >= 0; --i) count[i] = 0; e = 8; for (i = 7; i >= 0; --i) { if (!ip[i]) { for (j = i; j < e; ++j) ++count[j]; } else { e = i; } } e = 0; j = 0; for (i = 7; i >= 0; --i) { if (count[i]) { if (count[i] >= e) { e = count[i]; j = i; } } } *first = j - count[j] + 1; *last = j; } /* convert IPv6 address */ static char *iptostr6(char *strbuf, const unsigned char *ip) { long long first, last, i; unsigned long long ip2[8]; char *s = strbuf; for (i = 7; i >= 0; --i) { ip2[i] = ip[2 * i]; ip2[i] <<= 8; ip2[i] += ip[2 * i + 1]; } countz(&first, &last, ip2); strbuf += IPTOSTR_LEN - 1; *strbuf = 0; for (i = 7; i >= 0; --i) { if (i <= last && i >= first && first != last) { if (i == last) *--strbuf = ':'; if (i == 7) *--strbuf = ':'; continue; } do { *--strbuf = "0123456789abcdef"[ip2[i] & 15]; ip2[i] >>= 4; } while (ip2[i]); if (i > 0) *--strbuf = ':'; } i = strbuf - s; byte_copy(s, IPTOSTR_LEN - i, strbuf); byte_zero(s + IPTOSTR_LEN - i, i); return s; } tinyssh-20180201/tinyssh/iptostr.h000066400000000000000000000002041322704306500170260ustar00rootroot00000000000000#ifndef _IPTOSTR_H____ #define _IPTOSTR_H____ #define IPTOSTR_LEN 46 extern char *iptostr(char *, const unsigned char *); #endif tinyssh-20180201/tinyssh/limit.h000066400000000000000000000004231322704306500164430ustar00rootroot00000000000000#ifndef _LIMIT_H____ #define _LIMIT_H____ #include "haslimits.h" #ifdef HASLIMITS #include #endif #ifndef LOGIN_NAME_MAX #define LOGIN_NAME_MAX 256 #endif #ifndef NAME_MAX #define NAME_MAX 255 #endif #ifndef TTY_NAME_MAX #define TTY_NAME_MAX 32 #endif #endif tinyssh-20180201/tinyssh/load.c000066400000000000000000000004741322704306500162450ustar00rootroot00000000000000/* taken from nacl-20110221, from curvecp/load.c */ #include #include "readall.h" #include "open.h" #include "e.h" #include "load.h" int load(const char *fn,void *x,long long xlen) { int fd; int r; fd = open_read(fn); if (fd == -1) return -1; r = readall(fd,x,xlen); close(fd); return r; } tinyssh-20180201/tinyssh/load.h000066400000000000000000000001271322704306500162450ustar00rootroot00000000000000#ifndef LOAD_H #define LOAD_H extern int load(const char *,void *,long long); #endif tinyssh-20180201/tinyssh/log.c000066400000000000000000000100031322704306500160740ustar00rootroot00000000000000/* 20140202 Jan Mojzis Public domain. The 'log' library is used to write log messages on standard error output including source file, function and line number. Non-printable characters are replaced using '?'. The 'log' library also supports syslog. */ #include #include "writeall.h" #include "randommod.h" #include "purge.h" #include "numtostr.h" #include "e.h" #include "log.h" static const char *logtext = "x"; static char logstring[9] = "________"; static int loglevel = 1; static int logflagfnln = 1; static int logflagsyslog = 0; static char chars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRTSUVWXYZ0123456789"; void log_init(int level, const char *text, int line, int flagsyslog) { long long i; loglevel = level; logtext = text; logflagfnln = line; for (i = 0; i < sizeof logstring; ++i) { logstring[i] = chars[randommod(sizeof chars - 1)]; } logstring[sizeof logstring - 1] = 0; if (flagsyslog) { openlog(text, 0, LOG_DAEMON); logflagsyslog = 1; } errno = 0; } char *log_string(void) { return logstring; } static char buf[257]; static long long buflen = 0; static void flush(void) { if (logflagsyslog) { buf[buflen] = 0; syslog(LOG_INFO, "%s", buf); } else { writeall(2, buf, buflen); } buflen = 0; purge(buf, buflen); } static void outs(const char *x) { long long i; for(i = 0; x[i]; ++i) { if (buflen >= sizeof buf - 1) flush(); if (x[i] == '\n') buf[buflen++] = '\n'; else if (x[i] < 32) buf[buflen++] = '?'; else if (x[i] > 126) buf[buflen++] = '?'; else buf[buflen++] = x[i]; } } static void outnum(unsigned long long n) { char b[NUMTOSTR_LEN]; outs(numtostr(b, n)); } void log_9_( int level ,int ignoreerrno ,const char *f ,unsigned long long l ,const char *s0 ,const char *s1 ,const char *s2 ,const char *s3 ,const char *s4 ,const char *s5 ,const char *s6 ,const char *s7 ,const char *s8 ) { const char *s[9]; long long i; const char *m; if (level > loglevel) return; s[0] = s0; s[1] = s1; s[2] = s2; s[3] = s3; s[4] = s4; s[5] = s5; s[6] = s6; s[7] = s7; s[8] = s8; switch (level) { case -1: m = "BUG"; break; case 0: m = "usage"; break; case 1: m = "fatal"; break; case 2: if (!ignoreerrno) m = "warning"; else m = "info"; break; case 3: m = "debug"; break; default: m = "unknown"; break; } /* name: session: level: message (error){file:line} */ /* 'name:' */ do { if (level == 0) break; /* don't print in usage level */ if (logflagsyslog) break; /* don't print in syslog mode */ outs(logtext); outs(": "); } while (0); /* 'session:' */ do { if (level == 0) break; /* don't print in usage level */ if (!logflagfnln) break; /* don't print when disabled */ outs(logstring); outs(": "); } while (0); /* 'level:' */ do { if (level == 0) break; /* don't print in usage level */ outs(m); outs(": "); } while (0); /* 'message' */ for (i = 0; i < 9 && s[i]; ++i) outs(s[i]); outs(" "); /* '(error)' */ do { if (!errno) break; /* don't print when errno = 0 */ if (ignoreerrno) break; /* don't print when disabled */ outs("("); outs(e_str(errno)); outs(")"); } while (0); /* {file:line} */ do { if (level == 0) break; /* don't print in usage level */ if (!f) break; /* don't print when no f */ if (!l) break; /* don't print when no l */ if (!logflagfnln && level != -1) break; /* don't print when disabled */ outs("{"); outs(f); outs(":"); outnum(l); outs("}"); } while (0); outs("\n"); flush(); return; } tinyssh-20180201/tinyssh/log.h000066400000000000000000000052311322704306500161100ustar00rootroot00000000000000#ifndef _LOG_H____ #define _LOG_H____ extern void log_init(int, const char *, int, int); extern char *log_string(void); extern void log_9_( int, int, const char *, unsigned long long, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *); /* usage */ #define log_u9(a,b,c,d,e,f,g,h,i) log_9_(0,1,__FILE__,__LINE__,a,b,c,d,e,f,g,h,i) #define log_u8(a,b,c,d,e,f,g,h) log_u9(a,b,c,d,e,f,g,h,0) #define log_u7(a,b,c,d,e,f,g) log_u8(a,b,c,d,e,f,g,0) #define log_u6(a,b,c,d,e,f) log_u7(a,b,c,d,e,f,0) #define log_u5(a,b,c,d,e) log_u6(a,b,c,d,e,0) #define log_u4(a,b,c,d) log_u5(a,b,c,d,0) #define log_u3(a,b,c) log_u4(a,b,c,0) #define log_u2(a,b) log_u3(a,b,0) #define log_u1(a) log_u2(a,0) /* fatal */ #define log_f9(a,b,c,d,e,f,g,h,i) log_9_(1,0,__FILE__,__LINE__,a,b,c,d,e,f,g,h,i) #define log_f8(a,b,c,d,e,f,g,h) log_f9(a,b,c,d,e,f,g,h,0) #define log_f7(a,b,c,d,e,f,g) log_f8(a,b,c,d,e,f,g,0) #define log_f6(a,b,c,d,e,f) log_f7(a,b,c,d,e,f,0) #define log_f5(a,b,c,d,e) log_f6(a,b,c,d,e,0) #define log_f4(a,b,c,d) log_f5(a,b,c,d,0) #define log_f3(a,b,c) log_f4(a,b,c,0) #define log_f2(a,b) log_f3(a,b,0) #define log_f1(a) log_f2(a,0) /* warning */ #define log_w9(a,b,c,d,e,f,g,h,i) log_9_(2,0,__FILE__,__LINE__,a,b,c,d,e,f,g,h,i) #define log_w8(a,b,c,d,e,f,g,h) log_w9(a,b,c,d,e,f,g,h,0) #define log_w7(a,b,c,d,e,f,g) log_w8(a,b,c,d,e,f,g,0) #define log_w6(a,b,c,d,e,f) log_w7(a,b,c,d,e,f,0) #define log_w5(a,b,c,d,e) log_w6(a,b,c,d,e,0) #define log_w4(a,b,c,d) log_w5(a,b,c,d,0) #define log_w3(a,b,c) log_w4(a,b,c,0) #define log_w2(a,b) log_w3(a,b,0) #define log_w1(a) log_w2(a,0) /* info */ #define log_i9(a,b,c,d,e,f,g,h,i) log_9_(2,1,__FILE__,__LINE__,a,b,c,d,e,f,g,h,i) #define log_i8(a,b,c,d,e,f,g,h) log_i9(a,b,c,d,e,f,g,h,0) #define log_i7(a,b,c,d,e,f,g) log_i8(a,b,c,d,e,f,g,0) #define log_i6(a,b,c,d,e,f) log_i7(a,b,c,d,e,f,0) #define log_i5(a,b,c,d,e) log_i6(a,b,c,d,e,0) #define log_i4(a,b,c,d) log_i5(a,b,c,d,0) #define log_i3(a,b,c) log_i4(a,b,c,0) #define log_i2(a,b) log_i3(a,b,0) #define log_i1(a) log_i2(a,0) /* debug */ #define log_d9(a,b,c,d,e,f,g,h,i) log_9_(3,1,__FILE__,__LINE__,a,b,c,d,e,f,g,h,i) #define log_d8(a,b,c,d,e,f,g,h) log_d9(a,b,c,d,e,f,g,h,0) #define log_d7(a,b,c,d,e,f,g) log_d8(a,b,c,d,e,f,g,0) #define log_d6(a,b,c,d,e,f) log_d7(a,b,c,d,e,f,0) #define log_d5(a,b,c,d,e) log_d6(a,b,c,d,e,0) #define log_d4(a,b,c,d) log_d5(a,b,c,d,0) #define log_d3(a,b,c) log_d4(a,b,c,0) #define log_d2(a,b) log_d3(a,b,0) #define log_d1(a) log_d2(a,0) #endif tinyssh-20180201/tinyssh/loginshell.c000066400000000000000000000012021322704306500174540ustar00rootroot00000000000000/* 20140429 Jan Mojzis Public domain. */ #include "e.h" #include "loginshell.h" /* The 'loginshell()' function converts shell path into -shell name. For example: '/bin/sh' -> '-sh' '/usr/pkg/bin/bash' -> '-bash' */ int loginshell(char *out, long long outlen, const char *in) { long long len, pos = -1; if (!out || !in || outlen < 2) { errno = EINVAL; return 0; } for (len = 0; in[len]; ++len) if (in[len] == '/') pos = len; in += pos + 1; len -= pos + 1; if (len > outlen - 2) len = outlen - 2; /* truncate name */ *out++ = '-'; while (len > 0) { *out++ = *in++; --len; } *out = 0; return 1; } tinyssh-20180201/tinyssh/loginshell.h000066400000000000000000000001651322704306500174700ustar00rootroot00000000000000#ifndef _LOGINSHELL_H____ #define _LOGINSHELL_H____ extern int loginshell(char *, long long, const char *); #endif tinyssh-20180201/tinyssh/logsys.c000066400000000000000000000072121322704306500166430ustar00rootroot00000000000000/* 20140212 Jan Mojzis Public domain. The 'logsys' library is used to login recording and logout recording in the system using utmp/utmpx ... Portability - HELL !! */ /* tested on: FreeBSD 9.2 OpenBSD 5.3 NetBSD 6.1.2 Linux Debian 7.0 SunOS 5.11 */ #include #include #include #include #include "hasutilh.h" #ifdef HASUTILH #include #endif #include "hasutmpx.h" #ifdef HASUTMPX #include #endif #include "hasutmpxupdwtmpx.h" #include "hasutmpxsyslen.h" #include "hasutmp.h" #ifdef HASUTMP #include #endif #include "hasutmpname.h" #include "hasutmppid.h" #include "hasutmptime.h" #include "hasutmptv.h" #include "hasutmptype.h" #include "hasutmphost.h" #include "hasutmpuser.h" #include "hasutmplogwtmp.h" #include "hasutmploginlogout.h" #include "str.h" #include "byte.h" #include "logsys.h" static void logsys_utmpx(const char *user, const char *host, const char *name, long long pid, int flaglogin) { #ifdef HASUTMPX struct timeval tv; struct utmpx ut; byte_zero(&ut, sizeof ut); /* line */ if (!name) name = ttyname(0); if (!name) return; if (str_start(name, "/dev/")) name += 5; str_copyn(ut.ut_line, sizeof ut.ut_line, name); /* host */ str_copyn(ut.ut_host, sizeof ut.ut_host, host); #ifdef HASUTMPXSYSLEN ut.ut_syslen = str_len(ut.ut_host) + 1; #endif /* user */ str_copyn(ut.ut_user, sizeof ut.ut_user, user); /* time */ gettimeofday(&tv, 0); ut.ut_tv.tv_sec = tv.tv_sec; ut.ut_tv.tv_usec = tv.tv_usec; /* pid */ if (pid == 0) pid = getpid(); ut.ut_pid = pid; /* type */ if (flaglogin) ut.ut_type = USER_PROCESS; else ut.ut_type = DEAD_PROCESS; /* update utmpx */ setutxent(); pututxline(&ut); endutxent(); /* update wtmpx */ #if defined(_PATH_WTMPX) && defined(HASUTMPXUPDWTMPX) updwtmpx(_PATH_WTMPX, &ut); #endif #endif } static void logsys_utmp(const char *user, const char *host, const char *name, long long pid, int flaglogin) { #ifdef HASUTMP struct timeval tv; struct utmp ut; byte_zero(&ut, sizeof ut); /* line */ if (!name) name = ttyname(0); if (!name) return; if (str_start(name, "/dev/")) name += 5; str_copyn(ut.ut_line, sizeof ut.ut_line, name); /* host */ #ifdef HASUTMPHOST str_copyn(ut.ut_host, sizeof ut.ut_host, host); #endif /* user */ #ifdef HASUTMPNAME str_copyn(ut.ut_name, sizeof ut.ut_name, user); #endif #ifdef HASUTMPUSER str_copyn(ut.ut_user, sizeof ut.ut_user, user); #endif /* time */ gettimeofday(&tv, 0); #ifdef HASUTMPTIME ut.ut_time = tv.tv_sec; #endif #ifdef HASUTMPTV ut.ut_tv.tv_sec = tv.tv_sec; ut.ut_tv.tv_usec = tv.tv_usec; #endif /* pid */ #ifdef HASUTMPPID if (pid == 0) pid = getpid(); ut.ut_pid = pid; #endif /* type */ #ifdef HASUTMPTYPE if (flaglogin) ut.ut_type = USER_PROCESS; else ut.ut_type = DEAD_PROCESS; #endif if (flaglogin) { #ifdef HASUTMPLOGINLOGOUT login(&ut); #else setutent(); pututline(&ut); endutent(); #endif } else { #ifdef HASUTMPLOGINLOGOUT logout(ut.ut_line); #else setutent(); pututline(&ut); endutent(); #endif #if defined(HASUTMPLOGWTMP) logwtmp(ut.ut_line, "", ""); #endif } #endif } void logsys_login(const char *user, const char *host, const char *name, long long pid) { logsys_utmp(user, host, name, pid, 1); logsys_utmpx(user, host, name, pid, 1); } void logsys_logout(const char *user, const char *host, const char *name, long long pid) { logsys_utmp(user, host, name, pid, 0); logsys_utmpx(user, host, name, pid, 0); } tinyssh-20180201/tinyssh/logsys.h000066400000000000000000000003341322704306500166460ustar00rootroot00000000000000/* Public domain. */ #ifndef _LOGSYS_H____ #define _LOGSYS_H____ void logsys_login(const char *, const char *, const char *, long long); void logsys_logout(const char *, const char *, const char *, long long); #endif tinyssh-20180201/tinyssh/newenv.c000066400000000000000000000043721322704306500166310ustar00rootroot00000000000000/* 20140215 Jan Mojzis Public domain. The 'newenv' library is used to execute process in completely new environment. */ #include #include "e.h" #include "byte.h" #include "str.h" #include "purge.h" #include "bug.h" #include "env.h" #include "trymlock.h" #include "newenv.h" #define NEWENV_LEN 128 #define NEWENV_SPACE 2048 static struct newenv { char *e[NEWENV_LEN]; long long elen; char es[NEWENV_SPACE]; long long eslen; } n = { {0}, 0, {0}, 0 }; /* Remove sentitive data from allocated memory. */ void newenv_purge(void) { purge(&n, sizeof n); n.elen = NEWENV_LEN; n.eslen = NEWENV_SPACE; trymunlock(&n, sizeof n); } /* Initialize newenv structure. */ void newenv_init(void) { trymlock(&n, sizeof n); purge(&n, sizeof n); n.e[0] = 0; n.elen = n.eslen = 0; } /* The 'newenv_env/newenv_lowenv' function adds the variable into new environment. The newenv_lowenv is limited to a half of the buffer-space. */ int newenv_env_(int x, const char *s, const char *t) { long long slen, tlen, len, i; if (!x || !s || !t) bug_inval(); if (n.elen < 0) bug_inval(); if (n.eslen < 0) bug_inval(); slen = str_len(s); tlen = str_len(t); len = slen + tlen + 2; if (!n.elen) newenv_init(); for (i = 0; n.e[i]; ++i) { if (str_start(n.e[i], s) && (n.e[i][slen] == '=')) { n.e[i] = n.e[--n.elen]; break; } } if (n.elen + 2 > NEWENV_LEN / x) { errno = ENOMEM; return 0; } if (n.eslen + len > NEWENV_SPACE / x) { errno = ENOMEM; return 0; } byte_copy(n.es + n.eslen, slen, s); n.eslen += slen; n.es[n.eslen++] = '='; byte_copy(n.es + n.eslen, tlen, t); n.eslen += tlen; n.es[n.eslen++] = 0; n.e[n.elen++] = n.es + n.eslen - len; n.e[n.elen] = 0; return 1; } /* The 'newenv_copyenv' function copies the variable from current environment into new environment. */ int newenv_copyenv(const char *s) { char *t; if (!s) bug_inval(); t = env_get(s); if (!t) { errno = ENOENT; return 0; } return newenv_env_(1, s, t); } /* The 'newenv_exec' function executes the command in new environment. */ void newenv_exec(char *filename, char **argv) { if (!argv || !filename) bug_inval(); execve(filename, argv, n.e); } tinyssh-20180201/tinyssh/newenv.h000066400000000000000000000005501322704306500166300ustar00rootroot00000000000000#ifndef _NEWENV_H____ #define _NEWENV_H____ extern int newenv_env_(int, const char *, const char *); #define newenv_env(x, y) newenv_env_(1, (x), (y)) #define newenv_lowenv(x, y) newenv_env_(2, (x), (y)) extern int newenv_copyenv(const char *); extern void newenv_exec(char *, char **); extern void newenv_init(void); extern void newenv_purge(void); #endif tinyssh-20180201/tinyssh/numtostr.c000066400000000000000000000016321322704306500172160ustar00rootroot00000000000000/* 20130604 Jan Mojzis Public domain. */ #include "numtostr.h" /* The 'numtostr(strbuf,n)' converts number 'n' into the 0-terminated string. The caller must allocate at least NUMTOSTR_LEN bytes for 'strbuf'. The 'numtostr' function is ready for 128-bit integer. */ char *numtostr(char *strbuf, long long n) { long long len = 0; unsigned long long n1, n2; static char staticbuf[NUMTOSTR_LEN]; int flagsign = 0; if (!strbuf) strbuf = staticbuf; /* not thread-safe */ if (n < 0) { n1 = n2 = -(unsigned long long)n; flagsign = 1; } else { n1 = n2 = (unsigned long long)n; } do { n1 /= 10; ++len; } while (n1); if (flagsign) ++len; strbuf += len; do { *--strbuf = '0' + (n2 % 10); n2 /= 10; } while (n2); if (flagsign) *--strbuf = '-'; while (len < NUMTOSTR_LEN) strbuf[len++] = 0; return strbuf; } tinyssh-20180201/tinyssh/numtostr.h000066400000000000000000000001741322704306500172230ustar00rootroot00000000000000#ifndef _NUMTOSTR_H____ #define _NUMTOSTR_H____ #define NUMTOSTR_LEN 41 extern char *numtostr(char *, long long); #endif tinyssh-20180201/tinyssh/open.c000066400000000000000000000016531322704306500162670ustar00rootroot00000000000000/* taken from nacl-20110221, from curvecp/open_cwd.c curvecp/open_pipe.c curvecp/open_read.c curvecp/open_write.c */ #include #include #include #include #include "blocking.h" #include "open.h" int open_cwd(void) { return open_read("."); } int open_pipe(int *fd) { int i; if (pipe(fd) == -1) return -1; for (i = 0;i < 2;++i) { fcntl(fd[i],F_SETFD,1); blocking_disable(fd[i]); } return 0; } int open_read(const char *fn) { #ifdef O_CLOEXEC return open(fn,O_RDONLY | O_NONBLOCK | O_CLOEXEC); #else int fd = open(fn,O_RDONLY | O_NONBLOCK); if (fd == -1) return -1; fcntl(fd,F_SETFD,1); return fd; #endif } int open_write(const char *fn) { #ifdef O_CLOEXEC return open(fn,O_CREAT | O_WRONLY | O_NONBLOCK | O_CLOEXEC,0644); #else int fd = open(fn,O_CREAT | O_WRONLY | O_NONBLOCK,0644); if (fd == -1) return -1; fcntl(fd,F_SETFD,1); return fd; #endif } tinyssh-20180201/tinyssh/open.h000066400000000000000000000003141322704306500162650ustar00rootroot00000000000000#ifndef OPEN_H #define OPEN_H extern int open_read(const char *); extern int open_write(const char *); extern int open_lock(const char *); extern int open_cwd(void); extern int open_pipe(int *); #endif tinyssh-20180201/tinyssh/packet.c000066400000000000000000000022531322704306500165720ustar00rootroot00000000000000/* 20140222 Jan Mojzis Public domain. */ #include "purge.h" #include "trymlock.h" #include "packet.h" struct packet packet = {0}; void packet_purge(void) { purge(&packet, sizeof packet); trymunlock(&packet, sizeof packet); } void packet_init(void) { trymlock(&packet, sizeof packet); purge(&packet, sizeof packet); packet.flagkeys = 0; packet.flagauthorized = 0; packet.flagrekeying = 0; packet.flagclosesent = 0; packet.flageofsent = 0; packet.flagchanneleofreceived = 0; packet.sendpacketid = 0; packet.receivepacketid = 0; packet.packet_length = 0; buf_init(&packet.hellosend, packet.hellosendspace, sizeof packet.hellosendspace); buf_init(&packet.helloreceive, packet.helloreceivespace, sizeof packet.helloreceivespace); buf_init(&packet.kexsend, packet.kexsendspace, sizeof packet.kexsendspace); buf_init(&packet.kexrecv, packet.kexrecvspace, sizeof packet.kexrecvspace); buf_init(&packet.hashbuf, packet.hashbufspace, sizeof packet.hashbufspace); buf_init(&packet.sendbuf, packet.sendbufspace, sizeof packet.sendbufspace); buf_init(&packet.recvbuf, packet.recvbufspace, sizeof packet.recvbufspace); } tinyssh-20180201/tinyssh/packet.h000066400000000000000000000066731322704306500166110ustar00rootroot00000000000000/* 20140108 Jan Mojzis Public domain. */ #ifndef _PACKET_H____ #define _PACKET_H____ #include "buf.h" #include "crypto_uint32.h" #include "crypto_uint8.h" #include "sshcrypto.h" #include "limit.h" #include "channel.h" #define PACKET_UNAUTHENTICATED_MESSAGES 30 #define PACKET_LIMIT 32768 #define PACKET_FULLLIMIT 35000 #define PACKET_RECVLIMIT 131072 #define PACKET_ZEROBYTES 64 struct packet { /* flags */ int flagkeys; int flagauthorized; int flagrekeying; /* channel */ int flageofsent; int flagclosesent; int flagchanneleofreceived; /* packet id */ crypto_uint32 sendpacketid; crypto_uint32 receivepacketid; /* keys */ unsigned char serverkey[sshcrypto_cipher_KEYMAX]; unsigned char clientkey[sshcrypto_cipher_KEYMAX]; unsigned char servermackey[sshcrypto_cipher_KEYMAX]; unsigned char clientmackey[sshcrypto_cipher_KEYMAX]; unsigned char servernonce[sshcrypto_cipher_KEYMAX]; unsigned char clientnonce[sshcrypto_cipher_KEYMAX]; unsigned char sessionid[sshcrypto_hash_MAX]; char name[LOGIN_NAME_MAX + 1]; crypto_uint8 kex_packet_follows; crypto_uint8 kex_guess; /* buffers */ unsigned char hellosendspace[256]; unsigned char helloreceivespace[256]; unsigned char kexsendspace[1024]; unsigned char kexrecvspace[65536]; unsigned char hashbufspace[65536]; struct buf hellosend; struct buf helloreceive; struct buf kexsend; struct buf kexrecv; struct buf hashbuf; /* send/recv */ unsigned char recvbufspace[4 * PACKET_FULLLIMIT + 1 + PACKET_ZEROBYTES]; unsigned char sendbufspace[4 * PACKET_FULLLIMIT + 1]; struct buf recvbuf; struct buf sendbuf; crypto_uint32 packet_length; }; /* packet.c */ extern struct packet packet; extern void packet_purge(void); extern void packet_init(void); /* packet_send.c */ extern int packet_sendisready(void); extern int packet_send(void); extern int packet_sendall(void); /* packet_recv.c */ extern int packet_recvisready(void); extern int packet_recv(void); /* packet_get.c */ extern int packet_get(struct buf *, crypto_uint8); extern int packet_getall(struct buf *, crypto_uint8); /* packet_put.c */ extern void packet_put(struct buf *); extern int packet_putisready(void); /* packet_hello.c */ extern int packet_hello_send(void); extern int packet_hello_receive(void); /* packet_kex.c */ extern int packet_kex_send(void); extern int packet_kex_receive(void); /* packet_kexdh.c */ extern int packet_kexdh(const char *, struct buf *, struct buf *); /* packet_auth.c */ extern int packet_auth(struct buf *, struct buf *); /* packet_channel_open.c */ extern int packet_channel_open(struct buf *, struct buf *); /* packet_channel_request.c */ extern int packet_channel_request(struct buf *, struct buf *); /* packet_channel_recv.c */ extern int packet_channel_recv_data(struct buf *); extern int packet_channel_recv_extendeddata(struct buf *); extern int packet_channel_recv_windowadjust(struct buf *); extern int packet_channel_recv_eof(struct buf *); extern int packet_channel_recv_close(struct buf *); /* packet_channel_send.c */ extern void packet_channel_send_data(struct buf *); extern void packet_channel_send_extendeddata(struct buf *); extern int packet_channel_send_windowadjust(struct buf *); extern void packet_channel_send_eof(struct buf *); extern int packet_channel_send_close(struct buf *, int, int); /* packet_unimplemented.c */ extern int packet_unimplemented(struct buf *); #endif tinyssh-20180201/tinyssh/packet_auth.c000066400000000000000000000152451322704306500176200ustar00rootroot00000000000000/* 20140110 Jan Mojzis Public domain. */ #include "buf.h" #include "ssh.h" #include "e.h" #include "str.h" #include "packetparser.h" #include "subprocess.h" #include "sshcrypto.h" #include "bug.h" #include "purge.h" #include "log.h" #include "packet.h" int packet_auth(struct buf *b, struct buf *b2) { crypto_uint8 ch, flagsignature; long long pos, i, count, sign_bytes = 0; crypto_uint32 len; const char *pkname; int (*sign_open)(unsigned char *,unsigned long long *,const unsigned char *,unsigned long long,const unsigned char *) = 0; int (*parsesignpk)(unsigned char *, const unsigned char *, long long) = 0; int (*parsesignature)(unsigned char *, const unsigned char *, long long) = 0; void (*putsignpk)(struct buf *, const unsigned char *) = 0; void (*putsignpkbase64)(struct buf *, const unsigned char *) = 0; unsigned char pk[sshcrypto_sign_PUBLICKEYMAX]; unsigned char sig[sshcrypto_sign_MAX]; unsigned long long smlen; buf_purge(b); /* parse "ssh-userauth" */ pos = 0; if (!packet_getall(b, SSH_MSG_SERVICE_REQUEST)) bug(); pos = packetparser_uint8(b->buf, b->len, pos, &ch); /* SSH_MSG_SERVICE_REQUEST */ if (ch != SSH_MSG_SERVICE_REQUEST) bug_proto(); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* "ssh-userauth" */ pos = packetparser_skip(b->buf, b->len, pos, len); if (!str_equaln((char *)b->buf + pos - len, len, "ssh-userauth")) bug_proto(); pos = packetparser_end(b->buf, b->len, pos); /* send service accept */ b->buf[0] = SSH_MSG_SERVICE_ACCEPT; packet_put(b); if (!packet_sendall()) bug(); for (count = 0; count < 32; ++count) { /* receive userauth request */ pkname = "unknown"; pos = 0; buf_purge(b); if (!packet_getall(b, SSH_MSG_USERAUTH_REQUEST)) bug(); pos = packetparser_uint8(b->buf, b->len, pos, &ch); /* SSH_MSG_USERAUTH_REQUEST */ if (ch != SSH_MSG_USERAUTH_REQUEST) bug_proto(); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* name */ if (len >= sizeof packet.name) bug_proto(); pos = packetparser_copy(b->buf, b->len, pos, (unsigned char *)packet.name, len); packet.name[len] = 0; pos = packetparser_uint32(b->buf, b->len, pos, &len); /* "ssh-connection" */ pos = packetparser_skip(b->buf, b->len, pos, len); if (!str_equaln((char *)b->buf + pos - len, len, "ssh-connection")) bug_proto(); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* publickey/password/hostbased/none */ pos = packetparser_skip(b->buf, b->len, pos, len); if (str_equaln((char *)b->buf + pos - len, len, "none")) pkname = "none"; if (str_equaln((char *)b->buf + pos - len, len, "password")) pkname = "password"; if (str_equaln((char *)b->buf + pos - len, len, "hostbased")) pkname = "hostbased"; if (str_equaln((char *)b->buf + pos - len, len, "publickey")) { pos = packetparser_uint8(b->buf, b->len, pos, &flagsignature); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* public key algorithm name */ pos = packetparser_skip(b->buf, b->len, pos, len); if (b->buf[pos] != 0) bug_proto(); pkname = (char *)b->buf + pos - len; /* XXX */ sign_open = 0; parsesignpk = 0; putsignpk = 0; putsignpkbase64 = 0; parsesignature = 0; sign_bytes = 0; for (i = 0; sshcrypto_keys[i].name; ++i) { if (!sshcrypto_keys[i].sign_flagclient) continue; if (!str_equaln(pkname, len, sshcrypto_keys[i].name)) continue; pkname = sshcrypto_keys[i].name; sign_open = sshcrypto_keys[i].sign_open; parsesignature = sshcrypto_keys[i].parsesignature; parsesignpk = sshcrypto_keys[i].parsesignpk; putsignpk = sshcrypto_keys[i].buf_putsignpk; putsignpkbase64 = sshcrypto_keys[i].buf_putsignpkbase64; sign_bytes = sshcrypto_keys[i].sign_bytes; break; } if (sign_open && parsesignpk && putsignpk && putsignpkbase64 && parsesignature) { pos = packetparser_uint32(b->buf, b->len, pos, &len); /* public key blob */ pos = packetparser_skip(b->buf, b->len, pos, len); if (!parsesignpk(pk, b->buf + pos - len, len)) bug_proto(); if (!flagsignature) { /* 'publickey' ... without signature */ buf_purge(b); buf_putnum8(b, SSH_MSG_USERAUTH_PK_OK); buf_putstring(b, pkname); putsignpk(b, pk); packet_put(b); if (!packet_sendall()) bug(); continue; } /* 'publickey' ... with signature */ pos = packetparser_uint32(b->buf, b->len, pos, &len); /* signature blob */ pos = packetparser_skip(b->buf, b->len, pos, len); if (!parsesignature(sig, b->buf + pos - len, len)) bug_proto(); pos = packetparser_end(b->buf, b->len, pos); purge(b->buf + b->len - len - 4, len + 4); b->len -= len + 4; /* authenticate user - verify signature */ buf_purge(b2); buf_put(b2, sig, sign_bytes); buf_putstringlen(b2, packet.sessionid, sshcrypto_hash_bytes); buf_put(b2, b->buf, b->len); buf_purge(b); if (b->alloc <= b2->len) bug_nomem(); if (sign_open(b->buf, &smlen, b2->buf, b2->len, pk) != 0) { errno = EAUTH; bug(); } b->len = smlen; buf_purge(b); /* authorize user - using authorized_keys */ buf_purge(b); putsignpkbase64(b, pk); buf_putnum8(b, 0); if (subprocess_auth(packet.name, pkname, (char *)b->buf) == 0) goto authorized; } } /* reject */ log_d5("auth: ", packet.name, ": ", pkname, " rejected"); buf_purge(b); buf_putnum8(b, SSH_MSG_USERAUTH_FAILURE); buf_putstring(b,"publickey"); buf_putnum8(b, 0); packet_put(b); if (!packet_sendall()) bug(); } log_w1("auth: too many authentication tries"); return 0; authorized: /* authenticated + authorized */ log_i7("auth: ", packet.name, ": ", pkname, " ", (char *)b->buf, " accepted"); buf_purge(b); buf_putnum8(b, SSH_MSG_USERAUTH_SUCCESS); buf_putstring(b,"ssh-connection"); packet_put(b); if (!packet_sendall()) bug(); purge(pk, sizeof pk); purge(sig, sizeof sig); return 1; } tinyssh-20180201/tinyssh/packet_channel_open.c000066400000000000000000000054631322704306500213110ustar00rootroot00000000000000/* 20140120 Jan Mojzis Public domain. */ #include "buf.h" #include "ssh.h" #include "e.h" #include "bug.h" #include "packetparser.h" #include "str.h" #include "packet.h" int packet_channel_open(struct buf *b1, struct buf *b2) { crypto_uint32 id, remotewindow, localwindow, maxpacket, chanlen; long long pos = 0; crypto_uint8 ch; char *chan = (char *)b1->buf + pos; /* parse packet */ pos = packetparser_uint8(b1->buf, b1->len, pos, &ch); /* byte SSH_MSG_CHANNEL_OPEN */ if (ch != SSH_MSG_CHANNEL_OPEN) bug_proto(); pos = packetparser_uint32(b1->buf, b1->len, pos, &chanlen); /* string channel type in US-ASCII only */ chan = (char *)b1->buf + pos; pos = packetparser_skip(b1->buf, b1->len, pos, chanlen); pos = packetparser_uint32(b1->buf, b1->len, pos, &id); /* uint32 sender channel */ pos = packetparser_uint32(b1->buf, b1->len, pos, &remotewindow); /* uint32 initial window size */ pos = packetparser_uint32(b1->buf, b1->len, pos, &maxpacket); /* uint32 maximum packet size */ if (maxpacket > PACKET_LIMIT) maxpacket = PACKET_LIMIT; if (str_equaln(chan, chanlen, "session")) { /* byte SSH_MSG_CHANNEL_OPEN string "session" uint32 sender channel uint32 initial window size uint32 maximum packet size */ pos = packetparser_end(b1->buf, b1->len, pos); /* send confirmation */ buf_purge(b1); if (channel_open(packet.name, id, remotewindow, maxpacket, &localwindow)) { buf_purge(b2); buf_putnum8(b2, SSH_MSG_CHANNEL_OPEN_CONFIRMATION); /* byte SSH_MSG_CHANNEL_OPEN_CONFIRMATION */ buf_putnum32(b2, id); /* uint32 recipient channel */ buf_putnum32(b2, id); /* uint32 sender channel */ buf_putnum32(b2, localwindow); /* uint32 initial window size */ buf_putnum32(b2, PACKET_LIMIT); /* uint32 maximum packet size */ packet_put(b2); buf_purge(b2); return 1; } } /* reject channel */ buf_purge(b2); buf_putnum8(b2, SSH_MSG_CHANNEL_OPEN_FAILURE); /* byte SSH_MSG_CHANNEL_OPEN_FAILURE */ buf_putnum32(b2, id); /* uint32 recipient channel */ buf_putnum32(b2, SSH_OPEN_ADMINISTRATIVELY_PROHIBITED); /* uint32 reason code */ buf_putstring(b2, "only one 'session' channel allowed"); /* string description in ISO-10646 UTF-8 encoding [RFC3629] */ buf_putstring(b2, ""); /* string language tag [RFC3066] */ packet_put(b2); buf_purge(b1); buf_purge(b2); return 1; } tinyssh-20180201/tinyssh/packet_channel_recv.c000066400000000000000000000052521322704306500213030ustar00rootroot00000000000000/* 20140210 Jan Mojzis Public domain. */ #include "bug.h" #include "buf.h" #include "channel.h" #include "ssh.h" #include "packetparser.h" #include "packet.h" int packet_channel_recv_data(struct buf *b) { long long pos = 0; crypto_uint32 len, id; crypto_uint8 ch; pos = packetparser_uint8(b->buf, b->len, pos, &ch); /* byte SSH_MSG_CHANNEL_DATA */ if (ch != SSH_MSG_CHANNEL_DATA) bug_proto(); pos = packetparser_uint32(b->buf, b->len, pos, &id); /* uint32 recipient channel */ if (id != channel_getid()) bug_proto(); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* string data */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_end(b->buf, b->len, pos); channel_put(b->buf + pos - len, len); buf_purge(b); return 1; } int packet_channel_recv_extendeddata(struct buf *b) { /* ignore extended data */ buf_purge(b); return 1; } int packet_channel_recv_windowadjust(struct buf *b) { long long pos = 0; crypto_uint32 len, id; crypto_uint8 ch; pos = packetparser_uint8(b->buf, b->len, pos, &ch); /* byte SSH_MSG_CHANNEL_WINDOW_ADJUST */ if (ch != SSH_MSG_CHANNEL_WINDOW_ADJUST) bug_proto(); pos = packetparser_uint32(b->buf, b->len, pos, &id); /* uint32 recipient channel */ if (id != channel_getid()) bug_proto(); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* uint32 bytes to add */ pos = packetparser_end(b->buf, b->len, pos); channel_incrementremotewindow(len); buf_purge(b); return 1; } int packet_channel_recv_eof(struct buf *b) { long long pos = 0; crypto_uint32 id; crypto_uint8 ch; pos = packetparser_uint8(b->buf, b->len, pos, &ch); /* byte SSH_MSG_CHANNEL_EOF */ if (ch != SSH_MSG_CHANNEL_EOF) bug_proto(); pos = packetparser_uint32(b->buf, b->len, pos, &id); /* uint32 recipient channel */ if (id != channel_getid()) bug_proto(); pos = packetparser_end(b->buf, b->len, pos); channel_puteof(); buf_purge(b); return 1; } int packet_channel_recv_close(struct buf *b) { long long pos = 0; crypto_uint32 id; crypto_uint8 ch; pos = packetparser_uint8(b->buf, b->len, pos, &ch); /* byte SSH_MSG_CHANNEL_CLOSE */ if (ch != SSH_MSG_CHANNEL_CLOSE) bug_proto(); pos = packetparser_uint32(b->buf, b->len, pos, &id); /* uint32 recipient channel */ if (id != channel_getid()) bug_proto(); pos = packetparser_end(b->buf, b->len, pos); packet_channel_send_eof(b); packet.flagchanneleofreceived = 1; buf_purge(b); return 1; } tinyssh-20180201/tinyssh/packet_channel_request.c000066400000000000000000000157451322704306500220440ustar00rootroot00000000000000/* 20140120 Jan Mojzis Public domain. */ #include "buf.h" #include "ssh.h" #include "e.h" #include "bug.h" #include "str.h" #include "log.h" #include "packetparser.h" #include "packet.h" int packet_channel_request(struct buf *b1, struct buf *b2) { long long pos = 0; crypto_uint8 ch, wantreply; crypto_uint32 id, a, b, x, y; char *cmd; crypto_uint32 cmdlen; char *p1, *p2; crypto_uint32 plen1, plen2; pos = packetparser_uint8(b1->buf, b1->len, pos, &ch); /* byte SSH_MSG_CHANNEL_REQUEST */ if (ch != SSH_MSG_CHANNEL_REQUEST) bug_proto(); pos = packetparser_uint32(b1->buf, b1->len, pos, &id); /* uint32 recipient channel */ if (id != channel_getid()) bug_proto(); pos = packetparser_uint32(b1->buf, b1->len, pos, &cmdlen); /* string request type in US-ASCII characters only */ cmd = (char *)b1->buf + pos; pos = packetparser_skip(b1->buf, b1->len, pos, cmdlen); pos = packetparser_uint8(b1->buf, b1->len, pos, &wantreply); /* boolean want reply */ cmd[cmdlen] = 0; if (str_equaln(cmd, cmdlen, "exec")) { /* byte SSH_MSG_CHANNEL_REQUEST uint32 recipient channel string "exec" boolean want reply string command */ pos = packetparser_uint32(b1->buf, b1->len, pos, &plen1); p1 = (char *)b1->buf + pos; pos = packetparser_skip(b1->buf, b1->len, pos, plen1); pos = packetparser_end(b1->buf, b1->len, pos); buf_putnum8(b1, 0); p1[plen1] = 0; if (!channel_exec(p1)) bug(); log_d3("packet=SSH_MSG_CHANNEL_REQUEST, exec ", p1, ", accepted"); goto accept; } if (str_equaln(cmd, cmdlen, "subsystem")) { /* byte SSH_MSG_CHANNEL_REQUEST uint32 recipient channel string "subsystem" boolean want reply string subsystem name */ pos = packetparser_uint32(b1->buf, b1->len, pos, &plen1); p1 = (char *)b1->buf + pos; pos = packetparser_skip(b1->buf, b1->len, pos, plen1); pos = packetparser_end(b1->buf, b1->len, pos); buf_putnum8(b1, 0); p1[plen1] = 0; p2 = channel_subsystem_get(p1); if (!p2) { log_d3("packet=SSH_MSG_CHANNEL_REQUEST, subsystem ", p1, ", rejected"); goto reject; } if (!channel_exec(p2)) bug(); log_d5("packet=SSH_MSG_CHANNEL_REQUEST, subsystem ", p1, "=", p2, ", accepted"); goto accept; } if (str_equaln(cmd, cmdlen, "shell")) { /* byte SSH_MSG_CHANNEL_REQUEST uint32 recipient channel string "shell" boolean want reply */ pos = packetparser_end(b1->buf, b1->len, pos); if (!channel_exec(0)) bug(); log_d1("packet=SSH_MSG_CHANNEL_REQUEST, shell, accepted"); goto accept; } if (str_equaln(cmd, cmdlen, "env")) { /* byte SSH_MSG_CHANNEL_REQUEST uint32 recipient channel string "env" boolean want reply string variable name string variable value */ /**/ pos = packetparser_uint32(b1->buf, b1->len, pos, &plen1); /* string variable name */ p1 = (char *)b1->buf + pos; pos = packetparser_skip(b1->buf, b1->len, pos, plen1); pos = packetparser_uint32(b1->buf, b1->len, pos, &plen2); /* string variable value */ p2 = (char *)b1->buf + pos; pos = packetparser_skip(b1->buf, b1->len, pos, plen2); pos = packetparser_end(b1->buf, b1->len, pos); buf_putnum8(b1, 0); p1[plen1] = 0; p2[plen2] = 0; if (channel_env(p1, p2)) { log_d5("packet=SSH_MSG_CHANNEL_REQUEST, env ", p1, "=", p2, ", accepted"); goto accept; } else { log_d5("packet=SSH_MSG_CHANNEL_REQUEST, env ", p1, "=", p2, ", rejected"); goto reject; } } if (str_equaln(cmd, cmdlen, "pty-req")) { /* byte SSH_MSG_CHANNEL_REQUEST uint32 recipient channel string "pty-req" boolean want_reply string TERM environment variable value (e.g., vt100) uint32 terminal width, characters (e.g., 80) uint32 terminal height, rows (e.g., 24) uint32 terminal width, pixels (e.g., 640) uint32 terminal height, pixels (e.g., 480) string encoded terminal modes */ pos = packetparser_uint32(b1->buf, b1->len, pos, &plen1); p1 = (char *)b1->buf + pos; pos = packetparser_skip(b1->buf, b1->len, pos, plen1); pos = packetparser_uint32(b1->buf, b1->len, pos, &a); pos = packetparser_uint32(b1->buf, b1->len, pos, &b); pos = packetparser_uint32(b1->buf, b1->len, pos, &x); pos = packetparser_uint32(b1->buf, b1->len, pos, &y); pos = packetparser_uint32(b1->buf, b1->len, pos, &plen2); p2 = (char *)b1->buf + pos; pos = packetparser_skip(b1->buf, b1->len, pos, plen2); pos = packetparser_end(b1->buf, b1->len, pos); buf_putnum8(b1, 0); /* XXX TODO encoded terminal modes (p2, plen2) */ p1[plen1] = 0; p2[plen2] = 0; if (!channel_openterminal(p1, a, b, x, y)) { log_w1("unable to open terminal"); log_d3("packet=SSH_MSG_CHANNEL_REQUEST, pty-req ", p1, ", rejected"); goto reject; } log_d3("packet=SSH_MSG_CHANNEL_REQUEST, pty-req ", p1, ", accepted"); goto accept; } if (str_equaln(cmd, cmdlen, "window-change")) { /* byte SSH_MSG_CHANNEL_REQUEST uint32 recipient channel string "window-change" boolean FALSE uint32 terminal width, columns uint32 terminal height, rows uint32 terminal width, pixels uint32 terminal height, pixels */ pos = packetparser_uint32(b1->buf, b1->len, pos, &a); pos = packetparser_uint32(b1->buf, b1->len, pos, &b); pos = packetparser_uint32(b1->buf, b1->len, pos, &x); pos = packetparser_uint32(b1->buf, b1->len, pos, &y); pos = packetparser_end(b1->buf, b1->len, pos); channel_ptyresize(a, b, x, y); log_d1("packet=SSH_MSG_CHANNEL_REQUEST, window-change, accepted"); goto accept; } log_d3("packet=SSH_MSG_CHANNEL_REQUEST, ", cmd, ", rejected or ignored"); reject: /* reject channel request */ if (!wantreply) goto done; buf_purge(b2); buf_putnum8(b2, SSH_MSG_CHANNEL_FAILURE); /* byte SSH_MSG_CHANNEL_SUCCESS */ buf_putnum32(b2, id); /* uint32 recipient channel */ packet_put(b2); buf_purge(b1); buf_purge(b2); return 1; accept: if (!wantreply) goto done; buf_purge(b2); buf_putnum8(b2, SSH_MSG_CHANNEL_SUCCESS); /* byte SSH_MSG_CHANNEL_SUCCESS */ buf_putnum32(b2, id); /* uint32 recipient channel */ packet_put(b2); buf_purge(b1); buf_purge(b2); return 1; done: buf_purge(b1); buf_purge(b2); return 1; } tinyssh-20180201/tinyssh/packet_channel_send.c000066400000000000000000000101631322704306500212720ustar00rootroot00000000000000/* 20140211 Jan Mojzis Public domain. */ #include "bug.h" #include "buf.h" #include "channel.h" #include "ssh.h" #include "bug.h" #include "uint32_pack_big.h" #include "packet.h" void packet_channel_send_data(struct buf *b) { long long r; buf_purge(b); if (b->alloc <= PACKET_LIMIT) bug_nomem(); if (!packet_putisready()) return; r = channel_read(b->buf + 9, PACKET_LIMIT - 9); if (r == 0) return; b->len = r + 9; b->buf[0] = SSH_MSG_CHANNEL_DATA; /* byte SSH_MSG_CHANNEL_DATA */ uint32_pack_big(b->buf + 1, channel_getid()); /* uint32 recipient channel */ uint32_pack_big(b->buf + 5, r); /* string data */ packet_put(b); buf_purge(b); return; } void packet_channel_send_extendeddata(struct buf *b) { long long r; buf_purge(b); if (b->alloc <= PACKET_LIMIT) bug_nomem(); if (!packet_putisready()) return; r = channel_extendedread(b->buf + 13, PACKET_LIMIT - 13); if (r == 0) return; b->len = r + 13; b->buf[0] = SSH_MSG_CHANNEL_EXTENDED_DATA; /* byte SSH_MSG_CHANNEL_EXTENDED_DATA */ uint32_pack_big(b->buf + 1, channel_getid()); /* uint32 recipient channel */ uint32_pack_big(b->buf + 5, 1); /* uint32 data_type_code (1 = stderr) */ uint32_pack_big(b->buf + 9, r); /* string data */ packet_put(b); buf_purge(b); return; } int packet_channel_send_windowadjust(struct buf *b) { crypto_uint32 plus; if (channel_getlen0() > CHANNEL_BUFSIZE / 2) return 1; if (channel_getlocalwindow() > CHANNEL_BUFSIZE / 2) return 1; buf_purge(b); buf_putnum8(b, SSH_MSG_CHANNEL_WINDOW_ADJUST); buf_putnum32(b, channel_getid()); plus = CHANNEL_BUFSIZE - channel_getlen0() - channel_getlocalwindow(); buf_putnum32(b, plus); channel_incrementlocalwindow(plus); packet_put(b); buf_purge(b); return 1; } void packet_channel_send_eof(struct buf *b) { if (packet.flageofsent) return; buf_purge(b); buf_putnum8(b, SSH_MSG_CHANNEL_EOF); buf_putnum32(b, channel_getid()); packet_put(b); buf_purge(b); packet.flageofsent = 1; } int packet_channel_send_close(struct buf *b, int exitsignal, int exitcode) { packet_channel_send_eof(b); if (packet.flagclosesent) return 1; if (exitsignal > 0) { buf_purge(b); buf_putnum8(b, SSH_MSG_CHANNEL_REQUEST); /* byte SSH_MSG_CHANNEL_REQUEST */ buf_putnum32(b, channel_getid()); /* uint32 recipient channel */ buf_putstring(b, "exit-signal"); /* string "exit-signal" */ buf_putnum8(b, 0); /* boolean FALSE */ buf_putstring(b, ssh_sigstr(exitsignal)); /* string signal name (without the "SIG" prefix) */ buf_putnum8(b, 0); /* boolean core dumped */ buf_putstring(b, ssh_sigstrlong(exitsignal)); /* string error message in ISO-10646 UTF-8 encoding */ buf_putstring(b, ""); /* string language tag [RFC3066] */ packet_put(b); buf_purge(b); if (!packet_sendall()) return 0; } else { buf_purge(b); buf_putnum8(b, SSH_MSG_CHANNEL_REQUEST); /* byte SSH_MSG_CHANNEL_REQUEST */ buf_putnum32(b, channel_getid()); /* uint32 recipient channel */ buf_putstring(b, "exit-status"); /* string "exit-status" */ buf_putnum8(b, 0); /* boolean FALSE */ buf_putnum32(b, exitcode); /* uint32 exit_status */ packet_put(b); buf_purge(b); if (!packet_sendall()) return 0; } buf_purge(b); buf_putnum8(b, SSH_MSG_CHANNEL_CLOSE); /* byte SSH_MSG_CHANNEL_CLOSE */ buf_putnum32(b, channel_getid()); /* uint32 recipient channel */ packet_put(b); if (!packet_sendall()) return 0; buf_purge(b); packet.flagclosesent = 1; return 1; } tinyssh-20180201/tinyssh/packet_get.c000066400000000000000000000055201322704306500174310ustar00rootroot00000000000000/* 20140126 Jan Mojzis Public domain. */ #include #include #include "byte.h" #include "e.h" #include "bug.h" #include "uint32_unpack_big.h" #include "purge.h" #include "ssh.h" #include "sshcrypto.h" #include "numtostr.h" #include "packet.h" static int packet_get_plain_(struct buf *b) { crypto_uint32 packet_length; long long len; struct buf *recvbuf = &packet.recvbuf; unsigned char *pp; long long l; pp = recvbuf->buf + PACKET_ZEROBYTES; l = recvbuf->len - PACKET_ZEROBYTES; /* we need at least 4 bytes */ if (l < 4) return 1; /* parse length */ packet_length = uint32_unpack_big(pp); if (packet_length > PACKET_LIMIT) { char buf1[NUMTOSTR_LEN]; char buf2[NUMTOSTR_LEN]; errno = EPROTO; log_f4("packet length ", numtostr(buf1, packet_length), " > PACKET_LIMIT ", numtostr(buf2, PACKET_LIMIT)); global_die(111); } if (packet_length + 4 > l) return 1; /* we have full packet */ len = packet_length; len -= recvbuf->buf[PACKET_ZEROBYTES + 4] + 1; if (len <= 0) bug_proto(); buf_put(b, recvbuf->buf + PACKET_ZEROBYTES + 5, len); byte_copy(pp, l - packet_length + 4, pp + packet_length + 4); purge(pp + l - packet_length + 4, packet_length + 4); recvbuf->len -= packet_length + 4; packet.receivepacketid++; return 1; } static int packet_get_(struct buf *b) { if (packet.flagkeys) { return sshcrypto_packet_get(b); } else { return packet_get_plain_(b); } } int packet_get(struct buf *b, crypto_uint8 x) { buf_purge(b); if (!packet_get_(b)) return 0; if (b->len <= 0) return 1; if (!packet.flagauthorized) if (packet.receivepacketid > PACKET_UNAUTHENTICATED_MESSAGES) { errno = EPROTO; log_f1("too many unauthenticated messages"); global_die(111); } switch (b->buf[0]) { case SSH_MSG_DISCONNECT: errno = 0; return 0; case SSH_MSG_IGNORE: case SSH_MSG_DEBUG: buf_purge(b); break; default: if (x && x != b->buf[0]) { char buf1[NUMTOSTR_LEN]; char buf2[NUMTOSTR_LEN]; errno = EPROTO; log_f4("expected packet type ", numtostr(buf1, x), ", got ", numtostr(buf2, b->buf[0])); global_die(111); } break; } return 1; } int packet_getall(struct buf *b, crypto_uint8 ch) { struct pollfd x; long long before; buf_purge(b); for (;;) { before = packet.recvbuf.len; if (!packet_get(b, ch)) return 0; if (b->len > 0) break; if (before != packet.recvbuf.len) continue; x.fd = 0; x.events = POLLIN | POLLERR; poll(&x, 1, -1); if (!packet_recv()) return 0; } return 1; } tinyssh-20180201/tinyssh/packet_hello.c000066400000000000000000000032221322704306500177520ustar00rootroot00000000000000/* 20140125 Jan Mojzis Public domain. */ #include "buf.h" #include "byte.h" #include "writeall.h" #include "purge.h" #include "log.h" #include "str.h" #include "getln.h" #include "e.h" #include "packet.h" /* The 'packet_hello_send()' function sends SSH hello string to the client. See RFC 4253 4.2. Protocol Version Exchange. Example: SSH-2.0-tinyssh_20160201 iX512l8j */ int packet_hello_send(void) { struct buf *b = &packet.hellosend; buf_purge(b); buf_puts(b, "SSH-2.0-tinyssh"); #ifdef VERSION buf_puts(b, "_"); buf_puts(b, VERSION); #endif buf_puts(b, " "); buf_puts(b, log_string()); buf_puts(b, "\r\n"); if (writeall(1, b->buf, b->len) == -1) return 0; b->len -= 2; /* remove "\r\n" */ b->buf[b->len] = 0; log_d2("hello: server: ", (char *)(b->buf)); purge(b->buf + b->len, b->alloc - b->len); return 1; } /* The 'packet_hello_receive()' function receives SSH hello string from the client. See RFC 4253 4.2. Protocol Version Exchange. Example: SSH-2.0-OpenSSH_6.6.1p1 Debian-4~bpo70+1 */ int packet_hello_receive(void) { int r; struct buf *b = &packet.helloreceive; r = getln(0, b->buf, b->alloc); if (r == 0) { errno = ECONNRESET; return 0; } if (r != 1) return 0; b->len = str_len((char *)b->buf); if (b->len < 6) { errno = EPROTO; return 0; } if (b->buf[b->len - 1] == '\n') --(b->len); /* remove '\n' */ if (b->buf[b->len - 1] == '\r') --(b->len); /* remove '\r' */ b->buf[b->len] = 0; if (!byte_isequal(b->buf, 4, "SSH-")) { errno = EPROTO; return 0; } log_d2("hello: client: ", (char *)b->buf); purge(b->buf + b->len, b->alloc - b->len); return 1; } tinyssh-20180201/tinyssh/packet_kex.c000066400000000000000000000077531322704306500174530ustar00rootroot00000000000000/* 20140110 Jan Mojzis Public domain. */ #include "buf.h" #include "ssh.h" #include "sshcrypto.h" #include "packetparser.h" #include "bug.h" #include "packet.h" int packet_kex_send(void) { struct buf *b = &packet.kexsend; /* send server kex_init */ buf_purge(b); buf_putnum8(b, SSH_MSG_KEXINIT); /* SSH_MSG_KEXINIT */ buf_putrandombytes(b, 16); /* cookie */ sshcrypto_kex_put(b); /* kex algorithms */ sshcrypto_key_put(b); /* server host key algorithms */ sshcrypto_cipher_put(b); /* encryption algorithms client to server */ sshcrypto_cipher_put(b); /* encryption algorithms server to client */ sshcrypto_cipher_macput(b); /* mac algorithms client to server */ sshcrypto_cipher_macput(b); /* mac algorithms server to client */ buf_putstring(b, "none"); /* compress algorithms client to server */ buf_putstring(b, "none"); /* compress algorithms server to client */ buf_putstring(b, ""); /* languages client to server */ buf_putstring(b, ""); /* languages server to client */ buf_putnum8(b, 0); /* kex first packet follows */ buf_putnum32(b, 0); /* reserved */ packet_put(b); return packet_sendall(); } int packet_kex_receive(void) { struct buf *b = &packet.kexrecv; long long pos = 0; crypto_uint8 ch; crypto_uint32 len; if (!packet_getall(b, SSH_MSG_KEXINIT)) return 0; /* parse packet */ pos = packetparser_uint8(b->buf, b->len, pos, &ch); /* SSH_MSG_KEXINIT */ if (ch != SSH_MSG_KEXINIT) bug_proto(); pos = packetparser_skip(b->buf, b->len, pos, 16); /* cookie */ pos = packetparser_uint32(b->buf, b->len, pos, &len); /* kex algorithms */ pos = packetparser_skip(b->buf, b->len, pos, len); if (!sshcrypto_kex_select(b->buf + pos - len, len, &packet.kex_guess)) return 0; pos = packetparser_uint32(b->buf, b->len, pos, &len); /* server host key algorithms */ pos = packetparser_skip(b->buf, b->len, pos, len); if (!sshcrypto_key_select(b->buf + pos - len, len)) return 0; pos = packetparser_uint32(b->buf, b->len, pos, &len); /* encryption algorithms client to server */ pos = packetparser_skip(b->buf, b->len, pos, len); if (!sshcrypto_cipher_select(b->buf + pos - len, len)) return 0; pos = packetparser_uint32(b->buf, b->len, pos, &len); /* encryption algorithms server to client */ pos = packetparser_skip(b->buf, b->len, pos, len); /* XXX assuming same as encryption algorithms client to server */ pos = packetparser_uint32(b->buf, b->len, pos, &len); /* mac algorithms client to server */ pos = packetparser_skip(b->buf, b->len, pos, len); if (!sshcrypto_cipher_macselect(b->buf + pos - len, len)) return 0; pos = packetparser_uint32(b->buf, b->len, pos, &len); /* mac algorithms server to client */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* compress algorithms client to server */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* compress algorithms server to client */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* languages client to server */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_uint32(b->buf, b->len, pos, &len); /* languages server to client */ pos = packetparser_skip(b->buf, b->len, pos, len); pos = packetparser_uint8(b->buf, b->len, pos, &ch); /* kex first packet follows */ packet.kex_packet_follows = ch; pos = packetparser_uint32(b->buf, b->len, pos, &len); /* reserved */ pos = packetparser_end(b->buf, b->len, pos); return 1; } tinyssh-20180201/tinyssh/packet_kexdh.c000066400000000000000000000114311322704306500177530ustar00rootroot00000000000000/* 20141025 Jan Mojzis Public domain. */ #include "buf.h" #include "ssh.h" #include "e.h" #include "uint32_unpack_big.h" #include "byte.h" #include "sshcrypto.h" #include "packetparser.h" #include "bug.h" #include "log.h" #include "purge.h" #include "subprocess.h" #include "packet.h" int packet_kexdh(const char *keydir, struct buf *b1, struct buf *b2) { unsigned char clientpk[sshcrypto_dh_PUBLICKEYMAX]; unsigned char serversk[sshcrypto_dh_SECRETKEYMAX]; unsigned char serverpk[sshcrypto_dh_PUBLICKEYMAX]; unsigned char sharedsecret[sshcrypto_dh_MAX]; unsigned char sm[sshcrypto_sign_MAX]; unsigned char key[sshcrypto_cipher_KEYMAX]; unsigned char hash[sshcrypto_hash_MAX]; long long pos = 0; crypto_uint8 ch; crypto_uint32 len; long long i; if (packet.kex_packet_follows && !packet.kex_guess) { buf_purge(b1); if (!packet_getall(b1, SSH_MSG_KEXDH_INIT)) bug_proto(); } buf_purge(b1); if (!packet_getall(b1, SSH_MSG_KEXDH_INIT)) bug_proto(); pos = packetparser_uint8(b1->buf, b1->len, pos, &ch); /* byte SSH_MSG_KEXDH_INIT */ if (ch != SSH_MSG_KEXDH_INIT) bug_proto(); pos = packetparser_uint32(b1->buf, b1->len, pos, &len); /* string client's public key */ if (len != sshcrypto_dh_publickeybytes) bug_proto(); pos = packetparser_copy(b1->buf, b1->len, pos, clientpk, len); pos = packetparser_end(b1->buf, b1->len, pos); buf_purge(b1); /* generate key and compute shared secret */ do { /* XXX - workaroud for bug in OpenSSH 6.5 - 6.6 */ if (sshcrypto_dh_keypair(serverpk, serversk) != 0) bug_proto(); if (sshcrypto_dh(sharedsecret, clientpk, serversk) != 0) bug_proto(); } while(sharedsecret[0] == 0 && sshcrypto_dh_publickeybytes == 32); /* create hash */ buf_purge(&packet.hashbuf); buf_putstringlen(&packet.hashbuf, packet.helloreceive.buf, packet.helloreceive.len); buf_putstringlen(&packet.hashbuf, packet.hellosend.buf, packet.hellosend.len); buf_putstringlen(&packet.hashbuf, packet.kexrecv.buf, packet.kexrecv.len); buf_putstringlen(&packet.hashbuf, packet.kexsend.buf, packet.kexsend.len); sshcrypto_buf_putsignpk(&packet.hashbuf, sshcrypto_sign_publickey); sshcrypto_buf_putdhpk(&packet.hashbuf, clientpk); sshcrypto_buf_putdhpk(&packet.hashbuf, serverpk); sshcrypto_buf_putsharedsecret(&packet.hashbuf, sharedsecret); sshcrypto_hash(hash, packet.hashbuf.buf, packet.hashbuf.len); /* session id */ if (!packet.flagrekeying) byte_copy(packet.sessionid, sshcrypto_hash_bytes, hash); packet.flagrekeying = 1; /* signature */ if (subprocess_sign(sm, sshcrypto_sign_bytes, keydir, hash, sshcrypto_hash_bytes) != 0) bug(); buf_purge(b1); buf_purge(b2); /* send server kex_ecdh_reply */ buf_putnum8(b2, SSH_MSG_KEXDH_REPLY); /* SSH_MSG_KEXDH_REPLY */ sshcrypto_buf_putsignpk(b2, sshcrypto_sign_publickey); /* public key */ sshcrypto_buf_putdhpk(b2, serverpk); /* servers's public key */ sshcrypto_buf_putsignature(b2, sm); /* signature */ packet_put(b2); /* send server newkeys */ buf_purge(b2); buf_putnum8(b2, SSH_MSG_NEWKEYS); packet_put(b2); if (!packet_sendall()) bug(); /* receive new keys */ do { buf_purge(b2); if (!packet_getall(b2, 0)) bug(); } while (b2->buf[0] != SSH_MSG_NEWKEYS); /* key derivation */ for(i = 0; i < 6; ++i) { buf_purge(b1); sshcrypto_buf_putsharedsecret(b1, sharedsecret); buf_put(b1, hash, sshcrypto_hash_bytes); buf_putnum8(b1, 'A' + i); buf_put(b1, packet.sessionid, sshcrypto_hash_bytes); sshcrypto_hash(key, b1->buf, b1->len); /* one extend */ buf_purge(b1); sshcrypto_buf_putsharedsecret(b1, sharedsecret); buf_put(b1, hash, sshcrypto_hash_bytes); buf_put(b1, key, sshcrypto_hash_bytes); sshcrypto_hash(key + sshcrypto_hash_bytes, b1->buf, b1->len); if (i == 0) byte_copy(packet.clientnonce, sshcrypto_cipher_KEYMAX, key); if (i == 1) byte_copy(packet.servernonce, sshcrypto_cipher_KEYMAX, key); if (i == 2) byte_copy(packet.clientkey, sshcrypto_cipher_KEYMAX, key); if (i == 3) byte_copy(packet.serverkey, sshcrypto_cipher_KEYMAX, key); if (i == 4) byte_copy(packet.clientmackey, sshcrypto_cipher_KEYMAX, key); if (i == 5) byte_copy(packet.servermackey, sshcrypto_cipher_KEYMAX, key); } purge(clientpk, sizeof clientpk); purge(serversk, sizeof serversk); purge(serverpk, sizeof serverpk); purge(sharedsecret, sizeof sharedsecret); purge(sm, sizeof sm); purge(key, sizeof key); purge(hash, sizeof hash); return 1; } tinyssh-20180201/tinyssh/packet_put.c000066400000000000000000000020051322704306500174550ustar00rootroot00000000000000/* 20140207 Jan Mojzis Public domain. */ #include "uint32_pack_big.h" #include "buf.h" #include "packet.h" static void packet_put_plain_(struct buf *b) { long long pos; crypto_uint8 paddinglen; struct buf *sendbuf = &packet.sendbuf; pos = sendbuf->len; /* get position */ buf_putnum32(sendbuf, 0); /* length */ buf_putnum8(sendbuf, 0); /* padding length */ buf_put(sendbuf, b->buf, b->len); /* add data */ packet.sendpacketid++; /* increment id */ /* padding */ paddinglen = 2 * 8 - ((sendbuf->len - pos) % 8); buf_putzerobytes(sendbuf, paddinglen); sendbuf->buf[pos + 4] = paddinglen; /* add packet length */ uint32_pack_big(sendbuf->buf + pos, sendbuf->len - pos - 4); } int packet_putisready(void) { return buf_ready(&packet.sendbuf, PACKET_FULLLIMIT); } void packet_put(struct buf *b) { if (packet.flagkeys) { sshcrypto_packet_put(b); } else { packet_put_plain_(b); } } tinyssh-20180201/tinyssh/packet_recv.c000066400000000000000000000013761322704306500176160ustar00rootroot00000000000000/* 20140120 Jan Mojzis Public domain. */ #include #include "e.h" #include "buf.h" #include "purge.h" #include "packet.h" int packet_recvisready(void) { return buf_ready(&packet.recvbuf, PACKET_FULLLIMIT); } int packet_recv(void) { long long r; struct buf *b = &packet.recvbuf; if (b->len < PACKET_ZEROBYTES) { b->len = PACKET_ZEROBYTES; purge(b->buf, PACKET_ZEROBYTES); } if (!packet_recvisready()) return 1; r = read(0, b->buf + b->len, PACKET_FULLLIMIT); if (r == 0) { errno = ECONNRESET; return 0; } if (r == -1) { if (errno == EINTR) return 1; if (errno == EAGAIN) return 1; if (errno == EWOULDBLOCK) return 1; return 0; } b->len += r; return 1; } tinyssh-20180201/tinyssh/packet_send.c000066400000000000000000000016171322704306500176060ustar00rootroot00000000000000/* 20140120 Jan Mojzis Public domain. */ #include #include "writeall.h" #include "e.h" #include "byte.h" #include "purge.h" #include "packet.h" int packet_sendisready(void) { return (packet.sendbuf.len > 0); } int packet_send(void) { struct buf *sendbuf = &packet.sendbuf; long long w; if (sendbuf->len <= 0) return 1; w = write(1, sendbuf->buf, sendbuf->len); if (w == -1) { if (errno == EINTR) return 1; if (errno == EAGAIN) return 1; if (errno == EWOULDBLOCK) return 1; return 0; } byte_copy(sendbuf->buf, sendbuf->len - w, sendbuf->buf + w); sendbuf->len -= w; purge(sendbuf->buf + sendbuf->len, w); return 1; } int packet_sendall(void) { if (writeall(1, packet.sendbuf.buf, packet.sendbuf.len) == -1) return 0; purge(packet.sendbuf.buf, packet.sendbuf.len); packet.sendbuf.len = 0; return 1; } tinyssh-20180201/tinyssh/packet_unimplemented.c000066400000000000000000000010621322704306500215150ustar00rootroot00000000000000/* 20150719 Jan Mojzis Public domain. */ #include "buf.h" #include "ssh.h" #include "log.h" #include "numtostr.h" #include "packet.h" int packet_unimplemented(struct buf *b) { char strnum[NUMTOSTR_LEN]; /* note that b->buf[0] contains packetid */ log_d3("packet=", numtostr(strnum, b->buf[0]),", sending SSH_MSG_UNIMPLEMENTED message"); buf_purge(b); buf_putnum8(b, SSH_MSG_UNIMPLEMENTED); /* SSH_MSG_UNIMPLEMENTED */ buf_putnum32(b, packet.receivepacketid); /* packeid */ packet_put(b); return packet_sendall(); } tinyssh-20180201/tinyssh/packetparser.c000066400000000000000000000050141322704306500200050ustar00rootroot00000000000000/* 20140210 Jan Mojzis Public domain. The 'packetparser' library is used to parse SSH packets. The 'packetparser_*' function has always information about buffer, buffer length and position in the buffer. Before parsing checks if the position is not exceeding the buffer length. If the position exceeds the buffer length, packetparser_* function immediately exits with 111 status code. */ #include "e.h" #include "uint32_unpack_big.h" #include "bug.h" #include "byte.h" #include "packetparser.h" /* Parse one-byte character. */ long long packetparser_uint8_(const char *fn, unsigned long long line, const unsigned char *buf, long long len, long long pos, crypto_uint8 *out) { if (!buf || len < 0 || len > 1073741824 || pos < 0 || pos > 1073741824 || !out) bug_inval_(fn, line); if (pos + 1 > len) bug_proto_(fn, line); *out = buf[pos]; return pos + 1; } /* Parse the unsigned 32-bit number. */ long long packetparser_uint32_(const char *fn, unsigned long long line, const unsigned char *buf, long long len, long long pos, crypto_uint32 *out) { if (!buf || len < 0 || len > 1073741824 || pos < 0 || pos > 1073741824 || !out) bug_inval_(fn, line); if (pos + 4 > len) bug_proto_(fn, line); *out = uint32_unpack_big(buf + pos); return pos + 4; } /* Parse the string and copy it. */ long long packetparser_copy_(const char *fn, unsigned long long line, const unsigned char *buf, long long len, long long pos, unsigned char *out, long long outlen) { if (!buf || len < 0 || len > 1073741824 || pos < 0 || pos > 1073741824 || !out || outlen < 0 || outlen > 1073741824) bug_inval_(fn, line); if (pos + outlen > len) bug_proto_(fn, line); byte_copy(out, outlen, buf + pos); return pos + outlen; } /* Skip 'len' bytes. */ long long packetparser_skip_(const char *fn, unsigned long long line, const unsigned char *buf, long long len, long long pos, long long skip) { if (!buf || len < 0 || len > 1073741824 || pos < 0 || pos > 1073741824 || skip < 0 || skip > 1073741824) bug_inval_(fn, line); if (pos + skip > len) bug_proto_(fn, line); return pos + skip; } /* Check if the position is end-position. */ long long packetparser_end_(const char *fn, unsigned long long line, const unsigned char *buf, long long len, long long pos) { if (!buf || len < 0 || len > 1073741824 || pos < 0 || pos > 1073741824) bug_inval_(fn, line); if (pos != len) bug_proto_(fn, line); return pos; } tinyssh-20180201/tinyssh/packetparser.h000066400000000000000000000023651322704306500200200ustar00rootroot00000000000000#ifndef _PACKETPARSER_H____ #define _PACKETPARSER_H____ #include "crypto_uint32.h" #include "crypto_uint8.h" extern long long packetparser_uint8_(const char *, unsigned long long, const unsigned char *, long long, long long, crypto_uint8 *); extern long long packetparser_uint32_(const char *, unsigned long long, const unsigned char *, long long, long long, crypto_uint32 *); extern long long packetparser_copy_(const char *, unsigned long long, const unsigned char *, long long, long long, unsigned char *, long long); extern long long packetparser_skip_(const char *, unsigned long long, const unsigned char *, long long, long long, long long); extern long long packetparser_end_(const char *, unsigned long long, const unsigned char *, long long, long long); #define packetparser_uint8(a, b, c, d) packetparser_uint8_(__FILE__, __LINE__, (a), (b), (c), (d)) #define packetparser_uint32(a, b, c, d) packetparser_uint32_(__FILE__, __LINE__, (a), (b), (c), (d)) #define packetparser_copy(a, b, c, d, e)packetparser_copy_(__FILE__, __LINE__, (a), (b), (c), (d), (e)) #define packetparser_skip(a, b, c, d) packetparser_skip_(__FILE__, __LINE__, (a), (b), (c), (d)) #define packetparser_end(a, b, c) packetparser_end_(__FILE__, __LINE__, (a), (b), (c)) #endif tinyssh-20180201/tinyssh/porttostr.c000066400000000000000000000015041322704306500174010ustar00rootroot00000000000000/* 20130604 Jan Mojzis Public domain. */ #include "crypto_uint16.h" #include "porttostr.h" /* The 'porttostr(strbuf,port)' converts 'port' from network byte order into the 0-terminated string. The 'port' length is always 2 bytes. The caller must allocate at least PORTTOSTR_LEN bytes for 'strbuf'. */ char *porttostr(char *strbuf, const unsigned char *port) { long long len = 0; crypto_uint16 num; static char staticbuf[PORTTOSTR_LEN]; if (!strbuf) strbuf = staticbuf; /* not thread-safe */ num = port[0]; num <<= 8; num |= port[1]; do { num /= 10; ++len; } while (num); strbuf += len; num = port[0]; num <<= 8; num |= port[1]; do { *--strbuf = '0' + (num % 10); num /= 10; } while (num); while (len < PORTTOSTR_LEN) strbuf[len++] = 0; return strbuf; } tinyssh-20180201/tinyssh/porttostr.h000066400000000000000000000002131322704306500174020ustar00rootroot00000000000000#ifndef _PORTTOSTR_H____ #define _PORTTOSTR_H____ #define PORTTOSTR_LEN 6 extern char *porttostr(char *, const unsigned char *); #endif tinyssh-20180201/tinyssh/purge.h000066400000000000000000000001371322704306500164510ustar00rootroot00000000000000#ifndef _PURGE_H____ #define _PURGE_H____ #include "cleanup.h" #define purge cleanup_ #endif tinyssh-20180201/tinyssh/randommod.c000066400000000000000000000006251322704306500173040ustar00rootroot00000000000000/* taken from nacl-20110221, from curvecp/randommod.c */ #include "randombytes.h" #include "randommod.h" /* XXX: current implementation is limited to n<2^55 */ long long randommod(long long n) { long long result = 0; long long j; unsigned char r[32]; if (n <= 1) return 0; randombytes(r,32); for (j = 0;j < 32;++j) result = (result * 256 + (unsigned long long) r[j]) % n; return result; } tinyssh-20180201/tinyssh/randommod.h000066400000000000000000000001421322704306500173030ustar00rootroot00000000000000#ifndef _RANDOMMOD_H____ #define _RANDOMMOD_H____ extern long long randommod(long long); #endif tinyssh-20180201/tinyssh/readall.c000066400000000000000000000010601322704306500167220ustar00rootroot00000000000000/* taken from nacl-20110221, from curvecp/load.c */ #include #include "e.h" #include "readall.h" int readall(int fd, void *xv, long long xlen) { long long r; unsigned char *x = (unsigned char *)xv; while (xlen > 0) { r = xlen; if (r > 1048576) r = 1048576; r = read(fd, x, r); if (r == 0) errno = EPROTO; if (r <= 0) { if (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK) continue; return -1; } x += r; xlen -= r; } return 0; } tinyssh-20180201/tinyssh/readall.h000066400000000000000000000001431322704306500167300ustar00rootroot00000000000000#ifndef _READALL_H____ #define _READALL_H____ extern int readall(int, void *, long long); #endif tinyssh-20180201/tinyssh/savesync.c000066400000000000000000000010021322704306500171450ustar00rootroot00000000000000/* taken from nacl-20110221, from curvecp/savesync.c */ #include #include #include #include #include "open.h" #include "savesync.h" #include "writeall.h" static int writesync(int fd,const void *x,long long xlen) { if (writeall(fd,x,xlen) == -1) return -1; return fsync(fd); } int savesync(const char *fn,const void *x,long long xlen) { int fd; int r; fd = open_write(fn); if (fd == -1) return -1; r = writesync(fd,x,xlen); close(fd); return r; } tinyssh-20180201/tinyssh/savesync.h000066400000000000000000000001511322704306500171560ustar00rootroot00000000000000#ifndef SAVESYNC_H #define SAVESYNC_H extern int savesync(const char *,const void *,long long); #endif tinyssh-20180201/tinyssh/ssh.c000066400000000000000000000031421322704306500161160ustar00rootroot00000000000000#include #include "ssh.h" #define X(e,s) if (i == e) return s; /* Return short name of signal. */ const char *ssh_sigstr(int i) { #ifdef SIGABRT X(SIGABRT, "ABRT"); #endif #ifdef SIGALRM X(SIGALRM, "ALRM"); #endif #ifdef SIGFPE X(SIGFPE, "FPE"); #endif #ifdef SIGHUP X(SIGHUP, "HUP"); #endif #ifdef SIGILL X(SIGILL, "ILL"); #endif #ifdef SIGINT X(SIGINT, "INT"); #endif #ifdef SIGKILL X(SIGKILL, "KILL"); #endif #ifdef SIGPIPE X(SIGPIPE, "PIPE"); #endif #ifdef SIGQUIT X(SIGQUIT, "QUIT"); #endif #ifdef SIGSEGV X(SIGSEGV, "SEGV"); #endif #ifdef SIGTERM X(SIGTERM, "TERM"); #endif #ifdef SIGUSR1 X(SIGUSR1, "USR1"); #endif #ifdef SIGUSR2 X(SIGUSR2, "USR2"); #endif return "UNKNOWN"; } /* Return long name of signal. */ const char *ssh_sigstrlong(int i) { #ifdef SIGABRT X(SIGABRT, "SIGABRT (abort)") #endif #ifdef SIGALRM X(SIGALRM, "SIGALRM (alarm clock)") #endif #ifdef SIGFPE X(SIGFPE, "SIGFPE (floating-point exception)") #endif #ifdef SIGILL X(SIGILL, "SIGILL (illegal instruction)") #endif #ifdef SIGINT X(SIGINT, "SIGINT (interrupt)") #endif #ifdef SIGKILL X(SIGKILL, "SIGKILL (kill, unblockable)") #endif #ifdef SIGPIPE X(SIGPIPE, "SIGPIPE (broken pipe)") #endif #ifdef SIGQUIT X(SIGQUIT, "SIGQUIT (quit)") #endif #ifdef SIGSEGV X(SIGSEGV, "SIGSEGV (segment violation)") #endif #ifdef SIGTERM X(SIGTERM, "SIGTERM (termination)") #endif #ifdef SIGUSR1 X(SIGUSR1, "SIGUSR1 (user defined signal 1)") #endif #ifdef SIGUSR2 X(SIGUSR2, "SIGUSR2 (user defined signal 2)") #endif return "UNKNOWN SIGNAL"; } tinyssh-20180201/tinyssh/ssh.h000066400000000000000000000103361322704306500161260ustar00rootroot00000000000000#ifndef _SSH_H____ #define _SSH_H____ extern const char *ssh_sigstr(int); extern const char *ssh_sigstrlong(int); #define SSH_MSG_DISCONNECT 1 /* 0x1 */ #define SSH_MSG_IGNORE 2 /* 0x2 */ #define SSH_MSG_UNIMPLEMENTED 3 /* 0x3 */ #define SSH_MSG_DEBUG 4 /* 0x4 */ #define SSH_MSG_SERVICE_REQUEST 5 /* 0x5 */ #define SSH_MSG_SERVICE_ACCEPT 6 /* 0x6 */ #define SSH_MSG_KEXINIT 20 /* 0x14 */ #define SSH_MSG_NEWKEYS 21 /* 0x15 */ #define SSH_MSG_KEXDH_INIT 30 /* 0x1e */ #define SSH_MSG_KEXDH_REPLY 31 /* 0x1f */ #define SSH_MSG_KEX_DH_GEX_REQUEST 30 /* 0x1e */ #define SSH_MSG_KEX_DH_GEX_GROUP 31 /* 0x1f */ #define SSH_MSG_KEX_DH_GEX_INIT 32 /* 0x20 */ #define SSH_MSG_KEX_DH_GEX_REPLY 33 /* 0x21 */ #define SSH_MSG_KEXRSA_PUBKEY 30 /* 0x1e */ #define SSH_MSG_KEXRSA_SECRET 31 /* 0x1f */ #define SSH_MSG_KEXRSA_DONE 32 /* 0x20 */ #define SSH_MSG_USERAUTH_REQUEST 50 /* 0x32 */ #define SSH_MSG_USERAUTH_FAILURE 51 /* 0x33 */ #define SSH_MSG_USERAUTH_SUCCESS 52 /* 0x34 */ #define SSH_MSG_USERAUTH_BANNER 53 /* 0x35 */ #define SSH_MSG_USERAUTH_PK_OK 60 /* 0x3c */ #define SSH_MSG_USERAUTH_PASSWD_CHANGEREQ 60 /* 0x3c */ #define SSH_MSG_USERAUTH_INFO_REQUEST 60 /* 0x3c */ #define SSH_MSG_USERAUTH_INFO_RESPONSE 61 /* 0x3d */ #define SSH_MSG_GLOBAL_REQUEST 80 /* 0x50 */ #define SSH_MSG_REQUEST_SUCCESS 81 /* 0x51 */ #define SSH_MSG_REQUEST_FAILURE 82 /* 0x52 */ #define SSH_MSG_CHANNEL_OPEN 90 /* 0x5a */ #define SSH_MSG_CHANNEL_OPEN_CONFIRMATION 91 /* 0x5b */ #define SSH_MSG_CHANNEL_OPEN_FAILURE 92 /* 0x5c */ #define SSH_MSG_CHANNEL_WINDOW_ADJUST 93 /* 0x5d */ #define SSH_MSG_CHANNEL_DATA 94 /* 0x5e */ #define SSH_MSG_CHANNEL_EXTENDED_DATA 95 /* 0x5f */ #define SSH_MSG_CHANNEL_EOF 96 /* 0x60 */ #define SSH_MSG_CHANNEL_CLOSE 97 /* 0x61 */ #define SSH_MSG_CHANNEL_REQUEST 98 /* 0x62 */ #define SSH_MSG_CHANNEL_SUCCESS 99 /* 0x63 */ #define SSH_MSG_CHANNEL_FAILURE 100 /* 0x64 */ #define SSH_MSG_USERAUTH_GSSAPI_RESPONSE 60 #define SSH_MSG_USERAUTH_GSSAPI_TOKEN 61 #define SSH_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE 63 #define SSH_MSG_USERAUTH_GSSAPI_ERROR 64 #define SSH_MSG_USERAUTH_GSSAPI_ERRTOK 65 #define SSH_MSG_USERAUTH_GSSAPI_MIC 66 #define SSH_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT 1 #define SSH_DISCONNECT_PROTOCOL_ERROR 2 #define SSH_DISCONNECT_KEY_EXCHANGE_FAILED 3 #define SSH_DISCONNECT_RESERVED 4 #define SSH_DISCONNECT_MAC_ERROR 5 #define SSH_DISCONNECT_COMPRESSION_ERROR 6 #define SSH_DISCONNECT_SERVICE_NOT_AVAILABLE 7 #define SSH_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED 8 #define SSH_DISCONNECT_HOST_KEY_NOT_VERIFIABLE 9 #define SSH_DISCONNECT_CONNECTION_LOST 10 #define SSH_DISCONNECT_BY_APPLICATION 11 #define SSH_DISCONNECT_TOO_MANY_CONNECTIONS 12 #define SSH_DISCONNECT_AUTH_CANCELLED_BY_USER 13 #define SSH_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE 14 #define SSH_DISCONNECT_ILLEGAL_USER_NAME 15 #define SSH_OPEN_ADMINISTRATIVELY_PROHIBITED 1 #define SSH_OPEN_CONNECT_FAILED 2 #define SSH_OPEN_UNKNOWN_CHANNEL_TYPE 3 #define SSH_OPEN_RESOURCE_SHORTAGE 4 #endif tinyssh-20180201/tinyssh/sshcrypto.c000066400000000000000000000032451322704306500173630ustar00rootroot00000000000000/* 20140225 Jan Mojzis Public domain. */ #include "purge.h" #include "bug.h" #include "str.h" #include "sshcrypto.h" /* Initialize and check *MAX constants */ void sshcrypto_init(void) { long long i; /* kex */ for (i = 0; sshcrypto_kexs[i].name; ++i) { if (sshcrypto_kexs[i].dh_publickeybytes > sshcrypto_dh_PUBLICKEYMAX) bug_inval(); if (sshcrypto_kexs[i].dh_secretkeybytes > sshcrypto_dh_SECRETKEYMAX) bug_inval(); if (sshcrypto_kexs[i].dh_bytes > sshcrypto_dh_MAX) bug_inval(); if (sshcrypto_kexs[i].hash_bytes > sshcrypto_hash_MAX) bug_inval(); } /* key */ for (i = 0; sshcrypto_keys[i].name; ++i) { if (sshcrypto_keys[i].sign_publickeybytes > sshcrypto_sign_PUBLICKEYMAX) bug_inval(); if (sshcrypto_keys[i].sign_secretkeybytes > sshcrypto_sign_SECRETKEYMAX) bug_inval(); if (sshcrypto_keys[i].sign_bytes > sshcrypto_sign_MAX) bug_inval(); if (str_len(sshcrypto_keys[i].name) + 1 > sshcrypto_sign_NAMEMAX) bug_inval(); } /* cipher */ for (i = 0; sshcrypto_ciphers[i].name; ++i) { if (sshcrypto_ciphers[i].stream_keybytes > sshcrypto_cipher_KEYMAX) bug_inval(); } } /* Remove sentitive data from allocated memory. */ void sshcrypto_purge(void) { long long i; /* kex */ for (i = 0; sshcrypto_kexs[i].name; ++i) { purge(&sshcrypto_kexs[i], sizeof(struct sshcrypto_kex)); } /* key */ for (i = 0; sshcrypto_keys[i].name; ++i) { purge(&sshcrypto_keys[i], sizeof(struct sshcrypto_key)); } /* cipher */ for (i = 0; sshcrypto_ciphers[i].name; ++i) { purge(&sshcrypto_ciphers[i], sizeof(struct sshcrypto_cipher)); } } tinyssh-20180201/tinyssh/sshcrypto.h000066400000000000000000000176661322704306500174040ustar00rootroot00000000000000#ifndef _SSHCRYPTO_H____ #define _SSHCRYPTO_H____ #include "buf.h" #include "crypto.h" /* crypto type */ #define sshcrypto_TYPEOLDCRYPTO 0x1 /* ecdsa-sha2-nistp256, ecdh-sha2-nistp256, aes256-ctr, hmac-sha2-256 */ #define sshcrypto_TYPENEWCRYPTO 0x2 /* ssh-ed25519, curve25519-sha256@libssh.org, chacha20-poly1305@openssh.com */ #define sshcrypto_TYPEPQCRYPTO 0x4 /* TODO, TODO, chacha20-poly1305@openssh.com */ /* kex - dh + hash */ #define sshcrypto_dh_PUBLICKEYMAX 64 + 1 /* space for nistp256 pk */ #define sshcrypto_dh_SECRETKEYMAX 32 /* space for nistp256/curve25519 sk */ #define sshcrypto_dh_MAX 32 /* space for nistp256/curve25519 k */ #define sshcrypto_hash_MAX 64 /* space for sha512 */ struct sshcrypto_kex { const char *name; int (*dh)(unsigned char *, unsigned char *, unsigned char *); int (*dh_keypair)(unsigned char *, unsigned char *); long long dh_publickeybytes; long long dh_secretkeybytes; long long dh_bytes; int (*hash)(unsigned char *, const unsigned char *, unsigned long long); long long hash_bytes; void (*buf_putsharedsecret)(struct buf *, const unsigned char *); void (*buf_putdhpk)(struct buf *, const unsigned char *); unsigned int cryptotype; int flagenabled; }; extern struct sshcrypto_kex sshcrypto_kexs[]; extern const char *sshcrypto_kex_name; extern int (*sshcrypto_dh)(unsigned char *, unsigned char *, unsigned char *); extern int (*sshcrypto_dh_keypair)(unsigned char *, unsigned char *); extern long long sshcrypto_dh_publickeybytes; extern long long sshcrypto_dh_secretkeybytes; extern long long sshcrypto_dh_bytes; extern int (*sshcrypto_hash)(unsigned char *, const unsigned char *, unsigned long long); extern long long sshcrypto_hash_bytes; extern void (*sshcrypto_buf_putsharedsecret)(struct buf *, const unsigned char *); extern void (*sshcrypto_buf_putdhpk)(struct buf *, const unsigned char *); extern int sshcrypto_kex_select(const unsigned char *, long long, crypto_uint8 *); extern void sshcrypto_kex_put(struct buf *); #if defined(crypto_scalarmult_curve25519_BYTES) && defined(crypto_hash_sha256_BYTES) /* sshcrypto_kex_curve25519.c */ extern int curve25519_dh(unsigned char *, unsigned char *, unsigned char *); extern int curve25519_keypair(unsigned char *, unsigned char *); extern void curve25519_putdhpk(struct buf *, const unsigned char *); extern void curve25519_putsharedsecret(struct buf *, const unsigned char *); #endif #if defined(crypto_scalarmult_nistp256_BYTES) && defined(crypto_hash_sha256_BYTES) /* sshcrypto_kex_nistp256.c */ extern int nistp256_dh(unsigned char *, unsigned char *, unsigned char *); extern int nistp256_keypair(unsigned char *, unsigned char *); extern void nistp256_putdhpk(struct buf *, const unsigned char *); extern void nistp256_putsharedsecret(struct buf *, const unsigned char *); #endif /* key - sign */ #define sshcrypto_sign_PUBLICKEYMAX 64 /* space for nistp256ecdsa pk */ #define sshcrypto_sign_SECRETKEYMAX 64 /* space for nistp256ecdsa sk */ #define sshcrypto_sign_MAX 64 /* space for nistp256ecdsa/ed25519 sig */ #define sshcrypto_sign_BASE64PUBLICKEYMAX 141 /* space for nistp256ecdsa in base64 + 0-terminator */ #define sshcrypto_sign_BASE64PUBLICKEYMIN 69 /* space for ed25519 in base64 + 0-terminator */ #define sshcrypto_sign_NAMEMAX 20 /* space for string ecdsa-sha2-nistp256 + 0-terminator */ struct sshcrypto_key { const char *name; int (*sign)(unsigned char *,unsigned long long *,const unsigned char *,unsigned long long,const unsigned char *); int (*sign_open)(unsigned char *,unsigned long long *,const unsigned char *,unsigned long long,const unsigned char *); int (*sign_keypair)(unsigned char *, unsigned char *); unsigned char sign_publickey[sshcrypto_sign_PUBLICKEYMAX]; long long sign_publickeybytes; long long sign_secretkeybytes; long long sign_bytes; const char *sign_publickeyfilename; const char *sign_secretkeyfilename; unsigned int cryptotype; int sign_flagserver; int sign_flagclient; void (*buf_putsignature)(struct buf *, const unsigned char *); void (*buf_putsignpk)(struct buf *, const unsigned char *); void (*buf_putsignpkbase64)(struct buf *, const unsigned char *); int (*parsesignature)(unsigned char *, const unsigned char *, long long); int (*parsesignpk)(unsigned char *, const unsigned char *, long long); }; extern struct sshcrypto_key sshcrypto_keys[]; extern const char *sshcrypto_key_name; extern int (*sshcrypto_sign)(unsigned char *,unsigned long long *,const unsigned char *,unsigned long long,const unsigned char *); extern unsigned char *sshcrypto_sign_publickey; extern long long sshcrypto_sign_publickeybytes; extern long long sshcrypto_sign_secretkeybytes; extern long long sshcrypto_sign_bytes; extern const char *sshcrypto_sign_secretkeyfilename; extern void (*sshcrypto_buf_putsignature)(struct buf *, const unsigned char *); extern void (*sshcrypto_buf_putsignpk)(struct buf *, const unsigned char *); extern int sshcrypto_key_select(const unsigned char *, long long); extern void sshcrypto_key_put(struct buf *); #ifdef crypto_sign_ed25519_BYTES /* sshcrypto_key_ed25519.c */ extern void ed25519_putsignature(struct buf *, const unsigned char *); extern void ed25519_putsignpk(struct buf *, const unsigned char *); extern void ed25519_putsignpkbase64(struct buf *, const unsigned char *); extern int ed25519_parsesignpk(unsigned char *, const unsigned char *, long long); extern int ed25519_parsesignature(unsigned char *, const unsigned char *, long long); #endif #ifdef crypto_sign_nistp256ecdsa_BYTES /* sshcrypto_key_nistp256ecdsa.c */ extern void nistp256ecdsa_putsignature(struct buf *, const unsigned char *); extern void nistp256ecdsa_putsignpk(struct buf *, const unsigned char *); extern void nistp256ecdsa_putsignpkbase64(struct buf *, const unsigned char *); extern int nistp256ecdsa_parsesignpk(unsigned char *, const unsigned char *, long long); extern int nistp256ecdsa_parsesignature(unsigned char *, const unsigned char *, long long); #endif /* cipher + mac */ #define sshcrypto_cipher_KEYMAX 128 /* space for 2 x sha512 */ struct sshcrypto_cipher { const char *name; int (*stream_xor)(unsigned char *,const unsigned char *,unsigned long long,const unsigned char *,const unsigned char *); int (*auth)(unsigned char *,const unsigned char *,unsigned long long,const unsigned char *); long long stream_keybytes; long long cipher_blockbytes; long long auth_bytes; void (*packet_put)(struct buf *); int (*packet_get)(struct buf *); unsigned int cryptotype; int flagenabled; }; extern struct sshcrypto_cipher sshcrypto_ciphers[]; extern const char *sshcrypto_cipher_name; extern int (*sshcrypto_stream_xor)(unsigned char *,const unsigned char *,unsigned long long,const unsigned char *,const unsigned char *); extern int (*sshcrypto_auth)(unsigned char *,const unsigned char *,unsigned long long,const unsigned char *); extern long long sshcrypto_stream_keybytes; extern long long sshcrypto_cipher_blockbytes; extern long long sshcrypto_auth_bytes; extern void (*sshcrypto_packet_put)(struct buf *); extern int (*sshcrypto_packet_get)(struct buf *); extern int sshcrypto_cipher_select(const unsigned char *, long long); extern int sshcrypto_cipher_macselect(const unsigned char *, long long); extern void sshcrypto_cipher_put(struct buf *); extern void sshcrypto_cipher_macput(struct buf *b); /* from sshcrypto_cipher_chachapoly.c */ extern void chachapoly_packet_put(struct buf *); extern int chachapoly_packet_get(struct buf *); /* from sshcrypto_cipher_aesctr.c */ extern void aesctr_packet_put(struct buf *); extern int aesctr_packet_get(struct buf *); /* from sshcrypto_cipher_aesctr256.c */ extern int aesctr256_xor(unsigned char *, const unsigned char *, unsigned long long, const unsigned char *, const unsigned char *); /* init/purge */ extern void sshcrypto_init(void); extern void sshcrypto_purge(void); #endif tinyssh-20180201/tinyssh/sshcrypto_cipher.c000066400000000000000000000102701322704306500207110ustar00rootroot00000000000000/* 20140207 Jan Mojzis Public domain. */ #include "crypto.h" #include "stringparser.h" #include "e.h" #include "log.h" #include "bug.h" #include "str.h" #include "byte.h" #include "packet.h" #include "sshcrypto.h" struct sshcrypto_cipher sshcrypto_ciphers[] = { #if defined(crypto_stream_chacha20_KEYBYTES) && defined(crypto_onetimeauth_poly1305_BYTES) { "chacha20-poly1305@openssh.com", crypto_stream_chacha20_xor, crypto_onetimeauth_poly1305, crypto_stream_chacha20_KEYBYTES * 2, 8, crypto_onetimeauth_poly1305_BYTES, chachapoly_packet_put, chachapoly_packet_get, sshcrypto_TYPENEWCRYPTO | sshcrypto_TYPEPQCRYPTO, 0 }, #endif #if defined(crypto_core_aes256encrypt_KEYBYTES) && defined(crypto_auth_hmacsha256_BYTES) { "aes256-ctr", aesctr256_xor, crypto_auth_hmacsha256, crypto_core_aes256encrypt_KEYBYTES, 16, crypto_auth_hmacsha256_BYTES, aesctr_packet_put, aesctr_packet_get, sshcrypto_TYPEOLDCRYPTO, 0 }, #endif { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; const char *sshcrypto_cipher_name = 0; int (*sshcrypto_stream_xor)(unsigned char *, const unsigned char *, unsigned long long, const unsigned char *, const unsigned char *) = 0; int (*sshcrypto_stream_beforenm)(unsigned char *, const unsigned char *) = 0; int (*sshcrypto_auth)(unsigned char *, const unsigned char *, unsigned long long, const unsigned char *) = 0; long long sshcrypto_stream_keybytes = 0; long long sshcrypto_cipher_blockbytes = 0; long long sshcrypto_auth_bytes = 0; void (*sshcrypto_packet_put)(struct buf *) = 0; int (*sshcrypto_packet_get)(struct buf *) = 0; int sshcrypto_cipher_select(const unsigned char *buf, long long len) { long long i, pos = 0; unsigned char *x; long long xlen; if (sshcrypto_cipher_name) return 1; if (buf[len] != 0) bug_proto(); log_d2("kex: client: cipher algorithms: ", (char *)buf); for (;;) { pos = stringparser(buf, len, pos, &x, &xlen); if (!pos) break; for (i = 0; sshcrypto_ciphers[i].name; ++i) { if (!sshcrypto_ciphers[i].flagenabled) continue; if (str_equaln((char *)x, xlen, sshcrypto_ciphers[i].name)) { sshcrypto_cipher_name = sshcrypto_ciphers[i].name; sshcrypto_stream_xor = sshcrypto_ciphers[i].stream_xor; sshcrypto_auth = sshcrypto_ciphers[i].auth; sshcrypto_stream_keybytes = sshcrypto_ciphers[i].stream_keybytes; sshcrypto_cipher_blockbytes = sshcrypto_ciphers[i].cipher_blockbytes; sshcrypto_auth_bytes = sshcrypto_ciphers[i].auth_bytes; sshcrypto_packet_get = sshcrypto_ciphers[i].packet_get; sshcrypto_packet_put = sshcrypto_ciphers[i].packet_put; log_d2("kex: cipher selected: ", sshcrypto_ciphers[i].name); return 1; } } } log_d2("kex: cipher not available ", (char *)buf); errno = EPROTO; return 0; } int sshcrypto_cipher_macselect(const unsigned char *buf, long long len) { if (buf[len] != 0) bug_proto(); log_d2("kex: client: mac algorithms: ", (char *)buf); log_d1("kex: mac selected: hmac-sha2-256 (ignored for chacha20-poly1305@openssh.com)"); return 1; } void sshcrypto_cipher_put(struct buf *b) { crypto_uint32 len = 0; long long i, j, start; j = 0; for (i = 0; sshcrypto_ciphers[i].name; ++i) { if (!sshcrypto_ciphers[i].flagenabled) continue; if (j++) ++len; len += str_len(sshcrypto_ciphers[i].name); } buf_putnum32(b, len); start = b->len; j = 0; for (i = 0; sshcrypto_ciphers[i].name; ++i) { if (!sshcrypto_ciphers[i].flagenabled) continue; if (j++) buf_puts(b, ","); buf_puts(b, sshcrypto_ciphers[i].name); } b->buf[b->len] = 0; log_d2("kex: server: cipher algorithms: ", (char *)b->buf + start); } /* XXX we support only hmac-sha2-256 with aes256-ctr for chacha20-poly1305@openssh.com is hmac-sha2-256 string ignored */ void sshcrypto_cipher_macput(struct buf *b) { buf_putstring(b, "hmac-sha2-256"); log_d1("kex: server: mac algorithms: hmac-sha2-256"); } tinyssh-20180201/tinyssh/sshcrypto_cipher_aesctr.c000066400000000000000000000106341322704306500222560ustar00rootroot00000000000000/* 20140207 Jan Mojzis Public domain. */ #include "buf.h" #include "uint32_pack_big.h" #include "uint32_unpack_big.h" #include "randommod.h" #include "packet.h" #include "byte.h" #include "bug.h" #include "purge.h" #include "e.h" #include "crypto_verify_32.h" #include "log.h" #include "sshcrypto.h" #define BB sshcrypto_cipher_blockbytes #define AB sshcrypto_auth_bytes void aesctr_packet_put(struct buf *b) { long long pos; crypto_uint8 paddinglen; struct buf *sendbuf = &packet.sendbuf; pos = sendbuf->len; /* get position */ buf_putnum32(sendbuf, 0); /* packet id, for MAC */ buf_putnum32(sendbuf, 0); /* packet length */ buf_putnum8(sendbuf, 0); /* padding length */ buf_put(sendbuf, b->buf, b->len); /* add data */ /* add padding */ paddinglen = 2 * BB - ((sendbuf->len - pos - 4) % BB); paddinglen += randommod(2) * BB; buf_putpadding(sendbuf, paddinglen); /* add space for mac */ buf_putzerobytes(sendbuf, AB); /* add packet ID */ uint32_pack_big(sendbuf->buf + pos, packet.sendpacketid++); /* add packet length */ uint32_pack_big(sendbuf->buf + pos + 4, sendbuf->len - pos - AB - 4 - 4); /* add padding length*/ sendbuf->buf[pos + 8] = paddinglen; /* get mac */ if (sshcrypto_auth( sendbuf->buf + sendbuf->len - AB, /* a */ sendbuf->buf + pos, /* m */ sendbuf->len - pos - AB, /* mlen */ packet.servermackey /* k */ ) != 0) bug_proto(); /* encrypt */ if (sshcrypto_stream_xor( sendbuf->buf + pos + 4, /* c */ sendbuf->buf + pos + 4, /* m */ sendbuf->len - pos - 4 - AB, /* mlen */ packet.servernonce, /* n */ packet.serverkey /* k */ ) != 0) bug_proto(); /* remove packet id */ byte_copy(sendbuf->buf + pos, sendbuf->len - pos - 4, sendbuf->buf + pos + 4); sendbuf->len -= 4; /* cleanup */ purge(sendbuf->buf + sendbuf->len, 4); } #define ZB PACKET_ZEROBYTES int aesctr_packet_get(struct buf *b) { long long len; struct buf *recvbuf = &packet.recvbuf; unsigned char *pp; long long l; /* we need at least one block */ if (recvbuf->len - ZB < BB) { packet.packet_length = 0; return 1; } /* decrypt first block */ if (packet.packet_length == 0) { if (sshcrypto_stream_xor( recvbuf->buf + ZB, /* c */ recvbuf->buf + ZB, /* m */ BB, /* mlen */ packet.clientnonce, /* n */ packet.clientkey /* k */ ) != 0) bug_proto(); packet.packet_length = uint32_unpack_big(recvbuf->buf + ZB); } if (packet.packet_length > PACKET_LIMIT) bug_proto(); if (packet.packet_length + 4 + AB > recvbuf->len - ZB) return 1; /* decrypt and check MAC */ uint32_pack_big(recvbuf->buf + ZB - 4, packet.receivepacketid++); if (sshcrypto_stream_xor( recvbuf->buf + ZB + BB, /* c */ recvbuf->buf + ZB + BB, /* m */ packet.packet_length + 4 - BB, /* mlen */ packet.clientnonce, /* n */ packet.clientkey /* k */ ) != 0) bug_proto(); if (sshcrypto_auth( recvbuf->buf, /* a */ recvbuf->buf + ZB - 4, /* m */ packet.packet_length + 8, /* mlen */ packet.clientmackey /* k */ ) != 0) bug_proto(); if (crypto_verify_32(recvbuf->buf, recvbuf->buf + ZB + packet.packet_length + 4) != 0) bug_proto(); len = packet.packet_length; len -= recvbuf->buf[ZB + 4] + 1; if (len <= 0) bug_proto(); buf_put(b, recvbuf->buf + ZB + 5, len); pp = recvbuf->buf + ZB; l = recvbuf->len - ZB; byte_copy(pp, l - packet.packet_length + AB + 4, pp + packet.packet_length + AB + 4); purge(pp + l - packet.packet_length + AB + 4, packet.packet_length + AB + 4); recvbuf->len -= packet.packet_length + AB + 4; packet.packet_length = 0; purge(recvbuf->buf, ZB); return 1; } tinyssh-20180201/tinyssh/sshcrypto_cipher_aesctr256.c000066400000000000000000000013751322704306500225150ustar00rootroot00000000000000#include "crypto.h" #include "sshcrypto.h" #if defined(crypto_core_aes256encrypt_KEYBYTES) int aesctr256_xor(unsigned char *c, const unsigned char *m, unsigned long long l, const unsigned char *nn, const unsigned char *k) { unsigned int u; unsigned char x[16]; unsigned char *n = (unsigned char *)nn; /* XXX */ long long i; if (l % 16) return -1; while (l >= 16) { crypto_core_aes256encrypt(x, n, k, 0); for (i = 0; i < 16; ++i) c[i] = m[i] ^ x[i]; u = 1; for (i = 15; i >= 0; --i) { u += (unsigned int) n[i]; n[i] = u; u >>= 8; } l -= 16; m += 16; c += 16; } for (i = 0; i < sizeof x; ++i) x[i] = 0; return 0; } #endif tinyssh-20180201/tinyssh/sshcrypto_cipher_chachapoly.c000066400000000000000000000075201322704306500231100ustar00rootroot00000000000000/* 20140207 Jan Mojzis Public domain. */ #include "uint32_pack_big.h" #include "uint32_unpack_big.h" #include "crypto_verify_16.h" #include "randommod.h" #include "e.h" #include "byte.h" #include "purge.h" #include "sshcrypto.h" #include "bug.h" #include "packet.h" #define BB sshcrypto_cipher_blockbytes #define AB sshcrypto_auth_bytes #define ZB 60 void chachapoly_packet_put(struct buf *b) { long long pos; crypto_uint8 paddinglen; struct buf *sendbuf = &packet.sendbuf; unsigned char n[8]; pos = sendbuf->len; /* get position */ buf_putzerobytes(sendbuf, ZB); /* zero bytes */ buf_putnum32(sendbuf, 0); /* the length */ buf_putnum8(sendbuf, 0); /* padding length */ buf_put(sendbuf, b->buf, b->len); /* add data */ /* pack nonce */ byte_zero(n, 4); uint32_pack_big(n + 4, packet.sendpacketid++); /* padding */ paddinglen = 2 * BB - ((sendbuf->len - pos - ZB) % BB) + 4; paddinglen += randommod(2) * BB; buf_putpadding(sendbuf, paddinglen); sendbuf->buf[pos + ZB + 4] = paddinglen; /* space for mac */ buf_putzerobytes(sendbuf, AB); /* encrypt data */ sshcrypto_stream_xor(sendbuf->buf + pos, sendbuf->buf + pos, sendbuf->len - pos - AB, n, packet.serverkey); /* add packet length */ uint32_pack_big(sendbuf->buf + pos + ZB, sendbuf->len - pos - AB - 4 - ZB); /* encrypt the length */ sshcrypto_stream_xor(sendbuf->buf + pos + ZB, sendbuf->buf + pos + ZB, 4, n, packet.serverkey + 32); purge(n, sizeof n); /* authenticate data */ sshcrypto_auth(sendbuf->buf + sendbuf->len - AB, sendbuf->buf + pos + ZB, sendbuf->len - AB - pos - ZB, sendbuf->buf + pos); /* remove zerobytes */ byte_copy(sendbuf->buf + pos, sendbuf->len - pos - ZB, sendbuf->buf + pos + ZB); sendbuf->len -= ZB; purge(sendbuf->buf + sendbuf->len, ZB); } int chachapoly_packet_get(struct buf *b) { long long len; struct buf *recvbuf = &packet.recvbuf; unsigned char buf[16]; unsigned char *pp; long long l; unsigned char n[8]; /* we need at least 4 bytes */ if (recvbuf->len - PACKET_ZEROBYTES < 4) { packet.packet_length = 0; return 1; } /* parse length */ byte_zero(n, 4); uint32_pack_big(n + 4, packet.receivepacketid); if (packet.packet_length == 0) { sshcrypto_stream_xor(buf, recvbuf->buf + PACKET_ZEROBYTES, 4, n, packet.clientkey + 32); packet.packet_length = uint32_unpack_big(buf); } if (packet.packet_length > PACKET_LIMIT) bug_proto(); if (packet.packet_length + AB + 4 > recvbuf->len - PACKET_ZEROBYTES) return 1; /* verify and decrypt packet */ byte_zero(recvbuf->buf, 32); sshcrypto_stream_xor(recvbuf->buf, recvbuf->buf, 32, n, packet.clientkey); sshcrypto_auth(buf, recvbuf->buf + PACKET_ZEROBYTES, packet.packet_length + 4, recvbuf->buf); if (crypto_verify_16(buf, recvbuf->buf + PACKET_ZEROBYTES + packet.packet_length + 4) != 0) bug_proto(); purge(buf, sizeof buf); sshcrypto_stream_xor(recvbuf->buf + 4, recvbuf->buf + 4, packet.packet_length + PACKET_ZEROBYTES, n, packet.clientkey); purge(n, sizeof n); /* process packet */ len = packet.packet_length; len -= recvbuf->buf[PACKET_ZEROBYTES + 4] + 1; if (len <= 0) bug_proto(); buf_put(b, recvbuf->buf + PACKET_ZEROBYTES + 5, len); pp = recvbuf->buf + PACKET_ZEROBYTES; l = recvbuf->len - PACKET_ZEROBYTES; byte_copy(pp, l - packet.packet_length + AB + 4, pp + packet.packet_length + AB + 4); purge(pp + l - packet.packet_length + AB + 4, packet.packet_length + AB + 4); recvbuf->len -= packet.packet_length + AB + 4; /* packetid */ packet.receivepacketid++; /* cleanup */ packet.packet_length = 0; purge(recvbuf->buf, PACKET_ZEROBYTES); return 1; } tinyssh-20180201/tinyssh/sshcrypto_kex.c000066400000000000000000000115141322704306500202300ustar00rootroot00000000000000/* 20140203 Jan Mojzis Public domain. */ #include "crypto.h" #include "stringparser.h" #include "str.h" #include "byte.h" #include "e.h" #include "log.h" #include "bug.h" #include "sshcrypto.h" struct sshcrypto_kex sshcrypto_kexs[] = { #if defined(crypto_scalarmult_curve25519_BYTES) && defined(crypto_hash_sha256_BYTES) { "curve25519-sha256@libssh.org", curve25519_dh, curve25519_keypair, crypto_scalarmult_curve25519_BYTES, /* pk */ crypto_scalarmult_curve25519_SCALARBYTES, /* sk */ crypto_scalarmult_curve25519_BYTES, /* k */ crypto_hash_sha256, crypto_hash_sha256_BYTES, curve25519_putsharedsecret, curve25519_putdhpk, sshcrypto_TYPENEWCRYPTO, 0, }, { "curve25519-sha256", curve25519_dh, curve25519_keypair, crypto_scalarmult_curve25519_BYTES, /* pk */ crypto_scalarmult_curve25519_SCALARBYTES, /* sk */ crypto_scalarmult_curve25519_BYTES, /* k */ crypto_hash_sha256, crypto_hash_sha256_BYTES, curve25519_putsharedsecret, curve25519_putdhpk, sshcrypto_TYPENEWCRYPTO, 0, }, #endif #if defined(crypto_scalarmult_nistp256_BYTES) && defined(crypto_hash_sha256_BYTES) { "ecdh-sha2-nistp256", nistp256_dh, nistp256_keypair, crypto_scalarmult_nistp256_BYTES + 1, /* pk */ crypto_scalarmult_nistp256_SCALARBYTES, /* sk */ crypto_scalarmult_nistp256_BYTES / 2, /* k */ crypto_hash_sha256, crypto_hash_sha256_BYTES, nistp256_putsharedsecret, nistp256_putdhpk, sshcrypto_TYPEOLDCRYPTO, 0, }, #endif #if 0 { "pqkexTODO", curve25519_dh, curve25519_keypair, crypto_scalarmult_curve25519_BYTES, /* pk */ crypto_scalarmult_curve25519_SCALARBYTES, /* sk */ crypto_scalarmult_curve25519_BYTES, /* k */ crypto_hash_sha256, crypto_hash_sha256_BYTES, curve25519_putsharedsecret, curve25519_putdhpk, sshcrypto_TYPEPQCRYPTO, 0, }, #endif { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; const char *sshcrypto_kex_name = 0; int (*sshcrypto_dh)(unsigned char *, unsigned char *, unsigned char *) = 0; int (*sshcrypto_dh_keypair)(unsigned char *, unsigned char *) = 0; long long sshcrypto_dh_publickeybytes = 0; long long sshcrypto_dh_secretkeybytes = 0; long long sshcrypto_dh_bytes = 0; int (*sshcrypto_hash)(unsigned char *, const unsigned char *, unsigned long long) = 0; long long sshcrypto_hash_bytes = 0; void (*sshcrypto_buf_putsharedsecret)(struct buf *, const unsigned char *) = 0; void (*sshcrypto_buf_putdhpk)(struct buf *, const unsigned char *) = 0; int sshcrypto_kex_select(const unsigned char *buf, long long len, crypto_uint8 *kex_guess) { long long i, pos = 0; unsigned char *x; long long xlen; if (sshcrypto_kex_name) return 1; if (buf[len] != 0) bug_proto(); log_d2("kex: client: kex algorithms: ", (char *)buf); *kex_guess = 1; for (;;) { pos = stringparser(buf, len, pos, &x, &xlen); if (!pos) break; for (i = 0; sshcrypto_kexs[i].name; ++i) { if (!sshcrypto_kexs[i].flagenabled) continue; if (str_equaln((char *)x, xlen, sshcrypto_kexs[i].name)) { sshcrypto_kex_name = sshcrypto_kexs[i].name; sshcrypto_dh = sshcrypto_kexs[i].dh; sshcrypto_dh_keypair = sshcrypto_kexs[i].dh_keypair; sshcrypto_dh_publickeybytes = sshcrypto_kexs[i].dh_publickeybytes; sshcrypto_dh_secretkeybytes = sshcrypto_kexs[i].dh_secretkeybytes; sshcrypto_dh_bytes = sshcrypto_kexs[i].dh_bytes; sshcrypto_hash = sshcrypto_kexs[i].hash; sshcrypto_hash_bytes = sshcrypto_kexs[i].hash_bytes; sshcrypto_buf_putsharedsecret = sshcrypto_kexs[i].buf_putsharedsecret; sshcrypto_buf_putdhpk = sshcrypto_kexs[i].buf_putdhpk; log_d2("kex: kex selected: ", sshcrypto_kexs[i].name); return 1; } } *kex_guess = 0; } log_d2("kex: kex not available ", (char *)buf); errno = EPROTO; return 0; } void sshcrypto_kex_put(struct buf *b) { crypto_uint32 len = 0; long long i, j, start; j = 0; for (i = 0; sshcrypto_kexs[i].name; ++i) { if (!sshcrypto_kexs[i].flagenabled) continue; if (j++) ++len; len += str_len(sshcrypto_kexs[i].name); } buf_putnum32(b, len); start = b->len; j = 0; for (i = 0; sshcrypto_kexs[i].name; ++i) { if (!sshcrypto_kexs[i].flagenabled) continue; if (j++) buf_puts(b, ","); buf_puts(b, sshcrypto_kexs[i].name); } b->buf[b->len] = 0; log_d2("kex: server: kex algorithms: ", (char *)b->buf + start); } tinyssh-20180201/tinyssh/sshcrypto_kex_curve25519.c000066400000000000000000000017311322704306500220420ustar00rootroot00000000000000/* 20140203 Jan Mojzis Public domain. */ #include "buf.h" #include "crypto.h" #include "randombytes.h" #include "sshcrypto.h" #if defined(crypto_scalarmult_curve25519_BYTES) && defined(crypto_hash_sha256_BYTES) int curve25519_dh(unsigned char *k, unsigned char *pk, unsigned char *sk) { long long i; unsigned int d = 0; int ret; ret = crypto_scalarmult_curve25519(k, sk, pk); for (i = 0; i < crypto_scalarmult_curve25519_BYTES; ++i) d |= k[i]; ret |= -(1 & ((d - 1) >> 8)); return ret; } int curve25519_keypair(unsigned char *pk, unsigned char *sk) { randombytes(sk, crypto_scalarmult_curve25519_SCALARBYTES); return crypto_scalarmult_curve25519_base(pk, sk); } void curve25519_putdhpk(struct buf *b, const unsigned char *x) { buf_putstringlen(b, x, crypto_scalarmult_curve25519_BYTES); } void curve25519_putsharedsecret(struct buf *b, const unsigned char *x) { buf_putsharedsecret(b, x, crypto_scalarmult_curve25519_BYTES); } #endif tinyssh-20180201/tinyssh/sshcrypto_kex_nistp256.c000066400000000000000000000021031322704306500216740ustar00rootroot00000000000000/* 20140203 Jan Mojzis Public domain. */ #include "buf.h" #include "crypto.h" #include "byte.h" #include "purge.h" #include "randombytes.h" #include "sshcrypto.h" #if defined(crypto_scalarmult_nistp256_BYTES) && defined(crypto_hash_sha256_BYTES) int nistp256_dh(unsigned char *k, unsigned char *pk, unsigned char *sk) { unsigned char kk[crypto_scalarmult_nistp256_BYTES]; if (pk[0] != 4) return -1; if (crypto_scalarmult_nistp256(kk, sk, pk + 1) != 0) return -1; byte_copy(k, crypto_scalarmult_nistp256_BYTES / 2, kk); purge(kk, sizeof kk); return 0; } int nistp256_keypair(unsigned char *pk, unsigned char *sk) { randombytes(sk, crypto_scalarmult_nistp256_SCALARBYTES); pk[0] = 4; /* means uncompressed point */ return crypto_scalarmult_nistp256_base(pk + 1, sk); } void nistp256_putdhpk(struct buf *b, const unsigned char *x) { buf_putstringlen(b, x, crypto_scalarmult_nistp256_BYTES + 1); } void nistp256_putsharedsecret(struct buf *b, const unsigned char *x) { buf_putsharedsecret(b, x, crypto_scalarmult_nistp256_BYTES / 2); } #endif tinyssh-20180201/tinyssh/sshcrypto_key.c000066400000000000000000000111521322704306500202270ustar00rootroot00000000000000/* 20140204 Jan Mojzis Public domain. */ #include "crypto.h" #include "packetparser.h" #include "stringparser.h" #include "str.h" #include "byte.h" #include "e.h" #include "log.h" #include "bug.h" #include "purge.h" #include "sshcrypto.h" struct sshcrypto_key sshcrypto_keys[] = { #ifdef crypto_sign_ed25519_BYTES { "ssh-ed25519", crypto_sign_ed25519, crypto_sign_ed25519_open, crypto_sign_ed25519_keypair, {0}, crypto_sign_ed25519_PUBLICKEYBYTES, crypto_sign_ed25519_SECRETKEYBYTES, crypto_sign_ed25519_BYTES, "ed25519.pk", ".ed25519.sk", sshcrypto_TYPENEWCRYPTO, 0, 0, ed25519_putsignature, ed25519_putsignpk, ed25519_putsignpkbase64, ed25519_parsesignature, ed25519_parsesignpk, }, #endif #ifdef crypto_sign_nistp256ecdsa_BYTES { "ecdsa-sha2-nistp256", crypto_sign_nistp256ecdsa, crypto_sign_nistp256ecdsa_open, crypto_sign_nistp256ecdsa_keypair, {0}, crypto_sign_nistp256ecdsa_PUBLICKEYBYTES, crypto_sign_nistp256ecdsa_SECRETKEYBYTES, crypto_sign_nistp256ecdsa_BYTES, "nistp256ecdsa.pk", ".nistp256ecdsa.sk", sshcrypto_TYPEOLDCRYPTO, 0, 0, nistp256ecdsa_putsignature, nistp256ecdsa_putsignpk, nistp256ecdsa_putsignpkbase64, nistp256ecdsa_parsesignature, nistp256ecdsa_parsesignpk, }, #endif #if 0 { "pqkeyTODO", crypto_sign_ed25519, crypto_sign_ed25519_open, crypto_sign_ed25519_keypair, {0}, crypto_sign_ed25519_PUBLICKEYBYTES, crypto_sign_ed25519_SECRETKEYBYTES, crypto_sign_ed25519_BYTES, "pqkeyTODO.pk", ".pqkeyTODO.sk", sshcrypto_TYPEPQCRYPTO, 0, 0, ed25519_putsignature, ed25519_putsignpk, ed25519_putsignpkbase64, ed25519_parsesignature, ed25519_parsesignpk, }, #endif { 0, 0, 0, 0, {0}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; const char *sshcrypto_key_name = 0; int (*sshcrypto_sign)(unsigned char *,unsigned long long *,const unsigned char *,unsigned long long,const unsigned char *) = 0; unsigned char *sshcrypto_sign_publickey = 0; long long sshcrypto_sign_publickeybytes = 0; long long sshcrypto_sign_secretkeybytes = 0; long long sshcrypto_sign_bytes = 0; const char *sshcrypto_sign_secretkeyfilename = 0; void (*sshcrypto_buf_putsignature)(struct buf *, const unsigned char *) = 0; void (*sshcrypto_buf_putsignpk)(struct buf *, const unsigned char *) = 0; int sshcrypto_key_select(const unsigned char *buf, long long len) { long long i, pos = 0; unsigned char *x; long long xlen; if (sshcrypto_key_name) return 1; if (buf[len] != 0) bug_proto(); log_d2("kex: client: key algorithms: ", (char *)buf); for (;;) { pos = stringparser(buf, len, pos, &x, &xlen); if (!pos) break; for (i = 0; sshcrypto_keys[i].name; ++i) { if (!sshcrypto_keys[i].sign_flagserver) continue; if (str_equaln((char *)x, xlen, sshcrypto_keys[i].name)) { sshcrypto_key_name = sshcrypto_keys[i].name; sshcrypto_sign = sshcrypto_keys[i].sign; sshcrypto_sign_publickey = sshcrypto_keys[i].sign_publickey; sshcrypto_sign_publickeybytes = sshcrypto_keys[i].sign_publickeybytes; sshcrypto_sign_secretkeybytes = sshcrypto_keys[i].sign_secretkeybytes; sshcrypto_sign_bytes = sshcrypto_keys[i].sign_bytes; sshcrypto_sign_secretkeyfilename = sshcrypto_keys[i].sign_secretkeyfilename; sshcrypto_buf_putsignature = sshcrypto_keys[i].buf_putsignature; sshcrypto_buf_putsignpk = sshcrypto_keys[i].buf_putsignpk; log_d2("kex: key selected: ", sshcrypto_keys[i].name); return 1; } } } log_d2("kex: key not available ", (char *)buf); errno = EPROTO; return 0; } void sshcrypto_key_put(struct buf *b) { crypto_uint32 len = 0; long long i, j, start; j = 0; for (i = 0; sshcrypto_keys[i].name; ++i) { if (!sshcrypto_keys[i].sign_flagserver) continue; if (j++) ++len; len += str_len(sshcrypto_keys[i].name); } buf_putnum32(b, len); start = b->len; j = 0; for (i = 0; sshcrypto_keys[i].name; ++i) { if (!sshcrypto_keys[i].sign_flagserver) continue; if (j++) buf_puts(b, ","); buf_puts(b, sshcrypto_keys[i].name); } b->buf[b->len] = 0; log_d2("kex: server: key algorithms: ", (char *)b->buf + start); } tinyssh-20180201/tinyssh/sshcrypto_key_ed25519.c000066400000000000000000000041341322704306500213070ustar00rootroot00000000000000/* 20140204 Jan Mojzis Public domain. */ #include "crypto.h" #include "packetparser.h" #include "buf.h" #include "byte.h" #include "str.h" #include "purge.h" #include "sshcrypto.h" #ifdef crypto_sign_ed25519_BYTES void ed25519_putsignature(struct buf *b, const unsigned char *x) { const char *name = "ssh-ed25519"; long long len = crypto_sign_ed25519_BYTES; buf_putnum32(b, len + str_len(name) + 8); buf_putstring(b, name); buf_putstringlen(b, x, len); } void ed25519_putsignpk(struct buf *b, const unsigned char *x) { const char *name = "ssh-ed25519"; long long len = crypto_sign_ed25519_PUBLICKEYBYTES; buf_putnum32(b, len + str_len(name) + 8); buf_putstring(b, name); buf_putstringlen(b, x, len); } void ed25519_putsignpkbase64(struct buf *b, const unsigned char *x) { unsigned char buf[19 + crypto_sign_ed25519_PUBLICKEYBYTES]; byte_copy(buf, 19, "\0\0\0\013ssh-ed25519\0\0\0\040"); byte_copy(buf + 19, crypto_sign_ed25519_PUBLICKEYBYTES, x); buf_putbase64(b, buf, sizeof buf); purge(buf, sizeof buf); } int ed25519_parsesignpk(unsigned char *buf, const unsigned char *x, long long xlen) { long long pos = 0; crypto_uint32 len; pos = packetparser_uint32(x, xlen, pos, &len); pos = packetparser_skip(x, xlen, pos, len); if (!str_equaln((char *)x + pos - len, len, "ssh-ed25519")) return 0; pos = packetparser_uint32(x, xlen, pos, &len); if (len != crypto_sign_ed25519_PUBLICKEYBYTES) return 0; pos = packetparser_copy(x, xlen, pos, buf, len); pos = packetparser_end(x, xlen, pos); return 1; } int ed25519_parsesignature(unsigned char *buf, const unsigned char *x, long long xlen) { long long pos = 0; crypto_uint32 len; pos = packetparser_uint32(x, xlen, pos, &len); pos = packetparser_skip(x, xlen, pos, len); if (!str_equaln((char *)x + pos - len, len, "ssh-ed25519")) return 0; pos = packetparser_uint32(x, xlen, pos, &len); if (len != crypto_sign_ed25519_BYTES) return 0; pos = packetparser_copy(x, xlen, pos, buf, len); pos = packetparser_end(x, xlen, pos); return 1; } #endif tinyssh-20180201/tinyssh/sshcrypto_key_nistp256ecdsa.c000066400000000000000000000120251322704306500227010ustar00rootroot00000000000000/* 20140204 Jan Mojzis Public domain. */ #include "crypto.h" #include "packetparser.h" #include "buf.h" #include "byte.h" #include "str.h" #include "purge.h" #include "sshcrypto.h" #ifdef crypto_sign_nistp256ecdsa_BYTES static void _putmpint(struct buf *b, const unsigned char *x, long long len) { long long pos; for (pos = 0; pos < len; ++pos) if (x[pos]) break; if (x[pos] & 0x80) { buf_putnum32(b, len - pos + 1); buf_putnum8(b, 0); } else { buf_putnum32(b, len - pos); } buf_put(b, x + pos, len - pos); } void nistp256ecdsa_putsignature(struct buf *b, const unsigned char *x) { unsigned char mpintrspace[crypto_sign_nistp256ecdsa_BYTES / 2 + 4 + 1 + 1]; unsigned char mpintsspace[crypto_sign_nistp256ecdsa_BYTES / 2 + 4 + 1 + 1]; unsigned char mpintbspace[crypto_sign_nistp256ecdsa_BYTES + 10 + 1]; unsigned char sigblobspace[4 + 23 + crypto_sign_nistp256ecdsa_BYTES + 10 + 1]; struct buf mpintr; struct buf mpints; struct buf mpintb; struct buf sigblob; long long halflen = crypto_sign_nistp256ecdsa_BYTES / 2; const char *name = "ecdsa-sha2-nistp256"; buf_init(&mpintr, mpintrspace, sizeof mpintrspace); buf_init(&mpints, mpintsspace, sizeof mpintsspace); buf_init(&mpintb, mpintbspace, sizeof mpintbspace); buf_init(&sigblob, sigblobspace, sizeof sigblobspace); _putmpint(&mpintr, x, halflen); _putmpint(&mpints, x + halflen, halflen); buf_put(&mpintb, mpintr.buf, mpintr.len); buf_put(&mpintb, mpints.buf, mpints.len); buf_putstring(&sigblob, name); buf_putstringlen(&sigblob, mpintb.buf, mpintb.len); buf_putstringlen(b, sigblob.buf, sigblob.len); purge(mpintrspace, sizeof mpintrspace); purge(mpintsspace, sizeof mpintsspace); purge(mpintbspace, sizeof mpintbspace); purge(sigblobspace, sizeof sigblobspace); } void nistp256ecdsa_putsignpk(struct buf *b, const unsigned char *x) { const char *name = "ecdsa-sha2-nistp256"; const char *ecname = "nistp256"; long long len = crypto_sign_nistp256ecdsa_PUBLICKEYBYTES; buf_putnum32(b, len + str_len(name) + str_len(ecname) + 12 + 1); buf_putstring(b, name); buf_putstring(b, ecname); buf_putnum32(b, len + 1); buf_putnum8(b, 4); buf_put(b, x, crypto_sign_nistp256ecdsa_PUBLICKEYBYTES); } void nistp256ecdsa_putsignpkbase64(struct buf *b, const unsigned char *x) { unsigned char buf[40 + crypto_sign_nistp256ecdsa_PUBLICKEYBYTES]; byte_copy(buf, 40, "\0\0\0\023ecdsa-sha2-nistp256\0\0\0\010nistp256\0\0\0\101\004"); byte_copy(buf + 40, crypto_sign_nistp256ecdsa_PUBLICKEYBYTES, x); buf_putbase64(b, buf, sizeof buf); purge(buf, sizeof buf); } int nistp256ecdsa_parsesignpk(unsigned char *buf, const unsigned char *x, long long xlen) { long long pos = 0; crypto_uint32 len; crypto_uint8 ch; pos = packetparser_uint32(x, xlen, pos, &len); pos = packetparser_skip(x, xlen, pos, len); if (!str_equaln((char *)x + pos - len, len, "ecdsa-sha2-nistp256")) return 0; pos = packetparser_uint32(x, xlen, pos, &len); pos = packetparser_skip(x, xlen, pos, len); if (!str_equaln((char *)x + pos - len, len, "nistp256")) return 0; pos = packetparser_uint32(x, xlen, pos, &len); if (len != crypto_sign_nistp256ecdsa_PUBLICKEYBYTES + 1) return 0; pos = packetparser_uint8(x, xlen, pos, &ch); if (ch != 4) return 0; pos = packetparser_copy(x, xlen, pos, buf, len - 1); pos = packetparser_end(x, xlen, pos); return 1; } static int _parsempintblob(unsigned char *buf, const unsigned char *x, long long xlen) { long long pos = 0, bpos = 0; crypto_uint32 len; unsigned char bufr[crypto_sign_nistp256ecdsa_BYTES / 2 + 1]; unsigned char bufs[crypto_sign_nistp256ecdsa_BYTES / 2 + 1]; byte_zero(bufr, sizeof bufr); byte_zero(bufs, sizeof bufs); pos = packetparser_uint32(x, xlen, pos, &len); bpos = crypto_sign_nistp256ecdsa_BYTES / 2 - len + 1; if (bpos < 0) return 0; pos = packetparser_copy(x, xlen, pos, bufr + bpos, len); pos = packetparser_uint32(x, xlen, pos, &len); bpos = crypto_sign_nistp256ecdsa_BYTES / 2 - len + 1; if (bpos < 0) return 0; pos = packetparser_copy(x, xlen, pos, bufs + bpos, len); byte_copy(buf, crypto_sign_nistp256ecdsa_BYTES / 2, bufr + 1); byte_copy(buf + crypto_sign_nistp256ecdsa_BYTES / 2, crypto_sign_nistp256ecdsa_BYTES / 2, bufs + 1); purge(bufr, sizeof bufr); purge(bufs, sizeof bufs); pos = packetparser_end(x, xlen, pos); return 1; } int nistp256ecdsa_parsesignature(unsigned char *buf, const unsigned char *x, long long xlen) { long long pos = 0; crypto_uint32 len; pos = packetparser_uint32(x, xlen, pos, &len); pos = packetparser_skip(x, xlen, pos, len); if (!str_equaln((char *)x + pos - len, len, "ecdsa-sha2-nistp256")) return 0; pos = packetparser_uint32(x, xlen, pos, &len); pos = packetparser_skip(x, xlen, pos, len); if (!_parsempintblob(buf, x + pos - len, len)) return 0; pos = packetparser_end(x, xlen, pos); return 1; } #endif tinyssh-20180201/tinyssh/str.c000066400000000000000000000025771322704306500161440ustar00rootroot00000000000000#include "str.h" /* The 'str_len(s)' function calculates the length of the string 's'. */ long long str_len(const char *s) { long long i; for (i = 0; s[i]; ++i); return i; } /* The 'str_start(s,t)' function returns 1 if t is a prefix of s, 0 otherwise. */ int str_start(const char *s, const char *t) { char x; for (;;) { x = *t++; if (!x) return 1; if (x != *s++) return 0; } } /* The 'str_equaln(y,ylen,x)' function returns 1 if the length of string 'x' is ylen and if y and x match up to, 0 otherwise. */ int str_equaln(const char *y, long long ylen, const char *x) { long long i; if (str_len(x) != ylen) return 0; for (i = 0; i < ylen; ++i) if (y[i] != x[i]) return 0; return 1; } /* The 'str_copyn(y,ylen,x)' function copies the string pointed to by 'x' (including \0) to the buffer pointed to by 'y'. If the length of string x is smaller than ylen or equal, then function returns 1. If the length of string x is biger than ylen, then only ylen - 1 bytes of 'x' are copied and function returns 0. The 'y' string is always \0 terminated. */ int str_copyn(char *y, long long ylen, const char *x) { long long len = str_len(x); int ret = 1; if (ylen <= 0) return 0; if (ylen - 1 < len) { len = ylen - 1; ret = 0; } y[len] = 0; while (len > 0) { *y++ = *x++; --len; } return ret; } tinyssh-20180201/tinyssh/str.h000066400000000000000000000003761322704306500161440ustar00rootroot00000000000000#ifndef _STR_H____ #define _STR_H____ extern long long str_len(const char *); extern int str_start(const char *, const char *); extern int str_equaln(const char *, long long, const char *); extern int str_copyn(char *, long long, const char *); #endif tinyssh-20180201/tinyssh/stringparser.c000066400000000000000000000013301322704306500200410ustar00rootroot00000000000000/* 20140203 Jan Mojzis Public domain. */ #include "byte.h" #include "e.h" #include "bug.h" #include "stringparser.h" /* The 'stringparser' function parses items from comma-separated list. Empty strings are ignored. */ long long stringparser(const unsigned char *buf, long long len, long long pos, unsigned char **x, long long *xlen) { long long i; if (!buf || len < 0 || len > 1073741824 || pos < 0 || pos > 1073741824 || !x || !xlen) bug_inval(); for (;;) { if (pos >= len) return 0; for (i = pos; i < len; ++i) { if (buf[i] == ',') break; } *x = (unsigned char *)buf + pos; *xlen = i - pos; pos = i + 1; if (*xlen != 0) return pos; } } tinyssh-20180201/tinyssh/stringparser.h000066400000000000000000000002551322704306500200530ustar00rootroot00000000000000#ifndef _STRINGPARSER_H____ #define _STRINGPARSER_H____ extern long long stringparser(const unsigned char *, long long, long long, unsigned char **, long long *); #endif tinyssh-20180201/tinyssh/subprocess.h000066400000000000000000000006501322704306500175170ustar00rootroot00000000000000#ifndef _SUBPROCESS_H____ #define _SUBPROCESS_H____ #include extern int subprocess_sign(unsigned char *, long long, const char *, unsigned char *, long long); extern int subprocess_auth(const char *, const char *, const char *); extern int subprocess_auth_checkpath_(char *, long long, uid_t); extern int subprocess_auth_authorizedkeys_(const char *, const char *, const char *, char *, long long); #endif tinyssh-20180201/tinyssh/subprocess_auth.c000066400000000000000000000106701322704306500205360ustar00rootroot00000000000000/* 20140214 Jan Mojzis Public domain. */ #include #include #include #include #include #include "str.h" #include "open.h" #include "dropuidgid.h" #include "global.h" #include "e.h" #include "log.h" #include "sshcrypto.h" #include "getln.h" #include "bug.h" #include "limit.h" #include "subprocess.h" static int findnameandkey(const char *keyname, const char *key, char *x) { if (!str_start(x, keyname)) return 0; x += str_len(keyname); if (*x != ' ') return 0; x += 1; if (!str_start(x, key)) return 0; x += str_len(key); if (*x == ' ') return 1; if (*x == '\n') return 1; if (*x == '\r') return 1; if (*x == 0) return 1; return 0; } static void check(uid_t uid, const char *d, const char *f, long long *err) { struct stat st; int e = 0; if (f) { if (stat(f, &st) == -1) { log_w4("auth: unable to stat file: ", d, "/", f); e = 1; } if (e == 0 && !S_ISREG(st.st_mode)) { errno = EACCES; log_w4("auth: non-regular file: ", d, "/", f); e = 1; } } else { if (stat(d, &st) == -1) { log_w4("auth: unable to stat directory: ", d, "/", f); e = 1; } if (e == 0 && !S_ISDIR(st.st_mode)) { errno = ENOTDIR; log_w4("auth: unable to stat directory: ", d, "/", f); e = 1; } } if (e == 0 && (st.st_mode & 022) != 0) { errno = EACCES; log_w4("auth: bad mode: ", d, "/", f); e = 1; } if (e == 0 && st.st_uid != uid && st.st_uid != 0) { errno = EACCES; log_w4("auth: bad owner: ", d, "/", f); e = 1; } if (e) *err = 1; else log_d4("auth: path: ok: ", d, "/", f); } int subprocess_auth_checkpath_(char *path, long long pathlen, uid_t uid) { long long err = 0, j, i; if (pathlen <= 16) return 0; if (!getcwd(path, pathlen)) return 0; for (i = 0; i < pathlen; ++i) if (path[i] == 0) break; if (i == pathlen) return 0; check(uid, path, "authorized_keys", &err); do { check(uid, path, 0, &err); for (j = i; j >= 0; --j) { if (path[j] == '/') { path[j] = 0; i = j; break; } } } while (j > 0); return (err == 0); } int subprocess_auth_authorizedkeys_(const char *keyname, const char *key, const char *dir, char *buf, long long bufmax) { int fd = -1; int r; fd = open_read("authorized_keys"); if (fd == -1) { log_w3("auth: unable to open file: ", dir, "/authorized_keys"); return 0; } do { r = getln(fd, buf, bufmax); if (r == -1) { log_w3("auth: unable to read from file ", dir, "/authorized_keys"); return 0; } if (findnameandkey(keyname, key, buf)) return 1; /* authorized */ } while (r > 0); log_w1("auth: unable to authorize using authorized_keys: key not found"); return 0; } /* The 'subprocess_auth' is used for authorization using ~/.ssh/authorized_keys file. */ int subprocess_auth(const char *account, const char *keyname, const char *key) { pid_t pid; int status; pid = fork(); if (pid == -1) return -1; if (pid == 0) { #define buf global_bspace2 /* reusing global buffer */ struct passwd *pw; if (!account || !keyname || !key) bug_inval(); if (sshcrypto_sign_BASE64PUBLICKEYMIN > str_len(key) + 1) bug_inval(); /* drop privileges */ pw = getpwnam(account); if (!pw) { log_w3("auth: account ", account, ": not exist"); global_die(111); } if (!dropuidgid(pw->pw_name, pw->pw_uid, pw->pw_gid)) { log_w2("auth: unable to drop privileges to account ", account); global_die(111); } /* change directory to ~/.ssh */ if (chdir(pw->pw_dir) == -1) { log_w2("auth: unable to change directory to ", pw->pw_dir); global_die(111); } if (chdir(".ssh") == -1) { log_w3("auth: unable to change directory to ", pw->pw_dir, "/.ssh"); global_die(111); } /* authorization starts here */ if (!subprocess_auth_checkpath_((char *)buf, sizeof buf, pw->pw_uid)) global_die(111); if (!subprocess_auth_authorizedkeys_(keyname, key, pw->pw_dir, (char *)buf, sizeof buf)) global_die(111); /* authorization ends here */ global_die(0); } while (waitpid(pid, &status, 0) != pid) {}; if (!WIFEXITED(status)) return -1; return WEXITSTATUS(status); } tinyssh-20180201/tinyssh/subprocess_sign.c000066400000000000000000000051411322704306500205320ustar00rootroot00000000000000/* 20140117 Jan Mojzis Public domain. */ #include #include #include #include "load.h" #include "log.h" #include "open.h" #include "writeall.h" #include "purge.h" #include "global.h" #include "bug.h" #include "e.h" #include "purge.h" #include "readall.h" #include "blocking.h" #include "sshcrypto.h" #include "subprocess.h" /* The 'subprocess_sign' function reads secret-key from 'keydir' and sings the data 'x' of length 'xlen' and returns it in 'y'. Caller is expecting 'y' of length 'ylen'. Signing is done in a different process, so secret-key is in a separate memory space than rest of the program. */ int subprocess_sign(unsigned char *y, long long ylen, const char *keydir, unsigned char *x, long long xlen) { pid_t pid; int status, fromchild[2] = {-1, -1}; if (ylen != sshcrypto_sign_bytes) bug_inval(); if (xlen != sshcrypto_hash_bytes) bug_inval(); if (!y || !keydir || !x) bug_inval(); if (open_pipe(fromchild) == -1) return -1; pid = fork(); if (pid == -1) { close(fromchild[0]); close(fromchild[1]); return -1; } if (pid == 0) { unsigned char sk[sshcrypto_sign_SECRETKEYMAX]; unsigned char sm[sshcrypto_sign_MAX + sshcrypto_hash_MAX]; unsigned long long smlen; close(fromchild[0]); /* signing starts here */ if (chdir(keydir) == -1) { log_w2("sign: unable to change directory to ", keydir); global_die(111); } if (load(sshcrypto_sign_secretkeyfilename, sk, sshcrypto_sign_secretkeybytes) == -1) { log_w4("sign: unable to load secret-key from file ", keydir, "/", sshcrypto_sign_secretkeyfilename); purge(sk, sizeof sk); global_die(111); } if (sshcrypto_sign(sm, &smlen, x, sshcrypto_hash_bytes, sk) != 0) { log_w4("sign: unable to sign using secret-key from file ", keydir, "/", sshcrypto_sign_secretkeyfilename); purge(sk, sizeof sk); global_die(111); } purge(sk, sizeof sk); if (writeall(fromchild[1], sm, sshcrypto_sign_bytes) == -1) { log_w1("sign: unable to write signature to parrent process"); global_die(111); } close(fromchild[1]); /* signing ends here */ purge(sm, sizeof sm); global_die(0); } close(fromchild[1]); blocking_enable(fromchild[0]); if (readall(fromchild[0], y, ylen) == -1) { close(fromchild[0]); return -1; } close(fromchild[0]); while (waitpid(pid, &status, 0) != pid) {}; if (!WIFEXITED(status)) return -1; return WEXITSTATUS(status); } tinyssh-20180201/tinyssh/tinysshd-makekey.c000066400000000000000000000034741322704306500206220ustar00rootroot00000000000000/* 20121022 Jan Mojzis Public domain. */ #include #include #include #include "savesync.h" #include "log.h" #include "sshcrypto.h" #include "global.h" #include "die.h" #define sk global_bspace1 /* reusing global buffer */ #define pk global_bspace2 /* reusing global buffer */ #define USAGE "usage: tinysshd-makekey keydir" static void create(const char *d, const char *fn, const unsigned char *x, long long xlen) { if (savesync(fn, x, xlen) == -1) die_fatal("unable to create", d, fn); } static int flagverbose = 1; int main(int argc, char **argv) { char *x; long long i; log_init(flagverbose, "tinysshd-makekey", 0, 0); if (argc < 2) die_usage(USAGE); if (!argv[0]) die_usage(USAGE); for (;;) { if (!argv[1]) break; if (argv[1][0] != '-') break; x = *++argv; if (x[0] == '-' && x[1] == 0) break; if (x[0] == '-' && x[1] == '-' && x[2] == 0) break; while (*++x) { if (*x == 'q') { flagverbose = 0; continue; } if (*x == 'Q') { flagverbose = 1; continue; } die_usage(USAGE); } } x = *++argv; if (!x) die_usage(USAGE); log_init(flagverbose, "tinysshd-makekey", 0, 0); umask(022); if (mkdir(x, 0755) == -1) die_fatal("unable to create directory", x, 0); if (chdir(x) == -1) die_fatal("unable to chdir to directory", x, 0); for (i = 0; sshcrypto_keys[i].name; ++i) { if (sshcrypto_keys[i].sign_keypair(pk, sk) != 0) die_fatal("unable to generate key pair", x, 0); umask(022); create(x, sshcrypto_keys[i].sign_publickeyfilename, pk, sshcrypto_keys[i].sign_publickeybytes); umask(077); create(x, sshcrypto_keys[i].sign_secretkeyfilename, sk, sshcrypto_keys[i].sign_secretkeybytes); } global_die(0); return 111; } tinyssh-20180201/tinyssh/tinysshd-makekey.exp000066400000000000000000000005731322704306500211710ustar00rootroot00000000000000--- tinysshd-makekey prints help 100 --- tinysshd-makekey creates key-directory keydir/ed25519.pk keydir/nistp256ecdsa.pk 0 --- tinysshd-makekey fails when directory exists tinysshd-makekey: fatal: unable to create directory keydir (file already exists) 111 --- tinysshd-makekey handles '-r' parameter (prints help) 100 --- tinysshd-makekey creates '-r' key-directory 0 tinyssh-20180201/tinyssh/tinysshd-makekey.rts000066400000000000000000000011661322704306500212040ustar00rootroot00000000000000#!/bin/sh LANG=C export LANG LC_ALL=C export LC_ALL echo '--- tinysshd-makekey prints help' echo ./tinysshd-makekey 2>/dev/null echo $? echo echo '--- tinysshd-makekey creates key-directory' echo rm -rf keydir ./tinysshd-makekey keydir 2>&1 ls keydir/*.pk | sort echo $? echo echo '--- tinysshd-makekey fails when directory exists' echo rm -rf keydir mkdir keydir ./tinysshd-makekey keydir 2>&1 echo $? echo "--- tinysshd-makekey handles '-r' parameter (prints help)" echo ./tinysshd-makekey -r 2>/dev/null echo $? echo echo "--- tinysshd-makekey creates '-r' key-directory" echo ./tinysshd-makekey -- -r 2>&1 echo $? echo tinyssh-20180201/tinyssh/tinysshd-printkey.c000066400000000000000000000036101322704306500210310ustar00rootroot00000000000000/* 20150124 Jan Mojzis Public domain. */ #include #include "e.h" #include "load.h" #include "sshcrypto.h" #include "crypto.h" #include "global.h" #include "buf.h" #include "log.h" #include "writeall.h" #include "die.h" static struct buf b1 = { global_bspace1, 0, sizeof global_bspace1 }; /* reusing global buffer */ static struct buf b2 = { global_bspace2, 0, sizeof global_bspace2 }; /* reusing global buffer */ static unsigned char pk[sshcrypto_sign_PUBLICKEYMAX]; #define USAGE "usage: tinysshd-printkey keydir" int main(int argc, char **argv) { char *x; long long i; log_init(3, "tinysshd-printkey", 0, 0); if (argc < 2) die_usage(USAGE); if (!argv[0]) die_usage(USAGE); for (;;) { if (!argv[1]) break; if (argv[1][0] != '-') break; x = *++argv; if (x[0] == '-' && x[1] == 0) break; if (x[0] == '-' && x[1] == '-' && x[2] == 0) break; while (*++x) { die_usage(USAGE); } } x = *++argv; if (!x) die_usage(USAGE); if (chdir(x) == -1) die_fatal("unable to chdir to directory", x, 0); /* read public keys */ for (i = 0; sshcrypto_keys[i].name; ++i) { if (load(sshcrypto_keys[i].sign_publickeyfilename, pk, sshcrypto_keys[i].sign_publickeybytes) == -1) { if (errno == ENOENT) continue; die_fatal("unable to read public key from file", x, sshcrypto_keys[i].sign_publickeyfilename); } buf_purge(&b1); sshcrypto_keys[i].buf_putsignpk(&b1, pk); if (b1.len < 4) die_fatal("unable to get publickey", 0, 0); /* base64 */ buf_purge(&b2); buf_puts(&b2, sshcrypto_keys[i].name); buf_puts(&b2, " "); buf_putbase64(&b2, b1.buf + 4, b1.len - 4); buf_puts(&b2, "\n"); if (writeall(1, b2.buf, b2.len) == -1) die_fatal("unable to write output", 0, 0); } global_die(0); return 111; } tinyssh-20180201/tinyssh/tinysshd-printkey.exp000066400000000000000000000014451322704306500214070ustar00rootroot00000000000000--- tinysshd-printkey prints help 100 --- tinysshd-printkey prints keys ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgK ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eAo= 0 --- tinysshd-printkey prints only ssh-ed25519 key ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgK 0 --- tinysshd-printkey prints only ecdsa-sha2-nistp256 key ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eAo= 0 --- tinysshd-printkey handles '-r' parameter (prints help) 100 --- tinysshd-printkey prints keys from '-r' key-directory 0 tinyssh-20180201/tinyssh/tinysshd-printkey.rts000066400000000000000000000021061322704306500214160ustar00rootroot00000000000000#!/bin/sh rm -rf keydir mkdir keydir echo '--- tinysshd-printkey prints help' echo ./tinysshd-printkey 2>/dev/null echo $? echo ( echo 'ed25519.pk xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' echo 'nistp256ecdsa.pk xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' ) | ( while read name key do echo ${key} > "keydir/${name}" done ) echo '--- tinysshd-printkey prints keys' echo ./tinysshd-printkey keydir echo $? echo mv keydir/nistp256ecdsa.pk keydir/nistp256ecdsa.pk.bk echo '--- tinysshd-printkey prints only ssh-ed25519 key' echo ./tinysshd-printkey keydir echo $? echo mv keydir/nistp256ecdsa.pk.bk keydir/nistp256ecdsa.pk mv keydir/ed25519.pk keydir/ed25519.pk.bk echo '--- tinysshd-printkey prints only ecdsa-sha2-nistp256 key' echo ./tinysshd-printkey keydir echo $? echo ./tinysshd-makekey 2>/dev/null || : echo "--- tinysshd-printkey handles '-r' parameter (prints help)" echo ./tinysshd-printkey -r 2>/dev/null echo $? echo echo "--- tinysshd-printkey prints keys from '-r' key-directory" echo ./tinysshd-printkey -- -r 1>/dev/null echo $? echo exit 0 tinyssh-20180201/tinyssh/tinysshd.c000066400000000000000000000246341322704306500171770ustar00rootroot00000000000000/* 20140107 Jan Mojzis Public domain. */ #include #include #include #include #include #include "blocking.h" #include "ssh.h" #include "purge.h" #include "open.h" #include "load.h" #include "e.h" #include "byte.h" #include "buf.h" #include "packet.h" #include "channel.h" #include "log.h" #include "sshcrypto.h" #include "subprocess.h" #include "global.h" #include "connectioninfo.h" #include "die.h" #define USAGE "usage: tinysshd [options] keydir" static unsigned int cryptotypeselected = sshcrypto_TYPENEWCRYPTO; static int flagverbose = 1; static int fdwd; static int flaglogger = 0; static struct buf b1 = {global_bspace1, 0, sizeof global_bspace1}; static struct buf b2 = {global_bspace2, 0, sizeof global_bspace2}; static void timeout(int x) { errno = x = ETIMEDOUT; die_fatal("closing connection", 0, 0); } static int selfpipe[2] = { -1, -1 }; static void trigger(int x) { errno = 0; x = write(selfpipe[1], "", 1); } int main(int argc, char **argv) { char *x; const char *keydir = 0; long long i; struct pollfd p[6]; struct pollfd *q; struct pollfd *watch0; struct pollfd *watch1; struct pollfd *watchtochild; struct pollfd *watchfromchild1; struct pollfd *watchfromchild2; struct pollfd *watchselfpipe; int exitsignal, exitcode; signal(SIGPIPE, SIG_IGN); signal(SIGALRM, timeout); log_init(0, "tinysshd", 0, 0); if (argc < 2) die_usage(USAGE); if (!argv[0]) die_usage(USAGE); for (;;) { if (!argv[1]) break; if (argv[1][0] != '-') break; x = *++argv; if (x[0] == '-' && x[1] == 0) break; if (x[0] == '-' && x[1] == '-' && x[2] == 0) break; while (*++x) { if (*x == 'q') { flagverbose = 0; continue; } if (*x == 'Q') { flagverbose = 1; continue; } if (*x == 'v') { if (flagverbose >= 2) flagverbose = 3; else flagverbose = 2; continue; } if (*x == 'o') { cryptotypeselected |= sshcrypto_TYPEOLDCRYPTO; continue; } if (*x == 'O') { cryptotypeselected &= ~sshcrypto_TYPEOLDCRYPTO; continue; } if (*x == 's') { cryptotypeselected |= sshcrypto_TYPENEWCRYPTO; continue; } if (*x == 'S') { cryptotypeselected &= ~sshcrypto_TYPENEWCRYPTO; continue; } if (*x == 'p') { cryptotypeselected |= sshcrypto_TYPEPQCRYPTO; continue; } if (*x == 'P') { cryptotypeselected &= ~sshcrypto_TYPEPQCRYPTO; continue; } if (*x == 'l') { flaglogger = 1; continue; } if (*x == 'L') { flaglogger = 0; continue; } if (*x == 'x') { if (x[1]) { channel_subsystem_add(x + 1); break; } if (argv[1]) { channel_subsystem_add(*++argv); break; } } die_usage(USAGE); } } keydir = *++argv; if (!keydir) die_usage(USAGE); log_init(flagverbose, "tinysshd", 1, flaglogger); connectioninfo(channel.localip, channel.localport, channel.remoteip, channel.remoteport); log_i4("connection from ", channel.remoteip, ":", channel.remoteport); channel_subsystem_log(); global_init(); blocking_disable(0); blocking_disable(1); blocking_disable(2); /* get server longterm keys */ fdwd = open_cwd(); if (fdwd == -1) die_fatal("unable to open current directory", 0, 0); if (chdir(keydir) == -1) die_fatal("unable to chdir to", keydir, 0); for (i = 0; sshcrypto_keys[i].name; ++i) sshcrypto_keys[i].sign_flagserver |= sshcrypto_keys[i].cryptotype & cryptotypeselected; for (i = 0; sshcrypto_keys[i].name; ++i) sshcrypto_keys[i].sign_flagclient |= sshcrypto_keys[i].cryptotype & cryptotypeselected; for (i = 0; sshcrypto_kexs[i].name; ++i) sshcrypto_kexs[i].flagenabled |= sshcrypto_kexs[i].cryptotype & cryptotypeselected; for (i = 0; sshcrypto_ciphers[i].name; ++i) sshcrypto_ciphers[i].flagenabled |= sshcrypto_ciphers[i].cryptotype & cryptotypeselected; /* read public keys */ for (i = 0; sshcrypto_keys[i].name; ++i) { if (!sshcrypto_keys[i].sign_flagserver) continue; if (load(sshcrypto_keys[i].sign_publickeyfilename, sshcrypto_keys[i].sign_publickey, sshcrypto_keys[i].sign_publickeybytes) == -1) { sshcrypto_keys[i].sign_flagserver = 0; if (errno == ENOENT) continue; die_fatal("unable to read public key from file", keydir, sshcrypto_keys[i].sign_publickeyfilename); } } if (fchdir(fdwd) == -1) die_fatal("unable to change directory to working directory", 0, 0); close(fdwd); /* set timeout */ alarm(60); /* send and receive hello */ if (!packet_hello_send()) die_fatal("unable to send hello-string", 0, 0); if (!packet_hello_receive()) die_fatal("unable to receive hello-string", 0, 0); /* send and receive kex */ if (!packet_kex_send()) die_fatal("unable to send kex-message", 0, 0); if (!packet_kex_receive()) die_fatal("unable to receive kex-message", 0, 0); rekeying: /* rekeying */ alarm(60); if (packet.flagrekeying == 1) { buf_purge(&packet.kexrecv); buf_put(&packet.kexrecv, b1.buf, b1.len); if (!packet_kex_send()) die_fatal("unable to send kex-message", 0, 0); } /* send and receive kexdh */ if (!packet_kexdh(keydir, &b1, &b2)) die_fatal("unable to subprocess kexdh", 0, 0); if (packet.flagkeys) log_d1("rekeying: done"); packet.flagkeys = 1; /* note: communication is encrypted */ /* authentication + authorization */ if (packet.flagauthorized == 0) { if (!packet_auth(&b1, &b2)) die_fatal("authentication failed", 0, 0); packet.flagauthorized = 1; } /* note: user is authenticated and authorized */ alarm(3600); /* main loop */ for (;;) { if (channel_iseof()) if (!packet.sendbuf.len) if (packet.flagchanneleofreceived) break; watch0 = watch1 = 0; watchtochild = watchfromchild1 = watchfromchild2 = 0; watchselfpipe = 0; q = p; if (packet_sendisready()) { watch1 = q; q->fd = 1; q->events = POLLOUT; ++q; } if (packet_recvisready()) { watch0 = q; q->fd = 0; q->events = POLLIN; ++q; } if (channel_writeisready()) { watchtochild = q; q->fd = channel_getfd0(); q->events = POLLOUT; ++q; } if (channel_readisready() && packet_putisready()) { watchfromchild1 = q; q->fd = channel_getfd1(); q->events = POLLIN; ++q; } if (channel_extendedreadisready() && packet_putisready()) { watchfromchild2 = q; q->fd = channel_getfd2(); q->events = POLLIN; ++q; } if (selfpipe[0] != -1) { watchselfpipe = q; q->fd = selfpipe[0]; q->events = POLLIN; ++q; } if (poll(p, q - p, 60000) < 0) { watch0 = watch1 = 0; watchtochild = watchfromchild1 = watchfromchild2 = 0; watchselfpipe = 0; } else { if (watch0) if (!watch0->revents) watch0 = 0; if (watch1) if (!watch1->revents) watch1 = 0; if (watchfromchild1) if (!watchfromchild1->revents) watchfromchild1 = 0; if (watchfromchild2) if (!watchfromchild2->revents) watchfromchild2 = 0; if (watchtochild) if (!watchtochild->revents) watchtochild = 0; if (watchselfpipe) if (!watchselfpipe->revents) watchselfpipe = 0; } if (watchtochild) { /* write data to child */ if (!channel_write()) die_fatal("unable to write data to child", 0, 0); /* try to adjust window */ if (!packet_channel_send_windowadjust(&b1)) die_fatal("unable to send data to network", 0, 0); } /* read data from child */ if (watchfromchild1) packet_channel_send_data(&b2); if (watchfromchild2) packet_channel_send_extendeddata(&b2); /* check child */ if (channel_iseof()) { if (selfpipe[0] == -1) if (open_pipe(selfpipe) == -1) die_fatal("unable to open pipe", 0, 0); signal(SIGCHLD, trigger); if (channel_waitnohang(&exitsignal, &exitcode)) { packet_channel_send_eof(&b2); if (!packet_channel_send_close(&b2, exitsignal, exitcode)) die_fatal("unable to close channel", 0, 0); } } /* send data to network */ if (watch1) if (!packet_send()) die_fatal("unable to send data to network", 0, 0); /* receive data from network */ if (watch0) { alarm(3600); /* refresh timeout */ if (!packet_recv()) { if (channel_iseof()) break; /* XXX */ die_fatal("unable to receive data from network", 0, 0); } } /* process packets */ for (;;) { if (!packet_get(&b1, 0)) { if (!errno) break; die_fatal("unable to get packets from network", 0, 0); } if (b1.len < 1) break; /* XXX */ switch (b1.buf[0]) { case SSH_MSG_CHANNEL_OPEN: if (!packet_channel_open(&b1, &b2)) die_fatal("unable to open channel", 0, 0); break; case SSH_MSG_CHANNEL_REQUEST: if (!packet_channel_request(&b1, &b2)) die_fatal("unable to handle channel-request", 0, 0); break; case SSH_MSG_CHANNEL_DATA: if (!packet_channel_recv_data(&b1)) die_fatal("unable to handle channel-data", 0, 0); break; case SSH_MSG_CHANNEL_EXTENDED_DATA: if (!packet_channel_recv_extendeddata(&b1)) die_fatal("unable to handle channel-extended-data", 0, 0); break; case SSH_MSG_CHANNEL_WINDOW_ADJUST: if (!packet_channel_recv_windowadjust(&b1)) die_fatal("unable to handle channel-window-adjust", 0, 0); break; case SSH_MSG_CHANNEL_EOF: if (!packet_channel_recv_eof(&b1)) die_fatal("unable to handle channel-eof", 0, 0); break; case SSH_MSG_CHANNEL_CLOSE: if (!packet_channel_recv_close(&b1)) die_fatal("unable to handle channel-close", 0, 0); break; case SSH_MSG_KEXINIT: goto rekeying; default: if (!packet_unimplemented(&b1)) die_fatal("unable to send SSH_MSG_UNIMPLEMENTED message", 0, 0); } } } log_i1("finished"); global_die(0); return 111; } tinyssh-20180201/tinyssh/tinysshd.exp000066400000000000000000000633431322704306500175510ustar00rootroot00000000000000--- tinysshd don't accept long hello message 111 --- tinysshd don't accept short hello message 111 --- tinysshd don't accept lower case SSH in hello message 111 --- tinysshd don't accept too many unauthenticated messages 0 --- tinysshd default setup _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -osp _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256,ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519,ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -o -s -p _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256,ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519,ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -osP _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256,ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519,ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -o -s -P _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256,ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519,ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -oSp _tinysshd-printkex: info: kex algorithms: ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -o -S -p _tinysshd-printkex: info: kex algorithms: ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -oSP _tinysshd-printkex: info: kex algorithms: ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -o -S -P _tinysshd-printkex: info: kex algorithms: ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -Osp _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -O -s -p _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -OsP _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -O -s -P _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -OSp _tinysshd-printkex: info: kex algorithms: _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -O -S -p _tinysshd-printkex: info: kex algorithms: _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -OSP _tinysshd-printkex: info: kex algorithms: _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: _tinysshd-printkex: info: encryption algorithms server to client: _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -O -S -P _tinysshd-printkex: info: kex algorithms: _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: _tinysshd-printkex: info: encryption algorithms server to client: _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -osp, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256,ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -o -s -p, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256,ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -osP, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256,ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -o -s -P, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256,ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -oSp, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -o -S -p, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -oSP, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -o -S -P, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -Osp, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -O -s -p, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -OsP, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -O -s -P, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256 _tinysshd-printkex: info: server host key algorithms: ssh-ed25519 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -OSp, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -O -S -p, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -OSP, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: _tinysshd-printkex: info: encryption algorithms server to client: _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -O -S -P, ecdsa-sha2-nistp256 key missing _tinysshd-printkex: info: kex algorithms: _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: _tinysshd-printkex: info: encryption algorithms server to client: _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -osp, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256,ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -o -s -p, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256,ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -osP, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256,ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -o -s -P, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256,ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -oSp, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -o -S -p, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com,aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -oSP, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -o -S -P, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: ecdh-sha2-nistp256 _tinysshd-printkex: info: server host key algorithms: ecdsa-sha2-nistp256 _tinysshd-printkex: info: encryption algorithms client to server: aes256-ctr _tinysshd-printkex: info: encryption algorithms server to client: aes256-ctr _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -Osp, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256 _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -O -s -p, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256 _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -OsP, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256 _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -O -s -P, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: curve25519-sha256@libssh.org,curve25519-sha256 _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -OSp, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -O -S -p, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: chacha20-poly1305@openssh.com _tinysshd-printkex: info: encryption algorithms server to client: chacha20-poly1305@openssh.com _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -OSP, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: _tinysshd-printkex: info: encryption algorithms server to client: _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 --- tinysshd recognizes -O -S -P, ssh-ed25519 key missing _tinysshd-printkex: info: kex algorithms: _tinysshd-printkex: info: server host key algorithms: _tinysshd-printkex: info: encryption algorithms client to server: _tinysshd-printkex: info: encryption algorithms server to client: _tinysshd-printkex: info: mac algorithms client to server: hmac-sha2-256 _tinysshd-printkex: info: mac algorithms server to client: hmac-sha2-256 tinyssh-20180201/tinyssh/tinysshd.rts000066400000000000000000000100721322704306500175540ustar00rootroot00000000000000#!/bin/sh LANG=C export LANG LC_ALL=C export LC_ALL exec 2>&1 rm -rf keydir ./tinysshd-makekey keydir echo "--- tinysshd don't accept long hello message" echo echo 'SSH-2.0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' | ./tinysshd keydir 1>/dev/null 2>/dev/null echo $? echo echo "--- tinysshd don't accept short hello message" echo echo 'SSH' | ./tinysshd keydir 1>/dev/null 2>/dev/null echo $? echo echo "--- tinysshd don't accept lower case SSH in hello message" echo echo 'ssh-2.0 xxx' | ./tinysshd keydir 1>/dev/null 2>/dev/null echo $? echo echo "--- tinysshd don't accept too many unauthenticated messages" echo ./_tinysshd-unauthenticated ./tinysshd keydir echo $? echo echo '--- tinysshd default setup' echo ./_tinysshd-printkex ./tinysshd keydir echo for i in o O; do for j in s S; do for k in p P; do echo "--- tinysshd recognizes -${i}${j}${k}" echo ./_tinysshd-printkex ./tinysshd "-${i}${j}${k}" keydir echo echo "--- tinysshd recognizes -${i} -${j} -${k}" echo ./_tinysshd-printkex ./tinysshd "-${i}" "-${j}" "-${k}" keydir echo done done done rm -rf keydir ./tinysshd-makekey keydir rm -f keydir/nistp256ecdsa.pk for i in o O; do for j in s S; do for k in p P; do echo "--- tinysshd recognizes -${i}${j}${k}, ecdsa-sha2-nistp256 key missing" echo ./_tinysshd-printkex ./tinysshd "-${i}${j}${k}" keydir echo echo "--- tinysshd recognizes -${i} -${j} -${k}, ecdsa-sha2-nistp256 key missing" echo ./_tinysshd-printkex ./tinysshd "-${i}" "-${j}" "-${k}" keydir echo done done done rm -rf keydir ./tinysshd-makekey keydir rm -f keydir/ed25519.pk for i in o O; do for j in s S; do for k in p P; do echo "--- tinysshd recognizes -${i}${j}${k}, ssh-ed25519 key missing" echo "" ./_tinysshd-printkex ./tinysshd "-${i}${j}${k}" keydir echo echo "--- tinysshd recognizes -${i} -${j} -${k}, ssh-ed25519 key missing" echo ./_tinysshd-printkex ./tinysshd "-${i}" "-${j}" "-${k}" keydir echo done done done #temporary removed exit 0 rm -rf keydir ./tinysshd-makekey keydir echo "--- tinysshd logs 'client closed connection' when trying to write hello message" echo "" ./_tinysshd-test-hello1 ./tinysshd keydir 2>&1 | sed -e 's/tinysshd: .*: //' -e 's/SSH-.*//' -e 's/{.*}//' echo "" echo "--- tinysshd logs 'client closed the connection' when trying to read hello message" echo "" ./_tinysshd-test-hello2 '' ./tinysshd keydir 2>&1 | sed -e 's/tinysshd: .*: //' -e 's/SSH-.*//' -e 's/{.*}//' echo "" echo "--- tinysshd 'logs unacceptable hello string' when trying to read hello message" echo "" ./_tinysshd-test-hello2 SSH ./tinysshd keydir 2>&1 | sed -e 's/tinysshd: .*: //' -e 's/SSH-.*//' -e 's/{.*}//' echo "" echo "--- tinysshd 'logs unacceptable hello string' when trying to read hello message" echo "" ./_tinysshd-test-hello2 ssh- ./tinysshd keydir 2>&1 | sed -e 's/tinysshd: .*: //' -e 's/SSH-.*//' -e 's/{.*}//' echo "" echo "--- tinysshd 'logs unacceptable hello string' when trying to read long hello message" echo "" ./_tinysshd-test-hello2 'SSH-2.0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' ./tinysshd -v keydir 2>&1 | sed -e 's/tinysshd: .*: //' -e 's/SSH-.*//' -e 's/{.*}//' echo "" echo "--- tinysshd 'logs kex problem' when client closed the connection - ends with (connection reset) or (broken pipe)" echo "" ./_tinysshd-test-kex1 ./tinysshd keydir 2>&1 | sed -e 's/tinysshd: .*: //' -e 's/{.*}//' -e 's/(.*)//' echo "" echo "--- tinysshd 'logs kex problem' when client disconnected the connection" echo "" ./_tinysshd-test-kex2 ./tinysshd keydir 2>&1 | sed -e 's/tinysshd: .*: //' -e 's/{.*}//' echo "" exit 0 tinyssh-20180201/tinyssh/trymlock.c000066400000000000000000000006751322704306500171750ustar00rootroot00000000000000/* 20120923 Jan Mojzis Public domain. */ #include "hasmlock.h" #ifdef HASMLOCK #include #endif #include "trymlock.h" /* The 'trymlock' function tries to lock the memory to make it unswappable. */ void trymlock(void *x, long long len) { #ifdef HASMLOCK mlock(x, len); #endif } /* The 'trymunlock' function tries to unlock the memory. */ void trymunlock(void *x, long long len) { #ifdef HASMLOCK munlock(x, len); #endif } tinyssh-20180201/tinyssh/trymlock.h000066400000000000000000000002151322704306500171700ustar00rootroot00000000000000#ifndef _TRYMLOCK_H____ #define _TRYMLOCK_H____ extern void trymlock(void *, long long); extern void trymunlock(void *, long long); #endif tinyssh-20180201/tinyssh/writeall.c000066400000000000000000000011331322704306500171420ustar00rootroot00000000000000/* taken from nacl-20110221, from curvecp/writeall.c */ #include #include #include "e.h" #include "writeall.h" int writeall(int fd,const void *xv,long long xlen) { char *x = (char *)xv; long long w; while (xlen > 0) { w = xlen; if (w > 1048576) w = 1048576; w = write(fd,x,w); if (w < 0) { if (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK) { struct pollfd p; p.fd = fd; p.events = POLLOUT | POLLERR; poll(&p,1,-1); continue; } return -1; } x += w; xlen -= w; } return 0; } tinyssh-20180201/tinyssh/writeall.h000066400000000000000000000001401322704306500171440ustar00rootroot00000000000000#ifndef WRITEALL_H #define WRITEALL_H extern int writeall(int,const void *,long long); #endif