From cb0d6611a39a78dae3fc7badc0f46b18653ce418 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Tue, 9 Mar 2010 22:51:36 +0100 Subject: [PATCH 01/26] Bug#51607: Automake distcheck target broken. Reason for the error was that ./configure wrapper script was not safe for VPATH builds used by "make distcheck", specifically it expected configure.am to be in the current directory. Fix changes configure wrapper to resolve script names relative to configure script path. Also, use $top_srcdir/configure.am instead of configure.am in dist-hook to be more VPATH friendly. --- BUILD/choose_configure.sh | 5 +++-- Makefile.am | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/BUILD/choose_configure.sh b/BUILD/choose_configure.sh index 476b8b51657..80423205274 100644 --- a/BUILD/choose_configure.sh +++ b/BUILD/choose_configure.sh @@ -5,10 +5,11 @@ # Ensure cmake and perl are there cmake -P cmake/check_minimal_version.cmake >/dev/null 2>&1 || HAVE_CMAKE=no perl --version >/dev/null 2>&1 || HAVE_CMAKE=no +scriptdir=`dirname $0` if test "$HAVE_CMAKE" = "no" then - sh ./configure.am "$@" + sh $scriptdir/configure.am "$@" else - perl ./cmake/configure.pl "$@" + perl $scriptdir/cmake/configure.pl "$@" fi diff --git a/Makefile.am b/Makefile.am index f64b26602d7..fbb7605493e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -60,7 +60,8 @@ dist-hook: --datadir=$(distdir)/win/data \ --srcdir=$(top_srcdir) storage/myisam/myisamchk --silent --fast $(distdir)/win/data/mysql/*.MYI - test ! -f configure.am || $(INSTALL_DATA) configure.am $(distdir) + test ! -f $(top_srcdir)/configure.am || \ + $(INSTALL_DATA) $(top_srcdir)/configure.am $(distdir) all-local: @ABI_CHECK@ From ff6385af709b4ce502c9d8a9d1764b34ec992c56 Mon Sep 17 00:00:00 2001 From: Joerg Bruehe Date: Sat, 13 Mar 2010 22:17:47 +0100 Subject: [PATCH 02/26] Fix C++ style comments, they cause syntax errors in C file. --- mysys/typelib.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mysys/typelib.c b/mysys/typelib.c index c332c82d17a..7681ff581ac 100644 --- a/mysys/typelib.c +++ b/mysys/typelib.c @@ -354,11 +354,11 @@ my_ulonglong find_set_from_flags(const TYPELIB *lib, uint default_name, !(value= parse_name(&on_off_default_typelib, &pos, end))) goto err; - if (value == 1) // this is '=off' + if (value == 1) /* this is '=off' */ flags_to_clear|= bit; - else if (value == 2) // this is '=on' + else if (value == 2) /* this is '=on' */ flags_to_set|= bit; - else // this is '=default' + else /* this is '=default' */ { if (default_set & bit) flags_to_set|= bit; From 89ea96a426edc56fe32fb91b47345c485b0261b2 Mon Sep 17 00:00:00 2001 From: Joerg Bruehe Date: Mon, 15 Mar 2010 18:15:10 +0100 Subject: [PATCH 03/26] This is a temporary hack to build 5.5.3-m3: The "cmake" way still shows issues in our release build environment. Block it temporarily, but in a way that can easily be undone. This change is to be reverted once the problems are solved. --- BUILD/choose_configure.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/BUILD/choose_configure.sh b/BUILD/choose_configure.sh index 476b8b51657..df1fdf0a55b 100644 --- a/BUILD/choose_configure.sh +++ b/BUILD/choose_configure.sh @@ -2,6 +2,11 @@ # Choose whether to use autoconf created configure # of perl script that calls cmake. +# This is a temporary hack to build 5.5.3-m3: +# The "cmake" way still shows issues in our release build environment. +# Block it temporarily, but in a way that can easily be undone. +HAVE_CMAKE=no + # Ensure cmake and perl are there cmake -P cmake/check_minimal_version.cmake >/dev/null 2>&1 || HAVE_CMAKE=no perl --version >/dev/null 2>&1 || HAVE_CMAKE=no From 8bb0186df0779ebc83439f58a22143a83dbfbfeb Mon Sep 17 00:00:00 2001 From: Joerg Bruehe Date: Mon, 15 Mar 2010 19:01:22 +0100 Subject: [PATCH 04/26] Another case of C++ syntax used for a comment in C. --- dbug/dbug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbug/dbug.c b/dbug/dbug.c index 9bcea988b33..01ce6f80768 100644 --- a/dbug/dbug.c +++ b/dbug/dbug.c @@ -1365,7 +1365,7 @@ static void DbugVfprintf(FILE *stream, const char* format, va_list args) { char cvtbuf[1024]; size_t len; - // Do not use my_vsnprintf, it does not support "%g". + /* Do not use my_vsnprintf, it does not support "%g". */ len = vsnprintf(cvtbuf, sizeof(cvtbuf), format, args); (void) fprintf(stream, "%s\n", cvtbuf); } From 0905a08a62c9a82af73ad92b741f6568d24fe8cb Mon Sep 17 00:00:00 2001 From: Joerg Bruehe Date: Mon, 15 Mar 2010 19:13:37 +0100 Subject: [PATCH 05/26] Fix for bug#51938, extracted from a work-in-progress development branch just for the build of 5.5.3-m3. --- scripts/mysqld_safe.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index a4ce5f9575b..5420ebd908e 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -699,7 +699,7 @@ fi cmd="`mysqld_ld_preload_text`$NOHUP_NICENESS" -plugin_dir="${PLUGIN_DIR:-@PLUGINDIR@}${PLUGIN_VARIANT}" +plugin_dir="${PLUGIN_DIR:-@pkgplugindir@}${PLUGIN_VARIANT}" for i in "$ledir/$MYSQLD" "$defaults" "--basedir=$MY_BASEDIR_VERSION" \ "--datadir=$DATADIR" "--plugin-dir=$plugin_dir" "$USER_OPTION" From 87c99474919f3a17ced6841f22d48f815051248c Mon Sep 17 00:00:00 2001 From: Joerg Bruehe Date: Tue, 16 Mar 2010 20:10:45 +0100 Subject: [PATCH 06/26] Fix a syntax error: A variable declaration was preceded by "DBUG_PRINT()". --- sql-common/client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-common/client.c b/sql-common/client.c index 88da0242f5b..676ec82d8de 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -2350,8 +2350,8 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, (unix_socket || mysql_unix_port) && (!host || !strcmp(host,LOCAL_HOST))) { - DBUG_PRINT("info", ("Using socket")); my_socket sock= socket(AF_UNIX, SOCK_STREAM, 0); + DBUG_PRINT("info", ("Using socket")); if (sock == SOCKET_ERROR) { set_mysql_extended_error(mysql, CR_SOCKET_CREATE_ERROR, From 82b4452bd5e4c3fd3853d3e5435bba3e9701f598 Mon Sep 17 00:00:00 2001 From: Joerg Bruehe Date: Mon, 22 Mar 2010 16:02:31 +0100 Subject: [PATCH 07/26] Some fixes for the build on Windows as found necessary during the release build of 5.5.3-m3. --- scripts/CMakeLists.txt | 3 ++- scripts/make_win_bin_dist | 8 +++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index 26dfb243897..e6ce5717d95 100755 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -261,7 +261,8 @@ IF(WIN32) SET(PLIN_FILES mysql_config mysql_secure_installation) # Input files with .sh extension - SET(SH_FILES mysql_convert_table_format mysqld_multi) + SET(SH_FILES mysql_convert_table_format mysqld_multi mysqldumpslow + mysqlhotcopy) FOREACH(file ${PLIN_FILES}) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.pl.in diff --git a/scripts/make_win_bin_dist b/scripts/make_win_bin_dist index 51271a3dad0..7e8428bfe5c 100755 --- a/scripts/make_win_bin_dist +++ b/scripts/make_win_bin_dist @@ -158,7 +158,6 @@ cp tests/$TARGET/*.exe $DESTDIR/bin/ cp libmysql/$TARGET/libmysql.dll $DESTDIR/bin/ cp sql/$TARGET/mysqld.exe $DESTDIR/bin/mysqld$EXE_SUFFIX.exe -cp sql/$TARGET/mysqld.map $DESTDIR/bin/mysqld$EXE_SUFFIX.map if [ x"$TARGET" != x"release" ] ; then cp sql/$TARGET/mysqld.pdb $DESTDIR/bin/mysqld$EXE_SUFFIX.pdb fi @@ -167,7 +166,6 @@ if [ x"$PACK_DEBUG" = x"" -a -f "sql/debug/mysqld.exe" -o \ x"$PACK_DEBUG" = x"yes" ] ; then cp sql/debug/mysqld.exe $DESTDIR/bin/mysqld-debug.exe cp sql/debug/mysqld.pdb $DESTDIR/bin/mysqld-debug.pdb - cp sql/debug/mysqld.map $DESTDIR/bin/mysqld-debug.map fi # ---------------------------------------------------------------------- @@ -397,15 +395,15 @@ cp scripts/*.sql $DESTDIR/share/ # Clean up from possibly copied SCCS directories # ---------------------------------------------------------------------- -rm -rf `find $DISTDIR -type d -name SCCS -print` +rm -rf `find $DESTDIR -type d -name SCCS -print` # ---------------------------------------------------------------------- # Copy other files specified on command line DEST=SOURCE # ---------------------------------------------------------------------- for arg do - dst=`echo $arg | sed 's/=.*$//'` - src=`echo $arg | sed 's/^.*=//'` + dst=`echo $arg | sed -n 's/=.*$//p'` + src=`echo $arg | sed -n 's/^.*=//p'` if [ x"$dst" = x"" -o x"$src" = x"" ] ; then echo "Invalid specification of what to copy" From adbd8fe6e7789daabd9cc0fb3d0f27bcef1a4f80 Mon Sep 17 00:00:00 2001 From: Joerg Bruehe Date: Mon, 22 Mar 2010 16:19:39 +0100 Subject: [PATCH 08/26] Fixes related to bug#46587: archive storage engine headers don't include my_global.h first During the build of 5.5.3-m3 on older Linux platforms (kernels 2.4 or early 2.6), the symptom described in the bug report occurred both in the "archive" and in the "innobase" storage engine. This change is the patch proposed in that bug report, and a similar one in innobase, that latter is aligned with Vasil Dimov of Innobase, the original author. --- storage/archive/azlib.h | 8 ++++++-- storage/innobase/trx/trx0i_s.c | 9 ++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/storage/archive/azlib.h b/storage/archive/azlib.h index d7abb40b2ae..2bfc22c6b2b 100644 --- a/storage/archive/azlib.h +++ b/storage/archive/azlib.h @@ -33,11 +33,15 @@ (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). */ -#include - #include "../../mysys/mysys_priv.h" #include +/* See bug#46587: + As described in the bug report, this placement is a fix. + It is needed to build 5.5.3-m3 on Linux 2.4 and early 2.6 kernels. +*/ +#include + #ifdef __cplusplus extern "C" { #endif diff --git a/storage/innobase/trx/trx0i_s.c b/storage/innobase/trx/trx0i_s.c index 1b20eaabf42..a3f73e0c9e8 100644 --- a/storage/innobase/trx/trx0i_s.c +++ b/storage/innobase/trx/trx0i_s.c @@ -28,11 +28,18 @@ table cache" for later retrieval. Created July 17, 2007 Vasil Dimov *******************************************************/ +/* Found during the build of 5.5.3 on Linux 2.4 and early 2.6 kernels: + The includes "univ.i" -> "my_global.h" cause a different path + to be taken further down with pthread functions and types, + so they must come first. + From the symptoms, this is related to bug#46587 in the MySQL bug DB. +*/ +#include "univ.i" + #include #include "mysql_addons.h" -#include "univ.i" #include "buf0buf.h" #include "dict0dict.h" #include "ha0storage.h" From b684173e3352c954a07845b891caae42462e9f0e Mon Sep 17 00:00:00 2001 From: Luis Soares Date: Wed, 24 Mar 2010 18:55:06 +0000 Subject: [PATCH 09/26] BUG#52341: PB2: rpl tests started taking three times more time on linux x86_64 max Rpl tests were surprisingly taking too long when server was built using cmake on linux. This was because cmake counter part of patch for WL#4949 was not defining SIGNAL_WITH_VIO_CLOSE flag, which had negative impact on the time needed to stop the slave IO thread on STOP SLAVE command. We fix this by deploy the missing SET command on configure.cmake. --- configure.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.cmake b/configure.cmake index 31e38aaa2cd..94d2cfd5804 100644 --- a/configure.cmake +++ b/configure.cmake @@ -913,6 +913,7 @@ ENDIF() SET(NO_ALARM "${HAVE_SOCKET_TIMEOUT}" CACHE BOOL "No need to use alarm to implement socket timeout") +SET(SIGNAL_WITH_VIO_CLOSE "${HAVE_SOCKET_TIMEOUT}") MARK_AS_ADVANCED(NO_ALARM) From d3c3a14e0a84c9d8e56ad68f440b2cf0eb873353 Mon Sep 17 00:00:00 2001 From: Joerg Bruehe Date: Wed, 24 Mar 2010 20:01:01 +0100 Subject: [PATCH 10/26] Some fixes developed during the build of 5.5.3-m3 about handling the debug plugin files, also "ha_example.*" are dropped. --- support-files/mysql.spec.sh | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index f02773e73b9..734136939fb 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -565,10 +565,10 @@ install -d $RBR%{_sbindir} mkdir $RBR/tmp-debug-plugin $MBD/plugin/debug ( cd $RPM_BUILD_DIR/mysql-%{mysql_version}/mysql-debug-%{mysql_version}/plugin make install DESTDIR=$RBR/tmp-debug-plugin - mv $RBR/tmp-debug-plugin/usr/local/mysql/lib/mysql/plugin/* $MBD/plugin/debug/ + mv $RBR/tmp-debug-plugin/usr/lib*/mysql/plugin/* $MBD/plugin/debug/ # From here, the install hook in "plugin/Makefile.am" will do the rest. ) -rmdir -p $RBR/tmp-debug-plugin/usr/local/mysql/lib/mysql/plugin +rmdir -p $RBR/tmp-debug-plugin/usr/lib*/mysql/plugin || true # Install all binaries (cd $MBD && make install DESTDIR=$RBR testroot=%{_datadir}) @@ -605,8 +605,8 @@ ln -s %{_sysconfdir}/init.d/mysql $RBR%{_sbindir}/rcmysql touch $RBR%{_sysconfdir}/my.cnf %if %{WITH_TCMALLOC} -# Even though this is a shared library, put it under /usr/lib/mysql, so it -# doesn't conflict with possible shared lib by the same name in /usr/lib. See +# Even though this is a shared library, put it under /usr/lib*/mysql, so it +# doesn't conflict with possible shared lib by the same name in /usr/lib*. See # `mysql_config --variable=pkglibdir` and mysqld_safe for how this is used. install -m 644 "%{malloc_lib_source}" "$RBR%{_libdir}/mysql/%{malloc_lib_target}" %endif @@ -874,10 +874,8 @@ fi %attr(755, root, root) %{_sbindir}/mysqld %attr(755, root, root) %{_sbindir}/mysqld-debug %attr(755, root, root) %{_sbindir}/rcmysql -%attr(755, root, root) %{_libdir}/mysql/plugin/ha_example.so* %attr(755, root, root) %{_libdir}/mysql/plugin/semisync_master.so* %attr(755, root, root) %{_libdir}/mysql/plugin/semisync_slave.so* -%attr(755, root, root) %{_libdir}/mysql/plugin/debug/ha_example.so* %attr(755, root, root) %{_libdir}/mysql/plugin/debug/semisync_master.so* %attr(755, root, root) %{_libdir}/mysql/plugin/debug/semisync_slave.so* @@ -1008,14 +1006,10 @@ fi %{_libdir}/mysql/libvio.a %{_libdir}/mysql/libz.a %{_libdir}/mysql/libz.la -%{_libdir}/mysql/plugin/ha_example.a -%{_libdir}/mysql/plugin/ha_example.la %{_libdir}/mysql/plugin/semisync_master.a %{_libdir}/mysql/plugin/semisync_master.la %{_libdir}/mysql/plugin/semisync_slave.a %{_libdir}/mysql/plugin/semisync_slave.la -%{_libdir}/mysql/plugin/debug/ha_example.a -%{_libdir}/mysql/plugin/debug/ha_example.la %{_libdir}/mysql/plugin/debug/semisync_master.a %{_libdir}/mysql/plugin/debug/semisync_master.la %{_libdir}/mysql/plugin/debug/semisync_slave.a @@ -1055,6 +1049,16 @@ fi # merging BK trees) ############################################################################## %changelog +* Mon Mar 22 2010 Joerg Bruehe + +- User "usr/lib*" to allow for both "usr/lib" and "usr/lib64", + mask "rmdir" return code 1. +- Remove "ha_example.*" files from the list, they aren't built. + +* Wed Mar 17 2010 Joerg Bruehe + +- Fix a wrong path name in handling the debug plugins. + * Wed Mar 10 2010 Joerg Bruehe - Take the result of the debug plugin build and put it into the optimized tree, From 2067e6c46f8fdde3fca6109ebe71fd85aeb09ff6 Mon Sep 17 00:00:00 2001 From: Joerg Bruehe Date: Wed, 24 Mar 2010 20:15:06 +0100 Subject: [PATCH 11/26] Fix an issue with the IBM C++ compiler which was detected during the build of 5.5.3-m3. This requires version 9 of IBM C++ to help. More fixes will still be needed, it is very strict (or rather: a bit picky?) about templates. --- sql/mdl.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sql/mdl.h b/sql/mdl.h index 124151798ae..2fb21a5aa18 100644 --- a/sql/mdl.h +++ b/sql/mdl.h @@ -15,6 +15,14 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#if defined(__IBMC__) || defined(__IBMCPP__) +/* Further down, "next_in_lock" and "next_in_context" have the same type, + and in "sql_plist.h" this leads to an identical signature, which causes + problems in function overloading. +*/ +#pragma namemangling(v5) +#endif + #include "sql_plist.h" #include From 8a5aca0dc7861eff472ad04f7aa1029e78822654 Mon Sep 17 00:00:00 2001 From: Joerg Bruehe Date: Wed, 24 Mar 2010 20:30:33 +0100 Subject: [PATCH 12/26] Add "--with-perfschema" to the configure options for RPMs. --- support-files/mysql.spec.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 734136939fb..7d74d90559c 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -430,6 +430,7 @@ sh -c "PATH=\"${MYSQL_BUILD_PATH:-$PATH}\" \ --with-plugin-archive \ --with-plugin-blackhole \ --with-plugin-federated \ + --with-perfschema \ --without-plugin-daemon_example \ --without-plugin-ftexample \ %if %{EMBEDDED_BUILD} @@ -1049,6 +1050,10 @@ fi # merging BK trees) ############################################################################## %changelog +* Wed Mar 24 2010 Joerg Bruehe + +- Add "--with-perfschema" to the configure options. + * Mon Mar 22 2010 Joerg Bruehe - User "usr/lib*" to allow for both "usr/lib" and "usr/lib64", From c340c3aa107318924a5f499b05697dfa3f62e278 Mon Sep 17 00:00:00 2001 From: Luis Soares Date: Thu, 25 Mar 2010 00:30:16 +0000 Subject: [PATCH 13/26] BUG#52202: mysqlbinlog_row* fail in daily-trunk on Sol10 x86_64 debug_max There was a buffer overrun when unpacking the date field. Incidentaly, this seems to affect only solaris x86_64 debug builds, but others platforms may be vulnerable as well. In particular, the buffer size used was not taking into consideration that the '\0' character would be written into it. We fix this by increasing the size of the buffer used to accommodate one extra byte (the one for the '\0'). --- sql/log_event.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/log_event.cc b/sql/log_event.cc index 6412f0047d1..f23e30f2024 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -1717,8 +1717,8 @@ log_event_print_value(IO_CACHE *file, const uchar *ptr, { uint32 tmp= uint3korr(ptr); int part; - char buf[10]; - char *pos= &buf[10]; + char buf[11]; + char *pos= &buf[10]; // start from '\0' to the beginning /* Copied from field.cc */ *pos--=0; // End NULL From 7decb1b9289cf1ea125a0a09e74b7b9bac025fec Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Mon, 12 Apr 2010 03:31:45 -0600 Subject: [PATCH 14/26] Bug#52754 Build break in mysql-trunk, performance schema unit test Tree cleaup after the last major merges in mysql-trunk: The files sql/lex_hash.h and sql/sql_yacc.h are automatically generated, and should not be checked in the configuration management system. These files are now removed. No changes are required for .bzrignore, which already listed these files (and similar files in libmysqld/). The file storage/perfschema/unittest/pfs_timer-t.cc did not build after the header files refactoring affecting mysql_priv.h The file now builds properly using sql_priv.h --- sql/lex_hash.h | 6383 -------------------- sql/sql_yacc.h | 1291 ---- storage/perfschema/unittest/pfs_timer-t.cc | 2 +- 3 files changed, 1 insertion(+), 7675 deletions(-) delete mode 100644 sql/lex_hash.h delete mode 100644 sql/sql_yacc.h diff --git a/sql/lex_hash.h b/sql/lex_hash.h deleted file mode 100644 index 60b54ef118f..00000000000 --- a/sql/lex_hash.h +++ /dev/null @@ -1,6383 +0,0 @@ -/* - - Do not edit this file directly! - -*/ -/* Copyright 2001-2008 MySQL AB, 2008 Sun Microsystems, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston - MA 02110-1301 USA. */ - -/* Do not edit this file! This is generated by gen_lex_hash.cc -that seeks for a perfect hash function */ - -#include "lex.h" - -static uchar sql_functions_map[12988]= { -'<', '>', 29, 0, -'!', '|', 32, 0, -'<', 'X', 150, 0, -'B', 'Y', 46, 1, -'A', 'W', 211, 2, -'A', 'V', 68, 4, -'A', 'W', 169, 5, -'C', 'Z', 100, 7, -'A', 'V', 31, 9, -'A', 'Y', 205, 9, -'C', 'U', 169, 10, -'C', 'V', 17, 11, -'D', 'U', 174, 11, -'A', 'U', 206, 11, -'A', 'S', 19, 12, -'H', 'U', 82, 12, -'C', 'S', 96, 12, -'C', 'S', 140, 12, -0, 0, 211, 1, -'M', 'M', 157, 12, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 29, 1, -0, 0, 31, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 27, 1, -0, 0, 1, 0, -0, 0, 5, 0, -0, 0, 6, 0, -0, 0, 4, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 0, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'<', '>', 124, 0, -0, 0, 61, 2, -'=', '>', 127, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'S', 'T', 129, 0, -0, 0, 47, 0, -0, 0, 61, 2, -0, 0, 134, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'F', 'S', 131, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 71, 1, -'N', 'R', 145, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 2, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 55, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 60, 2, -0, 0, 8, 0, -0, 0, 2, 0, -0, 0, 3, 0, -0, 0, 7, 0, -0, 0, 9, 0, -0, 0, 23, 0, -0, 0, 27, 0, -0, 0, 205, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 209, 0, -0, 0, 229, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 232, 0, -0, 0, 82, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 90, 1, -0, 0, 10, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'D', 'V', 179, 0, -0, 0, 40, 0, -0, 0, 93, 0, -'A', 'I', 220, 0, -0, 0, 146, 0, -0, 0, 177, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'N', 'P', 229, 0, -0, 0, 61, 2, -0, 0, 238, 0, -0, 0, 61, 2, -'A', 'O', 232, 0, -'D', 'O', 2, 1, -'N', 'U', 18, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 167, 1, -'E', 'U', 26, 1, -0, 0, 61, 2, -0, 0, 27, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'M', 'O', 43, 1, -0, 0, 13, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 17, 0, -0, 0, 61, 2, -'D', 'Y', 198, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 24, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 31, 0, -0, 0, 21, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 22, 0, -0, 0, 109, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 115, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 133, 0, -0, 0, 220, 0, -0, 0, 61, 2, -0, 0, 231, 0, -0, 0, 243, 255, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'D', 'N', 247, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 52, 1, -0, 0, 242, 255, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 241, 255, -0, 0, 66, 1, -0, 0, 69, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'T', 'W', 14, 1, -0, 0, 75, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 240, 255, -0, 0, 83, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 92, 1, -0, 0, 186, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 204, 1, -0, 0, 61, 2, -0, 0, 223, 1, -0, 0, 237, 255, -0, 0, 230, 255, -0, 0, 56, 2, -0, 0, 61, 2, -0, 0, 54, 2, -'L', 'Y', 70, 1, -'A', 'U', 90, 1, -'A', 'U', 135, 1, -'A', 'X', 162, 1, -'A', 'U', 204, 1, -0, 0, 61, 2, -'A', 'O', 225, 1, -'N', 'N', 243, 1, -0, 0, 237, 0, -'E', 'I', 20, 2, -'A', 'O', 25, 2, -0, 0, 53, 1, -'A', 'U', 78, 2, -0, 0, 85, 1, -'A', 'R', 99, 2, -0, 0, 61, 2, -'E', 'O', 117, 2, -'H', 'T', 138, 2, -'E', 'Y', 151, 2, -'N', 'S', 190, 2, -0, 0, 48, 2, -'A', 'O', 196, 2, -0, 0, 53, 2, -0, 0, 57, 2, -0, 0, 41, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'O', 'T', 84, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 48, 0, -0, 0, 43, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 45, 0, -'L', 'S', 111, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 58, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 68, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 96, 0, -0, 0, 50, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'T', 119, 1, -0, 0, 53, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 251, 255, -'T', 'T', 156, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 123, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 130, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 136, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 137, 0, -'A', 'E', 157, 1, -0, 0, 103, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 107, 0, -0, 0, 141, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 142, 0, -0, 0, 61, 2, -'D', 'U', 186, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 160, 0, -0, 0, 147, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 150, 0, -0, 0, 166, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 170, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 181, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 182, 0, -0, 0, 194, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 196, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'S', 'U', 240, 1, -0, 0, 198, 0, -0, 0, 61, 2, -0, 0, 200, 0, -'T', 'T', 244, 1, -'1', 'O', 245, 1, -0, 0, 221, 0, -0, 0, 222, 0, -0, 0, 223, 0, -0, 0, 224, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 225, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 228, 0, -0, 0, 239, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 241, 0, -0, 0, 243, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'F', 'S', 40, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'K', 'S', 54, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'O', 63, 2, -0, 0, 247, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 248, 0, -0, 0, 250, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 255, 0, -0, 0, 0, 1, -0, 0, 61, 2, -0, 0, 4, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 7, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 8, 1, -0, 0, 11, 1, -0, 0, 62, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 70, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 74, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 77, 1, -0, 0, 98, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 109, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 113, 1, -'A', 'A', 128, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 168, 1, -'D', 'L', 129, 2, -0, 0, 126, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 130, 1, -0, 0, 188, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 194, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 198, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 228, 1, -0, 0, 248, 1, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'E', 172, 2, -0, 0, 251, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'I', 'U', 177, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 9, 2, -0, 0, 249, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 250, 1, -0, 0, 227, 255, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 7, 2, -0, 0, 15, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 28, 2, -0, 0, 42, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 44, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 45, 2, -0, 0, 49, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 50, 2, -'F', 'S', 234, 2, -'E', 'T', 248, 2, -'A', 'R', 8, 3, -0, 0, 61, 2, -'R', 'V', 31, 3, -'A', 'O', 42, 3, -'R', 'R', 75, 3, -0, 0, 199, 0, -'N', 'N', 91, 3, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'O', 104, 3, -'A', 'U', 151, 3, -'A', 'C', 172, 3, -'R', 'W', 175, 3, -'H', 'U', 181, 3, -'U', 'U', 195, 3, -'A', 'T', 201, 3, -'H', 'W', 240, 3, -'A', 'Y', 0, 4, -'N', 'S', 25, 4, -0, 0, 35, 2, -'H', 'R', 52, 4, -0, 0, 14, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 19, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 25, 0, -0, 0, 35, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 42, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 46, 0, -0, 0, 49, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'E', 26, 3, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 66, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 250, 255, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 95, 0, -0, 0, 55, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 0, -0, 0, 151, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'E', 36, 3, -'N', 'R', 37, 3, -0, 0, 155, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 157, 0, -0, 0, 165, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 168, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'R', 'X', 57, 3, -0, 0, 61, 2, -0, 0, 61, 2, -'O', 'U', 64, 3, -0, 0, 61, 2, -0, 0, 61, 2, -'R', 'U', 71, 3, -0, 0, 171, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 172, 0, -0, 0, 173, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 176, 0, -0, 0, 178, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 180, 0, -'A', 'O', 76, 3, -0, 0, 190, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 192, 0, -'D', 'O', 92, 3, -0, 0, 210, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 214, 0, -0, 0, 215, 0, -'A', 'V', 115, 3, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'M', 'N', 137, 3, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'C', 'C', 139, 3, -0, 0, 245, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 249, 0, -0, 0, 251, 0, -0, 0, 253, 0, -'A', 'K', 140, 3, -0, 0, 1, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 5, 1, -0, 0, 30, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 43, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 56, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 60, 1, -0, 0, 63, 1, -0, 0, 61, 2, -0, 0, 68, 1, -0, 0, 91, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 93, 1, -0, 0, 61, 2, -0, 0, 95, 1, -0, 0, 104, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 107, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 121, 1, -'E', 'I', 196, 3, -0, 0, 123, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 124, 1, -0, 0, 125, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'S', 221, 3, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 162, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 163, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 170, 1, -0, 0, 129, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 138, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 154, 1, -0, 0, 187, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 193, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 224, 1, -0, 0, 236, 1, -0, 0, 61, 2, -0, 0, 238, 1, -0, 0, 240, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 10, 2, -'I', 'T', 31, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'I', 43, 4, -0, 0, 17, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 23, 2, -0, 0, 26, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 31, 2, -'E', 'I', 63, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 52, 2, -0, 0, 46, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 47, 2, -0, 0, 12, 0, -'A', 'I', 90, 4, -'H', 'U', 125, 4, -'E', 'O', 141, 4, -'L', 'X', 152, 4, -'A', 'L', 172, 4, -'L', 'R', 192, 4, -0, 0, 195, 0, -'G', 'S', 199, 4, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'I', 226, 4, -'A', 'O', 231, 4, -0, 0, 61, 2, -'F', 'P', 0, 5, -'A', 'L', 11, 5, -0, 0, 61, 2, -'E', 'O', 23, 5, -'C', 'U', 55, 5, -0, 0, 242, 1, -'N', 'P', 162, 5, -0, 0, 36, 2, -0, 0, 33, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 34, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'G', 'T', 99, 4, -0, 0, 37, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'L', 113, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 253, 255, -0, 0, 38, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 39, 0, -0, 0, 56, 0, -0, 0, 63, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 65, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'L', 'M', 139, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 94, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 101, 0, -0, 0, 71, 0, -0, 0, 75, 0, -0, 0, 122, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 135, 0, -0, 0, 143, 0, -0, 0, 61, 2, -'A', 'G', 165, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 152, 0, -0, 0, 153, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 156, 0, -0, 0, 61, 2, -0, 0, 159, 0, -0, 0, 144, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 148, 0, -0, 0, 167, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 169, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'O', 'O', 184, 4, -'A', 'A', 185, 4, -'T', 'T', 186, 4, -'4', '8', 187, 4, -0, 0, 174, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 175, 0, -0, 0, 189, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 191, 0, -0, 0, 206, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 208, 0, -'F', 'S', 212, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 234, 0, -0, 0, 212, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 217, 0, -0, 0, 246, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 252, 0, -0, 0, 13, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'D', 'M', 246, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 48, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 55, 1, -0, 0, 38, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 42, 1, -0, 0, 80, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 88, 1, -0, 0, 97, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 105, 1, -'G', 'V', 34, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 165, 1, -0, 0, 137, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 144, 1, -0, 0, 145, 1, -0, 0, 146, 1, -0, 0, 61, 2, -'A', 'E', 50, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 158, 1, -0, 0, 159, 1, -0, 0, 61, 2, -0, 0, 161, 1, -0, 0, 148, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 152, 1, -0, 0, 173, 1, -0, 0, 61, 2, -'C', 'R', 74, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'G', 'M', 104, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'C', 'U', 117, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'R', 141, 5, -0, 0, 232, 255, -0, 0, 176, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 179, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'I', 'V', 90, 5, -0, 0, 182, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 185, 1, -'N', 'N', 111, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 192, 1, -'A', 'E', 112, 5, -0, 0, 190, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 191, 1, -0, 0, 197, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 199, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'N', 'R', 136, 5, -0, 0, 200, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 201, 1, -'R', 'T', 159, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 236, 255, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 231, 1, -0, 0, 226, 1, -0, 0, 61, 2, -0, 0, 227, 1, -'I', 'L', 165, 5, -0, 0, 61, 2, -0, 0, 24, 2, -0, 0, 18, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 20, 2, -'D', 'U', 192, 5, -'E', 'O', 210, 5, -'A', 'U', 247, 5, -'E', 'Y', 56, 6, -'N', 'X', 104, 6, -0, 0, 179, 0, -0, 0, 185, 0, -0, 0, 193, 0, -'N', 'T', 131, 6, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'O', 157, 6, -0, 0, 47, 1, -'A', 'U', 168, 6, -'P', 'U', 189, 6, -'A', 'R', 195, 6, -0, 0, 122, 1, -'E', 'O', 228, 6, -'C', 'Y', 2, 7, -'I', 'R', 50, 7, -'N', 'S', 60, 7, -'A', 'A', 69, 7, -0, 0, 51, 2, -0, 0, 255, 255, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 15, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 20, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 28, 0, -0, 0, 36, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'T', 'T', 221, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 44, 0, -'_', '_', 222, 5, -'A', 'X', 223, 5, -0, 0, 254, 255, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 252, 255, -0, 0, 51, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'A', 12, 6, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'L', 'N', 18, 6, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'R', 'R', 38, 6, -'N', 'R', 13, 6, -0, 0, 57, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 60, 0, -'L', 'U', 21, 6, -'M', 'P', 31, 6, -'T', 'V', 35, 6, -0, 0, 69, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 73, 0, -0, 0, 74, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 77, 0, -0, 0, 89, 0, -0, 0, 61, 2, -0, 0, 92, 0, -'D', 'T', 39, 6, -0, 0, 249, 255, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 248, 255, -'C', 'L', 77, 6, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'S', 'S', 100, 6, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 140, 0, -'I', 'L', 87, 6, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'I', 91, 6, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 120, 0, -0, 0, 116, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 117, 0, -0, 0, 118, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 119, 0, -'A', 'C', 101, 6, -0, 0, 128, 0, -0, 0, 61, 2, -0, 0, 129, 0, -0, 0, 149, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 154, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'T', 115, 6, -0, 0, 158, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 162, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 245, 255, -'D', 'V', 138, 6, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 235, 0, -0, 0, 211, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 219, 0, -0, 0, 226, 0, -0, 0, 61, 2, -0, 0, 236, 0, -0, 0, 244, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 6, 1, -0, 0, 65, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 72, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 78, 1, -0, 0, 87, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 94, 1, -0, 0, 99, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 106, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 108, 1, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'O', 213, 6, -0, 0, 111, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 114, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'C', 'F', 224, 6, -0, 0, 117, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 119, 1, -'B', 'T', 239, 6, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 166, 1, -0, 0, 131, 1, -0, 0, 132, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 143, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 150, 1, -0, 0, 153, 1, -0, 0, 61, 2, -0, 0, 156, 1, -0, 0, 160, 1, -0, 0, 175, 1, -0, 0, 61, 2, -0, 0, 184, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 202, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 229, 1, -'B', 'S', 25, 7, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 229, 255, -'D', 'J', 43, 7, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 237, 1, -0, 0, 233, 255, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 233, 1, -0, 0, 0, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 5, 2, -'I', 'K', 66, 7, -0, 0, 61, 2, -0, 0, 25, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 30, 2, -0, 0, 16, 2, -0, 0, 61, 2, -0, 0, 19, 2, -'R', 'R', 70, 7, -'C', '_', 71, 7, -0, 0, 38, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 41, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 225, 255, -'A', 'O', 124, 7, -'A', 'U', 163, 7, -'N', 'X', 231, 7, -'U', 'U', 242, 7, -0, 0, 186, 0, -0, 0, 61, 2, -0, 0, 227, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'O', 246, 7, -'A', 'O', 26, 8, -'A', 'V', 54, 8, -'N', 'P', 76, 8, -'A', 'R', 79, 8, -0, 0, 61, 2, -'E', 'O', 108, 8, -'C', 'W', 147, 8, -'I', 'R', 168, 8, -'N', 'T', 220, 8, -'A', 'A', 6, 9, -0, 0, 43, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 59, 2, -0, 0, 52, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 62, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'N', 139, 7, -0, 0, 67, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'T', 'T', 153, 7, -'A', 'I', 154, 7, -0, 0, 88, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 90, 0, -'T', 'Y', 184, 7, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 124, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 131, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 138, 0, -'A', 'E', 190, 7, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 110, 0, -'B', 'F', 195, 7, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'T', '_', 200, 7, -0, 0, 104, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 106, 0, -0, 0, 108, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'S', 212, 7, -0, 0, 247, 255, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 246, 255, -0, 0, 145, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 163, 0, -'L', 'N', 243, 7, -0, 0, 183, 0, -0, 0, 61, 2, -0, 0, 184, 0, -0, 0, 242, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'N', 'N', 5, 8, -'G', 'G', 6, 8, -'B', 'T', 7, 8, -0, 0, 9, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 10, 1, -'X', 'X', 41, 8, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 51, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 54, 1, -'V', '_', 42, 8, -0, 0, 37, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'R', 'S', 52, 8, -0, 0, 33, 1, -0, 0, 34, 1, -0, 0, 64, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 79, 1, -0, 0, 84, 1, -0, 0, 61, 2, -0, 0, 86, 1, -0, 0, 103, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 239, 255, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'O', 97, 8, -0, 0, 112, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 120, 1, -'D', 'S', 119, 8, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 164, 1, -0, 0, 134, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 139, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'I', 'T', 135, 8, -0, 0, 155, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 157, 1, -0, 0, 172, 1, -0, 0, 61, 2, -0, 0, 178, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 189, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 196, 1, -0, 0, 195, 1, -0, 0, 61, 2, -0, 0, 203, 1, -0, 0, 206, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 225, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 239, 1, -'N', 'N', 178, 8, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'U', 199, 8, -'Y', 'Y', 179, 8, -'B', 'T', 180, 8, -0, 0, 255, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 1, 2, -0, 0, 3, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 6, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 8, 2, -'D', 'S', 227, 8, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'C', 'C', 243, 8, -0, 0, 14, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 22, 2, -'_', '_', 244, 8, -'D', 'T', 245, 8, -0, 0, 32, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 33, 2, -'R', 'R', 7, 9, -'I', '_', 8, 9, -0, 0, 226, 255, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 224, 255, -'G', 'L', 53, 9, -0, 0, 61, 2, -'H', 'O', 59, 9, -'A', 'U', 70, 9, -0, 0, 161, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'O', 'S', 91, 9, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 2, 1, -'E', 'I', 96, 9, -0, 0, 73, 1, -0, 0, 61, 2, -'A', 'R', 101, 9, -0, 0, 61, 2, -'E', 'E', 146, 9, -'A', 'U', 151, 9, -'E', 'I', 175, 9, -'N', 'N', 188, 9, -'A', 'A', 195, 9, -0, 0, 16, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 18, 0, -0, 0, 59, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'L', 'N', 67, 9, -0, 0, 70, 0, -0, 0, 76, 0, -0, 0, 81, 0, -0, 0, 105, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 127, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 139, 0, -0, 0, 230, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 233, 0, -0, 0, 40, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 46, 1, -'C', 'R', 119, 9, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'O', 135, 9, -0, 0, 96, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 100, 1, -0, 0, 110, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 116, 1, -'A', 'D', 147, 9, -0, 0, 127, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 135, 1, -0, 0, 171, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'N', 'P', 172, 9, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 210, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 231, 255, -0, 0, 180, 1, -0, 0, 61, 2, -0, 0, 181, 1, -'M', 'M', 180, 9, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 252, 1, -'P', 'P', 181, 9, -'O', 'T', 182, 9, -0, 0, 245, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 246, 1, -'D', 'I', 189, 9, -0, 0, 12, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 21, 2, -'R', 'R', 196, 9, -'B', 'I', 197, 9, -0, 0, 37, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 40, 2, -'C', 'S', 230, 9, -0, 0, 61, 2, -'O', 'O', 247, 9, -'A', 'E', 31, 10, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 188, 0, -0, 0, 61, 2, -0, 0, 204, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 254, 0, -'A', 'U', 45, 10, -0, 0, 67, 1, -0, 0, 89, 1, -'A', 'R', 89, 10, -0, 0, 61, 2, -'E', 'O', 107, 10, -'Q', 'T', 134, 10, -'A', 'E', 148, 10, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 58, 2, -0, 0, 11, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 26, 0, -'M', 'N', 248, 9, -'P', 'P', 250, 9, -'C', 'S', 2, 10, -'L', 'R', 251, 9, -0, 0, 78, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 79, 0, -0, 0, 80, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 82, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'I', 'T', 19, 10, -0, 0, 83, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 84, 0, -'Y', 'Y', 36, 10, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 114, 0, -'_', '_', 37, 10, -'M', 'S', 38, 10, -0, 0, 112, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 113, 0, -0, 0, 21, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'D', 'D', 66, 10, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 58, 1, -'I', 'I', 67, 10, -'U', 'U', 68, 10, -'M', 'M', 69, 10, -'B', 'T', 70, 10, -0, 0, 39, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 41, 1, -0, 0, 102, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 115, 1, -'A', 'P', 118, 10, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 169, 1, -0, 0, 128, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 136, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 147, 1, -0, 0, 149, 1, -'L', 'L', 138, 10, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 235, 255, -'W', '_', 139, 10, -0, 0, 207, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 214, 1, -'B', 'B', 153, 10, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 247, 1, -'L', 'L', 154, 10, -'E', 'E', 155, 10, -'S', '_', 156, 10, -0, 0, 243, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 241, 1, -'O', 'U', 188, 10, -0, 0, 132, 0, -0, 0, 164, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'O', 'O', 195, 10, -0, 0, 216, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'Y', 206, 10, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 118, 1, -0, 0, 61, 2, -0, 0, 151, 1, -'C', 'Y', 250, 10, -0, 0, 4, 2, -0, 0, 11, 2, -0, 0, 72, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 102, 0, -'U', 'U', 196, 10, -'R', 'R', 197, 10, -'_', '_', 198, 10, -'M', 'S', 199, 10, -0, 0, 202, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 203, 0, -'S', 'S', 231, 10, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 45, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 1, -'T', 'T', 232, 10, -'E', 'E', 233, 10, -'R', 'R', 234, 10, -'_', '_', 235, 10, -'H', 'U', 236, 10, -0, 0, 15, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 19, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 28, 1, -0, 0, 174, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 218, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 234, 255, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 228, 255, -'A', 'U', 37, 11, -0, 0, 125, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 244, 255, -0, 0, 61, 2, -0, 0, 213, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 12, 1, -'E', 'U', 82, 11, -0, 0, 61, 2, -0, 0, 81, 1, -0, 0, 101, 1, -0, 0, 61, 2, -0, 0, 142, 1, -'E', 'U', 99, 11, -0, 0, 253, 1, -0, 0, 61, 2, -0, 0, 39, 2, -0, 0, 54, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 64, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 91, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'R', 'R', 58, 11, -'R', 'R', 59, 11, -'E', 'E', 60, 11, -'N', 'N', 61, 11, -'T', 'T', 62, 11, -'_', '_', 63, 11, -'D', 'U', 64, 11, -0, 0, 97, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 98, 0, -0, 0, 100, 0, -0, 0, 44, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 59, 1, -'R', 'S', 116, 11, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'L', 'L', 118, 11, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 234, 1, -0, 0, 183, 1, -0, 0, 238, 255, -'E', '_', 119, 11, -0, 0, 205, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'N', 'T', 146, 11, -0, 0, 212, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'S', 'S', 153, 11, -'I', 'I', 154, 11, -'_', '_', 155, 11, -'H', 'Y', 156, 11, -0, 0, 217, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 219, 1, -0, 0, 61, 2, -0, 0, 222, 1, -0, 0, 126, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 197, 0, -0, 0, 218, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'I', 192, 11, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 141, 1, -'Q', 'U', 201, 11, -0, 0, 254, 1, -0, 0, 34, 2, -0, 0, 22, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 50, 1, -0, 0, 220, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 230, 1, -0, 0, 235, 1, -'U', 'V', 227, 11, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 240, 0, -0, 0, 3, 1, -'A', 'A', 229, 11, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 140, 1, -'Q', 'Q', 243, 11, -0, 0, 244, 1, -0, 0, 29, 2, -0, 0, 29, 0, -0, 0, 32, 0, -'S', 'S', 230, 11, -'T', 'T', 231, 11, -'E', 'E', 232, 11, -'R', 'R', 233, 11, -'_', '_', 234, 11, -'L', 'S', 235, 11, -0, 0, 17, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 26, 1, -'L', 'L', 244, 11, -'_', '_', 245, 11, -'B', 'T', 246, 11, -0, 0, 208, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'S', 'S', 9, 12, -'I', 'I', 10, 12, -'_', '_', 11, 12, -'M', 'S', 12, 12, -0, 0, 216, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 215, 1, -0, 0, 30, 0, -0, 0, 61, 2, -0, 0, 86, 0, -'A', 'E', 38, 12, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'U', 43, 12, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'Q', 'U', 77, 12, -0, 0, 111, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 121, 0, -'S', 'S', 64, 12, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 57, 1, -'T', 'T', 65, 12, -'E', 'E', 66, 12, -'R', 'R', 67, 12, -'_', '_', 68, 12, -'L', 'S', 69, 12, -0, 0, 16, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 18, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 24, 1, -0, 0, 221, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 232, 1, -0, 0, 201, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 20, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 133, 1, -0, 0, 213, 1, -0, 0, 61, 2, -0, 0, 13, 2, -'O', 'U', 113, 12, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 207, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'A', 120, 12, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 209, 1, -0, 0, 87, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 99, 0, -'S', 'S', 121, 12, -'T', 'T', 122, 12, -'E', 'E', 123, 12, -'R', 'R', 124, 12, -'_', '_', 125, 12, -'S', 'S', 126, 12, -'S', 'S', 127, 12, -'L', 'L', 128, 12, -'_', '_', 129, 12, -'C', 'C', 130, 12, -'A', 'I', 131, 12, -0, 0, 23, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 25, 1, -0, 0, 85, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 187, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 49, 1, -0, 0, 76, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 177, 1, -'A', 'A', 158, 12, -'S', 'X', 159, 12, -0, 0, 14, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'_', '_', 165, 12, -'Q', 'U', 166, 12, -0, 0, 32, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'P', 'S', 171, 12, -0, 0, 35, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 36, 1, -}; - -static uchar symbols_map[12128]= { -'<', '>', 29, 0, -'!', '|', 32, 0, -'<', 'X', 150, 0, -'B', 'Y', 14, 1, -'A', 'W', 150, 2, -'A', 'V', 7, 4, -'A', 'W', 101, 5, -'C', 'Z', 214, 6, -'A', 'V', 89, 8, -'A', 'Y', 3, 9, -'C', 'U', 220, 9, -'C', 'V', 60, 10, -'D', 'U', 215, 10, -'A', 'U', 247, 10, -'A', 'S', 60, 11, -'H', 'U', 123, 11, -'C', 'S', 137, 11, -'C', 'S', 181, 11, -0, 0, 211, 1, -'M', 'M', 198, 11, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 29, 1, -0, 0, 31, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 27, 1, -0, 0, 1, 0, -0, 0, 5, 0, -0, 0, 6, 0, -0, 0, 4, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 0, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'<', '>', 124, 0, -0, 0, 61, 2, -'=', '>', 127, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'S', 'T', 129, 0, -0, 0, 47, 0, -0, 0, 61, 2, -0, 0, 134, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'F', 'S', 131, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 71, 1, -'N', 'R', 145, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 2, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 55, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 60, 2, -0, 0, 8, 0, -0, 0, 2, 0, -0, 0, 3, 0, -0, 0, 7, 0, -0, 0, 9, 0, -0, 0, 23, 0, -0, 0, 27, 0, -0, 0, 205, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 209, 0, -0, 0, 229, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 232, 0, -0, 0, 82, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 90, 1, -0, 0, 10, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'D', 'V', 179, 0, -0, 0, 40, 0, -0, 0, 93, 0, -'A', 'I', 220, 0, -0, 0, 146, 0, -0, 0, 177, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'N', 'P', 229, 0, -0, 0, 61, 2, -0, 0, 238, 0, -0, 0, 61, 2, -0, 0, 52, 1, -'D', 'O', 232, 0, -'N', 'U', 244, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 167, 1, -'E', 'S', 252, 0, -0, 0, 61, 2, -0, 0, 27, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'M', 'O', 11, 1, -0, 0, 13, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 17, 0, -0, 0, 61, 2, -'D', 'Y', 198, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 24, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 31, 0, -0, 0, 21, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 22, 0, -0, 0, 109, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 115, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 133, 0, -0, 0, 220, 0, -0, 0, 61, 2, -0, 0, 231, 0, -0, 0, 66, 1, -0, 0, 69, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 75, 1, -0, 0, 83, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 92, 1, -0, 0, 186, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 204, 1, -0, 0, 61, 2, -0, 0, 223, 1, -0, 0, 56, 2, -0, 0, 61, 2, -0, 0, 54, 2, -'L', 'Y', 38, 1, -'A', 'U', 58, 1, -'A', 'U', 87, 1, -'A', 'X', 114, 1, -'A', 'U', 156, 1, -0, 0, 61, 2, -'A', 'O', 177, 1, -'N', 'N', 195, 1, -0, 0, 237, 0, -'E', 'I', 228, 1, -'A', 'O', 233, 1, -0, 0, 53, 1, -'A', 'U', 30, 2, -0, 0, 85, 1, -'A', 'R', 51, 2, -0, 0, 61, 2, -'E', 'O', 69, 2, -'H', 'T', 90, 2, -'E', 'Y', 103, 2, -'N', 'S', 129, 2, -0, 0, 48, 2, -'A', 'O', 135, 2, -0, 0, 53, 2, -0, 0, 57, 2, -0, 0, 41, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'O', 'T', 52, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 48, 0, -0, 0, 43, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 45, 0, -'L', 'S', 79, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 58, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 68, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 96, 0, -0, 0, 50, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 53, 0, -'T', 'T', 108, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 123, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 130, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 136, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 137, 0, -'A', 'E', 109, 1, -0, 0, 103, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 107, 0, -0, 0, 141, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 142, 0, -0, 0, 61, 2, -'D', 'U', 138, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 160, 0, -0, 0, 147, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 150, 0, -0, 0, 166, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 170, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 181, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 182, 0, -0, 0, 194, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 196, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'S', 'U', 192, 1, -0, 0, 198, 0, -0, 0, 61, 2, -0, 0, 200, 0, -'T', 'T', 196, 1, -'1', 'O', 197, 1, -0, 0, 221, 0, -0, 0, 222, 0, -0, 0, 223, 0, -0, 0, 224, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 225, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 228, 0, -0, 0, 239, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 241, 0, -0, 0, 243, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'F', 'S', 248, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'K', 'S', 6, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'O', 15, 2, -0, 0, 247, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 248, 0, -0, 0, 250, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 255, 0, -0, 0, 0, 1, -0, 0, 61, 2, -0, 0, 4, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 7, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 8, 1, -0, 0, 11, 1, -0, 0, 62, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 70, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 74, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 77, 1, -0, 0, 98, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 109, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 113, 1, -'A', 'A', 80, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 168, 1, -'D', 'L', 81, 2, -0, 0, 126, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 130, 1, -0, 0, 188, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 194, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 198, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 228, 1, -0, 0, 248, 1, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'E', 124, 2, -0, 0, 251, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 7, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 9, 2, -0, 0, 249, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 250, 1, -0, 0, 15, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 28, 2, -0, 0, 42, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 44, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 45, 2, -0, 0, 49, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 50, 2, -'F', 'S', 173, 2, -'E', 'T', 187, 2, -'A', 'R', 203, 2, -0, 0, 61, 2, -'R', 'V', 226, 2, -'A', 'O', 237, 2, -'R', 'R', 14, 3, -0, 0, 199, 0, -'N', 'N', 30, 3, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'O', 43, 3, -'A', 'U', 90, 3, -'A', 'C', 111, 3, -'R', 'W', 114, 3, -'H', 'U', 120, 3, -'U', 'U', 134, 3, -'A', 'T', 140, 3, -'H', 'W', 179, 3, -'A', 'Y', 195, 3, -'N', 'S', 220, 3, -0, 0, 35, 2, -'H', 'R', 247, 3, -0, 0, 14, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 19, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 25, 0, -0, 0, 35, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 42, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 46, 0, -0, 0, 49, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'E', 221, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 66, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 95, 0, -0, 0, 55, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 0, -0, 0, 151, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'E', 231, 2, -'N', 'R', 232, 2, -0, 0, 155, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 157, 0, -0, 0, 165, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 168, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'R', 'X', 252, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'O', 'U', 3, 3, -0, 0, 61, 2, -0, 0, 61, 2, -'R', 'U', 10, 3, -0, 0, 171, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 172, 0, -0, 0, 173, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 176, 0, -0, 0, 178, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 180, 0, -'A', 'O', 15, 3, -0, 0, 190, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 192, 0, -'D', 'O', 31, 3, -0, 0, 210, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 214, 0, -0, 0, 215, 0, -'A', 'V', 54, 3, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'M', 'N', 76, 3, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'C', 'C', 78, 3, -0, 0, 245, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 249, 0, -0, 0, 251, 0, -0, 0, 253, 0, -'A', 'K', 79, 3, -0, 0, 1, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 5, 1, -0, 0, 30, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 43, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 56, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 60, 1, -0, 0, 63, 1, -0, 0, 61, 2, -0, 0, 68, 1, -0, 0, 91, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 93, 1, -0, 0, 61, 2, -0, 0, 95, 1, -0, 0, 104, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 107, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 121, 1, -'E', 'I', 135, 3, -0, 0, 123, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 124, 1, -0, 0, 125, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'S', 160, 3, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 162, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 163, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 170, 1, -0, 0, 129, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 138, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 154, 1, -0, 0, 187, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 193, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 224, 1, -0, 0, 236, 1, -0, 0, 61, 2, -0, 0, 238, 1, -0, 0, 240, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 10, 2, -'I', 'T', 226, 3, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'I', 238, 3, -0, 0, 17, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 23, 2, -0, 0, 26, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 31, 2, -'E', 'I', 2, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 52, 2, -0, 0, 46, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 47, 2, -0, 0, 12, 0, -'A', 'I', 29, 4, -'H', 'U', 58, 4, -'E', 'O', 74, 4, -'L', 'X', 85, 4, -'A', 'L', 105, 4, -'L', 'R', 125, 4, -0, 0, 195, 0, -'G', 'S', 132, 4, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'I', 159, 4, -'A', 'O', 164, 4, -0, 0, 61, 2, -'F', 'P', 189, 4, -'A', 'L', 200, 4, -0, 0, 61, 2, -'E', 'O', 212, 4, -'C', 'T', 244, 4, -0, 0, 242, 1, -'N', 'P', 94, 5, -0, 0, 36, 2, -0, 0, 33, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 34, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'G', 'N', 38, 4, -0, 0, 37, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'L', 46, 4, -0, 0, 38, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 39, 0, -0, 0, 56, 0, -0, 0, 63, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 65, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'L', 'M', 72, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 94, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 101, 0, -0, 0, 71, 0, -0, 0, 75, 0, -0, 0, 122, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 135, 0, -0, 0, 143, 0, -0, 0, 61, 2, -'A', 'G', 98, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 152, 0, -0, 0, 153, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 156, 0, -0, 0, 61, 2, -0, 0, 159, 0, -0, 0, 144, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 148, 0, -0, 0, 167, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 169, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'O', 'O', 117, 4, -'A', 'A', 118, 4, -'T', 'T', 119, 4, -'4', '8', 120, 4, -0, 0, 174, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 175, 0, -0, 0, 189, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 191, 0, -0, 0, 206, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 208, 0, -'F', 'S', 145, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 234, 0, -0, 0, 212, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 217, 0, -0, 0, 246, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 252, 0, -0, 0, 13, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'D', 'M', 179, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 48, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 55, 1, -0, 0, 38, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 42, 1, -0, 0, 80, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 88, 1, -0, 0, 97, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 105, 1, -'G', 'V', 223, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 165, 1, -0, 0, 137, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 144, 1, -0, 0, 145, 1, -0, 0, 146, 1, -0, 0, 61, 2, -'A', 'E', 239, 4, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 158, 1, -0, 0, 159, 1, -0, 0, 61, 2, -0, 0, 161, 1, -0, 0, 148, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 152, 1, -0, 0, 173, 1, -0, 0, 61, 2, -'C', 'R', 6, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'G', 'M', 36, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'C', 'U', 49, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'R', 73, 5, -0, 0, 176, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 179, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'I', 'V', 22, 5, -0, 0, 182, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 185, 1, -'N', 'N', 43, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 192, 1, -'A', 'E', 44, 5, -0, 0, 190, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 191, 1, -0, 0, 197, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 199, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'N', 'R', 68, 5, -0, 0, 200, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 201, 1, -'R', 'T', 91, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 231, 1, -0, 0, 226, 1, -0, 0, 61, 2, -0, 0, 227, 1, -'I', 'L', 97, 5, -0, 0, 61, 2, -0, 0, 24, 2, -0, 0, 18, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 20, 2, -'G', 'U', 124, 5, -'E', 'O', 139, 5, -'A', 'O', 150, 5, -'E', 'Y', 191, 5, -'N', 'X', 239, 5, -0, 0, 179, 0, -0, 0, 185, 0, -0, 0, 193, 0, -'N', 'T', 6, 6, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'O', 32, 6, -0, 0, 47, 1, -'A', 'U', 43, 6, -'P', 'U', 64, 6, -'A', 'R', 70, 6, -0, 0, 122, 1, -'E', 'O', 103, 6, -'C', 'U', 133, 6, -'I', 'R', 170, 6, -'N', 'S', 180, 6, -'A', 'A', 189, 6, -0, 0, 51, 2, -0, 0, 15, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 20, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 28, 0, -0, 0, 36, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 44, 0, -0, 0, 51, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'A', 165, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'L', 'N', 171, 5, -'N', 'R', 166, 5, -0, 0, 57, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 60, 0, -'L', 'U', 174, 5, -'M', 'P', 184, 5, -'T', 'V', 188, 5, -0, 0, 69, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 73, 0, -0, 0, 74, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 77, 0, -0, 0, 89, 0, -0, 0, 61, 2, -0, 0, 92, 0, -'C', 'L', 212, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'S', 'S', 235, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 140, 0, -'I', 'L', 222, 5, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'I', 226, 5, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 120, 0, -0, 0, 116, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 117, 0, -0, 0, 118, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 119, 0, -'A', 'C', 236, 5, -0, 0, 128, 0, -0, 0, 61, 2, -0, 0, 129, 0, -0, 0, 149, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 154, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'P', 250, 5, -0, 0, 158, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 162, 0, -'D', 'V', 13, 6, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 235, 0, -0, 0, 211, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 219, 0, -0, 0, 226, 0, -0, 0, 61, 2, -0, 0, 236, 0, -0, 0, 244, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 6, 1, -0, 0, 65, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 72, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 78, 1, -0, 0, 87, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 94, 1, -0, 0, 99, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 106, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 108, 1, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'O', 88, 6, -0, 0, 111, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 114, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'C', 'F', 99, 6, -0, 0, 117, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 119, 1, -'B', 'T', 114, 6, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 166, 1, -0, 0, 131, 1, -0, 0, 132, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 143, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 150, 1, -0, 0, 153, 1, -0, 0, 61, 2, -0, 0, 156, 1, -0, 0, 160, 1, -0, 0, 175, 1, -0, 0, 61, 2, -0, 0, 184, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 202, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 229, 1, -'B', 'S', 152, 6, -0, 0, 233, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 237, 1, -0, 0, 0, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 5, 2, -'I', 'K', 186, 6, -0, 0, 61, 2, -0, 0, 25, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 30, 2, -0, 0, 16, 2, -0, 0, 61, 2, -0, 0, 19, 2, -'R', 'R', 190, 6, -'C', 'Y', 191, 6, -0, 0, 38, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 41, 2, -'A', 'O', 238, 6, -'A', 'U', 21, 7, -'N', 'X', 58, 7, -'U', 'U', 69, 7, -0, 0, 186, 0, -0, 0, 61, 2, -0, 0, 227, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'O', 73, 7, -'A', 'O', 109, 7, -'A', 'V', 137, 7, -'N', 'P', 159, 7, -'A', 'R', 162, 7, -0, 0, 61, 2, -'E', 'O', 191, 7, -'C', 'W', 230, 7, -'I', 'R', 251, 7, -'N', 'T', 47, 8, -0, 0, 61, 2, -0, 0, 43, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 59, 2, -0, 0, 52, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 62, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'N', 253, 6, -0, 0, 67, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'T', 'T', 11, 7, -'A', 'I', 12, 7, -0, 0, 88, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 90, 0, -'T', 'Y', 42, 7, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 124, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 131, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 138, 0, -'A', 'E', 48, 7, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 110, 0, -'B', 'F', 53, 7, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 108, 0, -0, 0, 104, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 106, 0, -0, 0, 145, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 163, 0, -'L', 'N', 70, 7, -0, 0, 183, 0, -0, 0, 61, 2, -0, 0, 184, 0, -0, 0, 242, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'N', 'N', 88, 7, -'G', 'G', 89, 7, -'B', 'T', 90, 7, -0, 0, 9, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 10, 1, -'X', 'X', 124, 7, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 51, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 54, 1, -'V', '_', 125, 7, -0, 0, 37, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'R', 'S', 135, 7, -0, 0, 33, 1, -0, 0, 34, 1, -0, 0, 64, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 79, 1, -0, 0, 84, 1, -0, 0, 61, 2, -0, 0, 86, 1, -0, 0, 103, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'O', 180, 7, -0, 0, 112, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 120, 1, -'D', 'S', 202, 7, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 164, 1, -0, 0, 134, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 139, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'I', 'T', 218, 7, -0, 0, 155, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 157, 1, -0, 0, 172, 1, -0, 0, 61, 2, -0, 0, 178, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 189, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 196, 1, -0, 0, 195, 1, -0, 0, 61, 2, -0, 0, 203, 1, -0, 0, 206, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 225, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 239, 1, -'N', 'N', 5, 8, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'U', 26, 8, -'Y', 'Y', 6, 8, -'B', 'T', 7, 8, -0, 0, 255, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 1, 2, -0, 0, 3, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 6, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 8, 2, -'D', 'S', 54, 8, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'C', 'C', 70, 8, -0, 0, 14, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 22, 2, -'_', '_', 71, 8, -'D', 'T', 72, 8, -0, 0, 32, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 33, 2, -'G', 'L', 111, 8, -0, 0, 61, 2, -'H', 'O', 117, 8, -'A', 'U', 128, 8, -0, 0, 161, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'O', 'S', 149, 8, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 2, 1, -'E', 'I', 154, 8, -0, 0, 73, 1, -0, 0, 61, 2, -'A', 'R', 159, 8, -0, 0, 61, 2, -'E', 'E', 204, 8, -'A', 'Q', 209, 8, -'E', 'I', 229, 8, -'N', 'N', 242, 8, -'A', 'A', 249, 8, -0, 0, 16, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 18, 0, -0, 0, 59, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'L', 'N', 125, 8, -0, 0, 70, 0, -0, 0, 76, 0, -0, 0, 81, 0, -0, 0, 105, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 127, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 139, 0, -0, 0, 230, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 233, 0, -0, 0, 40, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 46, 1, -'C', 'R', 177, 8, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'E', 'O', 193, 8, -0, 0, 96, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 100, 1, -0, 0, 110, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 116, 1, -'A', 'D', 205, 8, -0, 0, 127, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 135, 1, -0, 0, 171, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'N', 'P', 226, 8, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 210, 1, -0, 0, 180, 1, -0, 0, 61, 2, -0, 0, 181, 1, -'M', 'M', 234, 8, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 252, 1, -'P', 'P', 235, 8, -'O', 'T', 236, 8, -0, 0, 245, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 246, 1, -'D', 'I', 243, 8, -0, 0, 12, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 21, 2, -'R', 'R', 250, 8, -'B', 'I', 251, 8, -0, 0, 37, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 40, 2, -'C', 'S', 28, 9, -0, 0, 61, 2, -'O', 'O', 45, 9, -'A', 'E', 85, 9, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 188, 0, -0, 0, 61, 2, -0, 0, 204, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 254, 0, -'A', 'U', 99, 9, -0, 0, 67, 1, -0, 0, 89, 1, -'A', 'R', 143, 9, -0, 0, 61, 2, -'E', 'O', 161, 9, -'Q', 'Q', 188, 9, -'A', 'E', 199, 9, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 58, 2, -0, 0, 11, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 26, 0, -'M', 'N', 46, 9, -'P', 'P', 48, 9, -'C', 'S', 56, 9, -'L', 'R', 49, 9, -0, 0, 78, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 79, 0, -0, 0, 80, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 82, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'I', 'T', 73, 9, -0, 0, 83, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 84, 0, -'Y', 'Y', 90, 9, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 114, 0, -'_', '_', 91, 9, -'M', 'S', 92, 9, -0, 0, 112, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 113, 0, -0, 0, 21, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'D', 'D', 120, 9, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 58, 1, -'I', 'I', 121, 9, -'U', 'U', 122, 9, -'M', 'M', 123, 9, -'B', 'T', 124, 9, -0, 0, 39, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 41, 1, -0, 0, 102, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 115, 1, -'A', 'P', 172, 9, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 169, 1, -0, 0, 128, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 136, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 147, 1, -0, 0, 149, 1, -'L', 'L', 189, 9, -'W', '_', 190, 9, -0, 0, 207, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 214, 1, -'B', 'B', 204, 9, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 247, 1, -'L', 'L', 205, 9, -'E', 'E', 206, 9, -'S', '_', 207, 9, -0, 0, 243, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 241, 1, -'O', 'U', 239, 9, -0, 0, 132, 0, -0, 0, 164, 0, -0, 0, 61, 2, -0, 0, 61, 2, -'O', 'O', 246, 9, -0, 0, 216, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'Y', 1, 10, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 118, 1, -0, 0, 61, 2, -0, 0, 151, 1, -'C', 'Q', 45, 10, -0, 0, 4, 2, -0, 0, 11, 2, -0, 0, 72, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 102, 0, -'U', 'U', 247, 9, -'R', 'R', 248, 9, -'_', '_', 249, 9, -'M', 'S', 250, 9, -0, 0, 202, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 203, 0, -'S', 'S', 26, 10, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 45, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 1, -'T', 'T', 27, 10, -'E', 'E', 28, 10, -'R', 'R', 29, 10, -'_', '_', 30, 10, -'H', 'U', 31, 10, -0, 0, 15, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 19, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 28, 1, -0, 0, 174, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 218, 1, -'A', 'U', 80, 10, -0, 0, 125, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 213, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 12, 1, -'E', 'U', 125, 10, -0, 0, 61, 2, -0, 0, 81, 1, -0, 0, 101, 1, -0, 0, 61, 2, -0, 0, 142, 1, -'E', 'U', 142, 10, -0, 0, 253, 1, -0, 0, 61, 2, -0, 0, 39, 2, -0, 0, 54, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 64, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 91, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'R', 'R', 101, 10, -'R', 'R', 102, 10, -'E', 'E', 103, 10, -'N', 'N', 104, 10, -'T', 'T', 105, 10, -'_', '_', 106, 10, -'D', 'U', 107, 10, -0, 0, 97, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 98, 0, -0, 0, 100, 0, -0, 0, 44, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 59, 1, -0, 0, 183, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'L', 'L', 159, 10, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 234, 1, -'E', '_', 160, 10, -0, 0, 205, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'N', 'T', 187, 10, -0, 0, 212, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'S', 'S', 194, 10, -'I', 'I', 195, 10, -'_', '_', 196, 10, -'H', 'Y', 197, 10, -0, 0, 217, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 219, 1, -0, 0, 61, 2, -0, 0, 222, 1, -0, 0, 126, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 197, 0, -0, 0, 218, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'I', 233, 10, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 141, 1, -'Q', 'U', 242, 10, -0, 0, 254, 1, -0, 0, 34, 2, -0, 0, 22, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 50, 1, -0, 0, 220, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 230, 1, -0, 0, 235, 1, -'U', 'V', 12, 11, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 240, 0, -0, 0, 3, 1, -'A', 'A', 14, 11, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 140, 1, -'Q', 'Q', 28, 11, -0, 0, 244, 1, -0, 0, 29, 2, -0, 0, 29, 0, -0, 0, 32, 0, -'S', 'S', 15, 11, -'T', 'T', 16, 11, -'E', 'E', 17, 11, -'R', 'R', 18, 11, -'_', '_', 19, 11, -'L', 'S', 20, 11, -0, 0, 17, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 26, 1, -'L', 'L', 29, 11, -'_', '_', 30, 11, -'B', 'T', 31, 11, -0, 0, 208, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'S', 'S', 50, 11, -'I', 'I', 51, 11, -'_', '_', 52, 11, -'M', 'S', 53, 11, -0, 0, 216, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 215, 1, -0, 0, 30, 0, -0, 0, 61, 2, -0, 0, 86, 0, -'A', 'E', 79, 11, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'U', 84, 11, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'Q', 'U', 118, 11, -0, 0, 111, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 121, 0, -'S', 'S', 105, 11, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 57, 1, -'T', 'T', 106, 11, -'E', 'E', 107, 11, -'R', 'R', 108, 11, -'_', '_', 109, 11, -'L', 'S', 110, 11, -0, 0, 16, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 18, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 24, 1, -0, 0, 221, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 232, 1, -0, 0, 201, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 20, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 133, 1, -0, 0, 213, 1, -0, 0, 61, 2, -0, 0, 13, 2, -'O', 'U', 154, 11, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 207, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'A', 'A', 161, 11, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 209, 1, -0, 0, 87, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 99, 0, -'S', 'S', 162, 11, -'T', 'T', 163, 11, -'E', 'E', 164, 11, -'R', 'R', 165, 11, -'_', '_', 166, 11, -'S', 'S', 167, 11, -'S', 'S', 168, 11, -'L', 'L', 169, 11, -'_', '_', 170, 11, -'C', 'C', 171, 11, -'A', 'I', 172, 11, -0, 0, 23, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 25, 1, -0, 0, 85, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 187, 0, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 49, 1, -0, 0, 76, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 177, 1, -'A', 'A', 199, 11, -'S', 'X', 200, 11, -0, 0, 14, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'_', '_', 206, 11, -'Q', 'U', 207, 11, -0, 0, 32, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 61, 2, -'P', 'S', 212, 11, -0, 0, 35, 1, -0, 0, 61, 2, -0, 0, 61, 2, -0, 0, 36, 1, -}; - -static unsigned int sql_functions_max_len=29; - -static unsigned int symbols_max_len=29; - -static SYMBOL *get_hash_symbol(const char *s, - unsigned int len,bool function) -{ - register uchar *hash_map; - register const char *cur_str= s; - - if (len == 0) { - DBUG_PRINT("warning", ("get_hash_symbol() received a request for a zero-length symbol, which is probably a mistake.")); return(NULL); - } - if (function){ - if (len>sql_functions_max_len) return 0; - hash_map= sql_functions_map; - register uint32 cur_struct= uint4korr(hash_map+((len-1)*4)); - - for (;;){ - register uchar first_char= (uchar)cur_struct; - - if (first_char == 0) - { - register int16 ires= (int16)(cur_struct>>16); - if (ires==array_elements(symbols)) return 0; - register SYMBOL *res; - if (ires>=0) - res= symbols+ires; - else - res= sql_functions-ires-1; - register uint count= (uint) (cur_str - s); - return lex_casecmp(cur_str,res->name+count,len-count) ? 0 : res; - } - - register uchar cur_char= (uchar)to_upper_lex[(uchar)*cur_str]; - if (cur_char>=8; - if (cur_char>(uchar)cur_struct) return 0; - - cur_struct>>=8; - cur_struct= uint4korr(hash_map+ - (((uint16)cur_struct + cur_char - first_char)*4)); - cur_str++; - } - }else{ - if (len>symbols_max_len) return 0; - hash_map= symbols_map; - register uint32 cur_struct= uint4korr(hash_map+((len-1)*4)); - - for (;;){ - register uchar first_char= (uchar)cur_struct; - - if (first_char==0){ - register int16 ires= (int16)(cur_struct>>16); - if (ires==array_elements(symbols)) return 0; - register SYMBOL *res= symbols+ires; - register uint count= (uint) (cur_str - s); - return lex_casecmp(cur_str,res->name+count,len-count)!=0 ? 0 : res; - } - - register uchar cur_char= (uchar)to_upper_lex[(uchar)*cur_str]; - if (cur_char>=8; - if (cur_char>(uchar)cur_struct) return 0; - - cur_struct>>=8; - cur_struct= uint4korr(hash_map+ - (((uint16)cur_struct + cur_char - first_char)*4)); - cur_str++; - } - } -} diff --git a/sql/sql_yacc.h b/sql/sql_yacc.h deleted file mode 100644 index 62575750bb2..00000000000 --- a/sql/sql_yacc.h +++ /dev/null @@ -1,1291 +0,0 @@ - -/* A Bison parser, made by GNU Bison 2.4.1. */ - -/* Skeleton interface for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - ABORT_SYM = 258, - ACCESSIBLE_SYM = 259, - ACTION = 260, - ADD = 261, - ADDDATE_SYM = 262, - AFTER_SYM = 263, - AGAINST = 264, - AGGREGATE_SYM = 265, - ALGORITHM_SYM = 266, - ALL = 267, - ALTER = 268, - ANALYZE_SYM = 269, - AND_AND_SYM = 270, - AND_SYM = 271, - ANY_SYM = 272, - AS = 273, - ASC = 274, - ASCII_SYM = 275, - ASENSITIVE_SYM = 276, - AT_SYM = 277, - AUTHORS_SYM = 278, - AUTOEXTEND_SIZE_SYM = 279, - AUTO_INC = 280, - AVG_ROW_LENGTH = 281, - AVG_SYM = 282, - BACKUP_SYM = 283, - BEFORE_SYM = 284, - BEGIN_SYM = 285, - BETWEEN_SYM = 286, - BIGINT = 287, - BINARY = 288, - BINLOG_SYM = 289, - BIN_NUM = 290, - BIT_AND = 291, - BIT_OR = 292, - BIT_SYM = 293, - BIT_XOR = 294, - BLOB_SYM = 295, - BLOCK_SYM = 296, - BOOLEAN_SYM = 297, - BOOL_SYM = 298, - BOTH = 299, - BTREE_SYM = 300, - BY = 301, - BYTE_SYM = 302, - CACHE_SYM = 303, - CALL_SYM = 304, - CASCADE = 305, - CASCADED = 306, - CASE_SYM = 307, - CAST_SYM = 308, - CATALOG_NAME_SYM = 309, - CHAIN_SYM = 310, - CHANGE = 311, - CHANGED = 312, - CHARSET = 313, - CHAR_SYM = 314, - CHECKSUM_SYM = 315, - CHECK_SYM = 316, - CIPHER_SYM = 317, - CLASS_ORIGIN_SYM = 318, - CLIENT_SYM = 319, - CLOSE_SYM = 320, - COALESCE = 321, - CODE_SYM = 322, - COLLATE_SYM = 323, - COLLATION_SYM = 324, - COLUMNS = 325, - COLUMN_SYM = 326, - COLUMN_NAME_SYM = 327, - COMMENT_SYM = 328, - COMMITTED_SYM = 329, - COMMIT_SYM = 330, - COMPACT_SYM = 331, - COMPLETION_SYM = 332, - COMPRESSED_SYM = 333, - CONCURRENT = 334, - CONDITION_SYM = 335, - CONNECTION_SYM = 336, - CONSISTENT_SYM = 337, - CONSTRAINT = 338, - CONSTRAINT_CATALOG_SYM = 339, - CONSTRAINT_NAME_SYM = 340, - CONSTRAINT_SCHEMA_SYM = 341, - CONTAINS_SYM = 342, - CONTEXT_SYM = 343, - CONTINUE_SYM = 344, - CONTRIBUTORS_SYM = 345, - CONVERT_SYM = 346, - COUNT_SYM = 347, - CPU_SYM = 348, - CREATE = 349, - CROSS = 350, - CUBE_SYM = 351, - CURDATE = 352, - CURRENT_USER = 353, - CURSOR_SYM = 354, - CURSOR_NAME_SYM = 355, - CURTIME = 356, - DATABASE = 357, - DATABASES = 358, - DATAFILE_SYM = 359, - DATA_SYM = 360, - DATETIME = 361, - DATE_ADD_INTERVAL = 362, - DATE_SUB_INTERVAL = 363, - DATE_SYM = 364, - DAY_HOUR_SYM = 365, - DAY_MICROSECOND_SYM = 366, - DAY_MINUTE_SYM = 367, - DAY_SECOND_SYM = 368, - DAY_SYM = 369, - DEALLOCATE_SYM = 370, - DECIMAL_NUM = 371, - DECIMAL_SYM = 372, - DECLARE_SYM = 373, - DEFAULT = 374, - DEFINER_SYM = 375, - DELAYED_SYM = 376, - DELAY_KEY_WRITE_SYM = 377, - DELETE_SYM = 378, - DESC = 379, - DESCRIBE = 380, - DES_KEY_FILE = 381, - DETERMINISTIC_SYM = 382, - DIRECTORY_SYM = 383, - DISABLE_SYM = 384, - DISCARD = 385, - DISK_SYM = 386, - DISTINCT = 387, - DIV_SYM = 388, - DOUBLE_SYM = 389, - DO_SYM = 390, - DROP = 391, - DUAL_SYM = 392, - DUMPFILE = 393, - DUPLICATE_SYM = 394, - DYNAMIC_SYM = 395, - EACH_SYM = 396, - ELSE = 397, - ELSEIF_SYM = 398, - ENABLE_SYM = 399, - ENCLOSED = 400, - END = 401, - ENDS_SYM = 402, - END_OF_INPUT = 403, - ENGINES_SYM = 404, - ENGINE_SYM = 405, - ENUM = 406, - EQ = 407, - EQUAL_SYM = 408, - ERROR_SYM = 409, - ERRORS = 410, - ESCAPED = 411, - ESCAPE_SYM = 412, - EVENTS_SYM = 413, - EVENT_SYM = 414, - EVERY_SYM = 415, - EXECUTE_SYM = 416, - EXISTS = 417, - EXIT_SYM = 418, - EXPANSION_SYM = 419, - EXTENDED_SYM = 420, - EXTENT_SIZE_SYM = 421, - EXTRACT_SYM = 422, - FALSE_SYM = 423, - FAST_SYM = 424, - FAULTS_SYM = 425, - FETCH_SYM = 426, - FILE_SYM = 427, - FIRST_SYM = 428, - FIXED_SYM = 429, - FLOAT_NUM = 430, - FLOAT_SYM = 431, - FLUSH_SYM = 432, - FORCE_SYM = 433, - FOREIGN = 434, - FOR_SYM = 435, - FOUND_SYM = 436, - FROM = 437, - FULL = 438, - FULLTEXT_SYM = 439, - FUNCTION_SYM = 440, - GE = 441, - GENERAL = 442, - GEOMETRYCOLLECTION = 443, - GEOMETRY_SYM = 444, - GET_FORMAT = 445, - GLOBAL_SYM = 446, - GRANT = 447, - GRANTS = 448, - GROUP_SYM = 449, - GROUP_CONCAT_SYM = 450, - GT_SYM = 451, - HANDLER_SYM = 452, - HASH_SYM = 453, - HAVING = 454, - HELP_SYM = 455, - HEX_NUM = 456, - HIGH_PRIORITY = 457, - HOST_SYM = 458, - HOSTS_SYM = 459, - HOUR_MICROSECOND_SYM = 460, - HOUR_MINUTE_SYM = 461, - HOUR_SECOND_SYM = 462, - HOUR_SYM = 463, - IDENT = 464, - IDENTIFIED_SYM = 465, - IDENT_QUOTED = 466, - IF = 467, - IGNORE_SYM = 468, - IGNORE_SERVER_IDS_SYM = 469, - IMPORT = 470, - INDEXES = 471, - INDEX_SYM = 472, - INFILE = 473, - INITIAL_SIZE_SYM = 474, - INNER_SYM = 475, - INOUT_SYM = 476, - INSENSITIVE_SYM = 477, - INSERT = 478, - INSERT_METHOD = 479, - INSTALL_SYM = 480, - INTERVAL_SYM = 481, - INTO = 482, - INT_SYM = 483, - INVOKER_SYM = 484, - IN_SYM = 485, - IO_SYM = 486, - IPC_SYM = 487, - IS = 488, - ISOLATION = 489, - ISSUER_SYM = 490, - ITERATE_SYM = 491, - JOIN_SYM = 492, - KEYS = 493, - KEY_BLOCK_SIZE = 494, - KEY_SYM = 495, - KILL_SYM = 496, - LANGUAGE_SYM = 497, - LAST_SYM = 498, - LE = 499, - LEADING = 500, - LEAVES = 501, - LEAVE_SYM = 502, - LEFT = 503, - LESS_SYM = 504, - LEVEL_SYM = 505, - LEX_HOSTNAME = 506, - LIKE = 507, - LIMIT = 508, - LINEAR_SYM = 509, - LINES = 510, - LINESTRING = 511, - LIST_SYM = 512, - LOAD = 513, - LOCAL_SYM = 514, - LOCATOR_SYM = 515, - LOCKS_SYM = 516, - LOCK_SYM = 517, - LOGFILE_SYM = 518, - LOGS_SYM = 519, - LONGBLOB = 520, - LONGTEXT = 521, - LONG_NUM = 522, - LONG_SYM = 523, - LOOP_SYM = 524, - LOW_PRIORITY = 525, - LT = 526, - MASTER_CONNECT_RETRY_SYM = 527, - MASTER_HOST_SYM = 528, - MASTER_LOG_FILE_SYM = 529, - MASTER_LOG_POS_SYM = 530, - MASTER_PASSWORD_SYM = 531, - MASTER_PORT_SYM = 532, - MASTER_SERVER_ID_SYM = 533, - MASTER_SSL_CAPATH_SYM = 534, - MASTER_SSL_CA_SYM = 535, - MASTER_SSL_CERT_SYM = 536, - MASTER_SSL_CIPHER_SYM = 537, - MASTER_SSL_KEY_SYM = 538, - MASTER_SSL_SYM = 539, - MASTER_SSL_VERIFY_SERVER_CERT_SYM = 540, - MASTER_SYM = 541, - MASTER_USER_SYM = 542, - MASTER_HEARTBEAT_PERIOD_SYM = 543, - MATCH = 544, - MAX_CONNECTIONS_PER_HOUR = 545, - MAX_QUERIES_PER_HOUR = 546, - MAX_ROWS = 547, - MAX_SIZE_SYM = 548, - MAX_SYM = 549, - MAX_UPDATES_PER_HOUR = 550, - MAX_USER_CONNECTIONS_SYM = 551, - MAX_VALUE_SYM = 552, - MEDIUMBLOB = 553, - MEDIUMINT = 554, - MEDIUMTEXT = 555, - MEDIUM_SYM = 556, - MEMORY_SYM = 557, - MERGE_SYM = 558, - MESSAGE_TEXT_SYM = 559, - MICROSECOND_SYM = 560, - MIGRATE_SYM = 561, - MINUTE_MICROSECOND_SYM = 562, - MINUTE_SECOND_SYM = 563, - MINUTE_SYM = 564, - MIN_ROWS = 565, - MIN_SYM = 566, - MODE_SYM = 567, - MODIFIES_SYM = 568, - MODIFY_SYM = 569, - MOD_SYM = 570, - MONTH_SYM = 571, - MULTILINESTRING = 572, - MULTIPOINT = 573, - MULTIPOLYGON = 574, - MUTEX_SYM = 575, - MYSQL_ERRNO_SYM = 576, - NAMES_SYM = 577, - NAME_SYM = 578, - NATIONAL_SYM = 579, - NATURAL = 580, - NCHAR_STRING = 581, - NCHAR_SYM = 582, - NDBCLUSTER_SYM = 583, - NE = 584, - NEG = 585, - NEW_SYM = 586, - NEXT_SYM = 587, - NODEGROUP_SYM = 588, - NONE_SYM = 589, - NOT2_SYM = 590, - NOT_SYM = 591, - NOW_SYM = 592, - NO_SYM = 593, - NO_WAIT_SYM = 594, - NO_WRITE_TO_BINLOG = 595, - NULL_SYM = 596, - NUM = 597, - NUMERIC_SYM = 598, - NVARCHAR_SYM = 599, - OFFSET_SYM = 600, - OLD_PASSWORD = 601, - ON = 602, - ONE_SHOT_SYM = 603, - ONE_SYM = 604, - OPEN_SYM = 605, - OPTIMIZE = 606, - OPTIONS_SYM = 607, - OPTION = 608, - OPTIONALLY = 609, - OR2_SYM = 610, - ORDER_SYM = 611, - OR_OR_SYM = 612, - OR_SYM = 613, - OUTER = 614, - OUTFILE = 615, - OUT_SYM = 616, - OWNER_SYM = 617, - PACK_KEYS_SYM = 618, - PAGE_SYM = 619, - PARAM_MARKER = 620, - PARSER_SYM = 621, - PARTIAL = 622, - PARTITIONING_SYM = 623, - PARTITIONS_SYM = 624, - PARTITION_SYM = 625, - PASSWORD = 626, - PHASE_SYM = 627, - PLUGINS_SYM = 628, - PLUGIN_SYM = 629, - POINT_SYM = 630, - POLYGON = 631, - PORT_SYM = 632, - POSITION_SYM = 633, - PRECISION = 634, - PREPARE_SYM = 635, - PRESERVE_SYM = 636, - PREV_SYM = 637, - PRIMARY_SYM = 638, - PRIVILEGES = 639, - PROCEDURE_SYM = 640, - PROCESS = 641, - PROCESSLIST_SYM = 642, - PROFILE_SYM = 643, - PROFILES_SYM = 644, - PURGE = 645, - QUARTER_SYM = 646, - QUERY_SYM = 647, - QUICK = 648, - RANGE_SYM = 649, - READS_SYM = 650, - READ_ONLY_SYM = 651, - READ_SYM = 652, - READ_WRITE_SYM = 653, - REAL = 654, - REBUILD_SYM = 655, - RECOVER_SYM = 656, - REDOFILE_SYM = 657, - REDO_BUFFER_SIZE_SYM = 658, - REDUNDANT_SYM = 659, - REFERENCES = 660, - REGEXP = 661, - RELAY = 662, - RELAYLOG_SYM = 663, - RELAY_LOG_FILE_SYM = 664, - RELAY_LOG_POS_SYM = 665, - RELAY_THREAD = 666, - RELEASE_SYM = 667, - RELOAD = 668, - REMOVE_SYM = 669, - RENAME = 670, - REORGANIZE_SYM = 671, - REPAIR = 672, - REPEATABLE_SYM = 673, - REPEAT_SYM = 674, - REPLACE = 675, - REPLICATION = 676, - REQUIRE_SYM = 677, - RESET_SYM = 678, - RESIGNAL_SYM = 679, - RESOURCES = 680, - RESTORE_SYM = 681, - RESTRICT = 682, - RESUME_SYM = 683, - RETURNS_SYM = 684, - RETURN_SYM = 685, - REVOKE = 686, - RIGHT = 687, - ROLLBACK_SYM = 688, - ROLLUP_SYM = 689, - ROUTINE_SYM = 690, - ROWS_SYM = 691, - ROW_FORMAT_SYM = 692, - ROW_SYM = 693, - RTREE_SYM = 694, - SAVEPOINT_SYM = 695, - SCHEDULE_SYM = 696, - SCHEMA_NAME_SYM = 697, - SECOND_MICROSECOND_SYM = 698, - SECOND_SYM = 699, - SECURITY_SYM = 700, - SELECT_SYM = 701, - SENSITIVE_SYM = 702, - SEPARATOR_SYM = 703, - SERIALIZABLE_SYM = 704, - SERIAL_SYM = 705, - SESSION_SYM = 706, - SERVER_SYM = 707, - SERVER_OPTIONS = 708, - SET = 709, - SET_VAR = 710, - SHARE_SYM = 711, - SHIFT_LEFT = 712, - SHIFT_RIGHT = 713, - SHOW = 714, - SHUTDOWN = 715, - SIGNAL_SYM = 716, - SIGNED_SYM = 717, - SIMPLE_SYM = 718, - SLAVE = 719, - SLOW = 720, - SMALLINT = 721, - SNAPSHOT_SYM = 722, - SOCKET_SYM = 723, - SONAME_SYM = 724, - SOUNDS_SYM = 725, - SOURCE_SYM = 726, - SPATIAL_SYM = 727, - SPECIFIC_SYM = 728, - SQLEXCEPTION_SYM = 729, - SQLSTATE_SYM = 730, - SQLWARNING_SYM = 731, - SQL_BIG_RESULT = 732, - SQL_BUFFER_RESULT = 733, - SQL_CACHE_SYM = 734, - SQL_CALC_FOUND_ROWS = 735, - SQL_NO_CACHE_SYM = 736, - SQL_SMALL_RESULT = 737, - SQL_SYM = 738, - SQL_THREAD = 739, - SSL_SYM = 740, - STARTING = 741, - STARTS_SYM = 742, - START_SYM = 743, - STATUS_SYM = 744, - STDDEV_SAMP_SYM = 745, - STD_SYM = 746, - STOP_SYM = 747, - STORAGE_SYM = 748, - STRAIGHT_JOIN = 749, - STRING_SYM = 750, - SUBCLASS_ORIGIN_SYM = 751, - SUBDATE_SYM = 752, - SUBJECT_SYM = 753, - SUBPARTITIONS_SYM = 754, - SUBPARTITION_SYM = 755, - SUBSTRING = 756, - SUM_SYM = 757, - SUPER_SYM = 758, - SUSPEND_SYM = 759, - SWAPS_SYM = 760, - SWITCHES_SYM = 761, - SYSDATE = 762, - TABLES = 763, - TABLESPACE = 764, - TABLE_REF_PRIORITY = 765, - TABLE_SYM = 766, - TABLE_CHECKSUM_SYM = 767, - TABLE_NAME_SYM = 768, - TEMPORARY = 769, - TEMPTABLE_SYM = 770, - TERMINATED = 771, - TEXT_STRING = 772, - TEXT_SYM = 773, - THAN_SYM = 774, - THEN_SYM = 775, - TIMESTAMP = 776, - TIMESTAMP_ADD = 777, - TIMESTAMP_DIFF = 778, - TIME_SYM = 779, - TINYBLOB = 780, - TINYINT = 781, - TINYTEXT = 782, - TO_SYM = 783, - TRAILING = 784, - TRANSACTION_SYM = 785, - TRIGGERS_SYM = 786, - TRIGGER_SYM = 787, - TRIM = 788, - TRUE_SYM = 789, - TRUNCATE_SYM = 790, - TYPES_SYM = 791, - TYPE_SYM = 792, - UDF_RETURNS_SYM = 793, - ULONGLONG_NUM = 794, - UNCOMMITTED_SYM = 795, - UNDEFINED_SYM = 796, - UNDERSCORE_CHARSET = 797, - UNDOFILE_SYM = 798, - UNDO_BUFFER_SIZE_SYM = 799, - UNDO_SYM = 800, - UNICODE_SYM = 801, - UNINSTALL_SYM = 802, - UNION_SYM = 803, - UNIQUE_SYM = 804, - UNKNOWN_SYM = 805, - UNLOCK_SYM = 806, - UNSIGNED = 807, - UNTIL_SYM = 808, - UPDATE_SYM = 809, - UPGRADE_SYM = 810, - USAGE = 811, - USER = 812, - USE_FRM = 813, - USE_SYM = 814, - USING = 815, - UTC_DATE_SYM = 816, - UTC_TIMESTAMP_SYM = 817, - UTC_TIME_SYM = 818, - VALUES = 819, - VALUE_SYM = 820, - VARBINARY = 821, - VARCHAR = 822, - VARIABLES = 823, - VARIANCE_SYM = 824, - VARYING = 825, - VAR_SAMP_SYM = 826, - VIEW_SYM = 827, - WAIT_SYM = 828, - WARNINGS = 829, - WEEK_SYM = 830, - WHEN_SYM = 831, - WHERE = 832, - WHILE_SYM = 833, - WITH = 834, - WITH_CUBE_SYM = 835, - WITH_ROLLUP_SYM = 836, - WORK_SYM = 837, - WRAPPER_SYM = 838, - WRITE_SYM = 839, - X509_SYM = 840, - XA_SYM = 841, - XML_SYM = 842, - XOR = 843, - YEAR_MONTH_SYM = 844, - YEAR_SYM = 845, - ZEROFILL = 846 - }; -#endif -/* Tokens. */ -#define ABORT_SYM 258 -#define ACCESSIBLE_SYM 259 -#define ACTION 260 -#define ADD 261 -#define ADDDATE_SYM 262 -#define AFTER_SYM 263 -#define AGAINST 264 -#define AGGREGATE_SYM 265 -#define ALGORITHM_SYM 266 -#define ALL 267 -#define ALTER 268 -#define ANALYZE_SYM 269 -#define AND_AND_SYM 270 -#define AND_SYM 271 -#define ANY_SYM 272 -#define AS 273 -#define ASC 274 -#define ASCII_SYM 275 -#define ASENSITIVE_SYM 276 -#define AT_SYM 277 -#define AUTHORS_SYM 278 -#define AUTOEXTEND_SIZE_SYM 279 -#define AUTO_INC 280 -#define AVG_ROW_LENGTH 281 -#define AVG_SYM 282 -#define BACKUP_SYM 283 -#define BEFORE_SYM 284 -#define BEGIN_SYM 285 -#define BETWEEN_SYM 286 -#define BIGINT 287 -#define BINARY 288 -#define BINLOG_SYM 289 -#define BIN_NUM 290 -#define BIT_AND 291 -#define BIT_OR 292 -#define BIT_SYM 293 -#define BIT_XOR 294 -#define BLOB_SYM 295 -#define BLOCK_SYM 296 -#define BOOLEAN_SYM 297 -#define BOOL_SYM 298 -#define BOTH 299 -#define BTREE_SYM 300 -#define BY 301 -#define BYTE_SYM 302 -#define CACHE_SYM 303 -#define CALL_SYM 304 -#define CASCADE 305 -#define CASCADED 306 -#define CASE_SYM 307 -#define CAST_SYM 308 -#define CATALOG_NAME_SYM 309 -#define CHAIN_SYM 310 -#define CHANGE 311 -#define CHANGED 312 -#define CHARSET 313 -#define CHAR_SYM 314 -#define CHECKSUM_SYM 315 -#define CHECK_SYM 316 -#define CIPHER_SYM 317 -#define CLASS_ORIGIN_SYM 318 -#define CLIENT_SYM 319 -#define CLOSE_SYM 320 -#define COALESCE 321 -#define CODE_SYM 322 -#define COLLATE_SYM 323 -#define COLLATION_SYM 324 -#define COLUMNS 325 -#define COLUMN_SYM 326 -#define COLUMN_NAME_SYM 327 -#define COMMENT_SYM 328 -#define COMMITTED_SYM 329 -#define COMMIT_SYM 330 -#define COMPACT_SYM 331 -#define COMPLETION_SYM 332 -#define COMPRESSED_SYM 333 -#define CONCURRENT 334 -#define CONDITION_SYM 335 -#define CONNECTION_SYM 336 -#define CONSISTENT_SYM 337 -#define CONSTRAINT 338 -#define CONSTRAINT_CATALOG_SYM 339 -#define CONSTRAINT_NAME_SYM 340 -#define CONSTRAINT_SCHEMA_SYM 341 -#define CONTAINS_SYM 342 -#define CONTEXT_SYM 343 -#define CONTINUE_SYM 344 -#define CONTRIBUTORS_SYM 345 -#define CONVERT_SYM 346 -#define COUNT_SYM 347 -#define CPU_SYM 348 -#define CREATE 349 -#define CROSS 350 -#define CUBE_SYM 351 -#define CURDATE 352 -#define CURRENT_USER 353 -#define CURSOR_SYM 354 -#define CURSOR_NAME_SYM 355 -#define CURTIME 356 -#define DATABASE 357 -#define DATABASES 358 -#define DATAFILE_SYM 359 -#define DATA_SYM 360 -#define DATETIME 361 -#define DATE_ADD_INTERVAL 362 -#define DATE_SUB_INTERVAL 363 -#define DATE_SYM 364 -#define DAY_HOUR_SYM 365 -#define DAY_MICROSECOND_SYM 366 -#define DAY_MINUTE_SYM 367 -#define DAY_SECOND_SYM 368 -#define DAY_SYM 369 -#define DEALLOCATE_SYM 370 -#define DECIMAL_NUM 371 -#define DECIMAL_SYM 372 -#define DECLARE_SYM 373 -#define DEFAULT 374 -#define DEFINER_SYM 375 -#define DELAYED_SYM 376 -#define DELAY_KEY_WRITE_SYM 377 -#define DELETE_SYM 378 -#define DESC 379 -#define DESCRIBE 380 -#define DES_KEY_FILE 381 -#define DETERMINISTIC_SYM 382 -#define DIRECTORY_SYM 383 -#define DISABLE_SYM 384 -#define DISCARD 385 -#define DISK_SYM 386 -#define DISTINCT 387 -#define DIV_SYM 388 -#define DOUBLE_SYM 389 -#define DO_SYM 390 -#define DROP 391 -#define DUAL_SYM 392 -#define DUMPFILE 393 -#define DUPLICATE_SYM 394 -#define DYNAMIC_SYM 395 -#define EACH_SYM 396 -#define ELSE 397 -#define ELSEIF_SYM 398 -#define ENABLE_SYM 399 -#define ENCLOSED 400 -#define END 401 -#define ENDS_SYM 402 -#define END_OF_INPUT 403 -#define ENGINES_SYM 404 -#define ENGINE_SYM 405 -#define ENUM 406 -#define EQ 407 -#define EQUAL_SYM 408 -#define ERROR_SYM 409 -#define ERRORS 410 -#define ESCAPED 411 -#define ESCAPE_SYM 412 -#define EVENTS_SYM 413 -#define EVENT_SYM 414 -#define EVERY_SYM 415 -#define EXECUTE_SYM 416 -#define EXISTS 417 -#define EXIT_SYM 418 -#define EXPANSION_SYM 419 -#define EXTENDED_SYM 420 -#define EXTENT_SIZE_SYM 421 -#define EXTRACT_SYM 422 -#define FALSE_SYM 423 -#define FAST_SYM 424 -#define FAULTS_SYM 425 -#define FETCH_SYM 426 -#define FILE_SYM 427 -#define FIRST_SYM 428 -#define FIXED_SYM 429 -#define FLOAT_NUM 430 -#define FLOAT_SYM 431 -#define FLUSH_SYM 432 -#define FORCE_SYM 433 -#define FOREIGN 434 -#define FOR_SYM 435 -#define FOUND_SYM 436 -#define FROM 437 -#define FULL 438 -#define FULLTEXT_SYM 439 -#define FUNCTION_SYM 440 -#define GE 441 -#define GENERAL 442 -#define GEOMETRYCOLLECTION 443 -#define GEOMETRY_SYM 444 -#define GET_FORMAT 445 -#define GLOBAL_SYM 446 -#define GRANT 447 -#define GRANTS 448 -#define GROUP_SYM 449 -#define GROUP_CONCAT_SYM 450 -#define GT_SYM 451 -#define HANDLER_SYM 452 -#define HASH_SYM 453 -#define HAVING 454 -#define HELP_SYM 455 -#define HEX_NUM 456 -#define HIGH_PRIORITY 457 -#define HOST_SYM 458 -#define HOSTS_SYM 459 -#define HOUR_MICROSECOND_SYM 460 -#define HOUR_MINUTE_SYM 461 -#define HOUR_SECOND_SYM 462 -#define HOUR_SYM 463 -#define IDENT 464 -#define IDENTIFIED_SYM 465 -#define IDENT_QUOTED 466 -#define IF 467 -#define IGNORE_SYM 468 -#define IGNORE_SERVER_IDS_SYM 469 -#define IMPORT 470 -#define INDEXES 471 -#define INDEX_SYM 472 -#define INFILE 473 -#define INITIAL_SIZE_SYM 474 -#define INNER_SYM 475 -#define INOUT_SYM 476 -#define INSENSITIVE_SYM 477 -#define INSERT 478 -#define INSERT_METHOD 479 -#define INSTALL_SYM 480 -#define INTERVAL_SYM 481 -#define INTO 482 -#define INT_SYM 483 -#define INVOKER_SYM 484 -#define IN_SYM 485 -#define IO_SYM 486 -#define IPC_SYM 487 -#define IS 488 -#define ISOLATION 489 -#define ISSUER_SYM 490 -#define ITERATE_SYM 491 -#define JOIN_SYM 492 -#define KEYS 493 -#define KEY_BLOCK_SIZE 494 -#define KEY_SYM 495 -#define KILL_SYM 496 -#define LANGUAGE_SYM 497 -#define LAST_SYM 498 -#define LE 499 -#define LEADING 500 -#define LEAVES 501 -#define LEAVE_SYM 502 -#define LEFT 503 -#define LESS_SYM 504 -#define LEVEL_SYM 505 -#define LEX_HOSTNAME 506 -#define LIKE 507 -#define LIMIT 508 -#define LINEAR_SYM 509 -#define LINES 510 -#define LINESTRING 511 -#define LIST_SYM 512 -#define LOAD 513 -#define LOCAL_SYM 514 -#define LOCATOR_SYM 515 -#define LOCKS_SYM 516 -#define LOCK_SYM 517 -#define LOGFILE_SYM 518 -#define LOGS_SYM 519 -#define LONGBLOB 520 -#define LONGTEXT 521 -#define LONG_NUM 522 -#define LONG_SYM 523 -#define LOOP_SYM 524 -#define LOW_PRIORITY 525 -#define LT 526 -#define MASTER_CONNECT_RETRY_SYM 527 -#define MASTER_HOST_SYM 528 -#define MASTER_LOG_FILE_SYM 529 -#define MASTER_LOG_POS_SYM 530 -#define MASTER_PASSWORD_SYM 531 -#define MASTER_PORT_SYM 532 -#define MASTER_SERVER_ID_SYM 533 -#define MASTER_SSL_CAPATH_SYM 534 -#define MASTER_SSL_CA_SYM 535 -#define MASTER_SSL_CERT_SYM 536 -#define MASTER_SSL_CIPHER_SYM 537 -#define MASTER_SSL_KEY_SYM 538 -#define MASTER_SSL_SYM 539 -#define MASTER_SSL_VERIFY_SERVER_CERT_SYM 540 -#define MASTER_SYM 541 -#define MASTER_USER_SYM 542 -#define MASTER_HEARTBEAT_PERIOD_SYM 543 -#define MATCH 544 -#define MAX_CONNECTIONS_PER_HOUR 545 -#define MAX_QUERIES_PER_HOUR 546 -#define MAX_ROWS 547 -#define MAX_SIZE_SYM 548 -#define MAX_SYM 549 -#define MAX_UPDATES_PER_HOUR 550 -#define MAX_USER_CONNECTIONS_SYM 551 -#define MAX_VALUE_SYM 552 -#define MEDIUMBLOB 553 -#define MEDIUMINT 554 -#define MEDIUMTEXT 555 -#define MEDIUM_SYM 556 -#define MEMORY_SYM 557 -#define MERGE_SYM 558 -#define MESSAGE_TEXT_SYM 559 -#define MICROSECOND_SYM 560 -#define MIGRATE_SYM 561 -#define MINUTE_MICROSECOND_SYM 562 -#define MINUTE_SECOND_SYM 563 -#define MINUTE_SYM 564 -#define MIN_ROWS 565 -#define MIN_SYM 566 -#define MODE_SYM 567 -#define MODIFIES_SYM 568 -#define MODIFY_SYM 569 -#define MOD_SYM 570 -#define MONTH_SYM 571 -#define MULTILINESTRING 572 -#define MULTIPOINT 573 -#define MULTIPOLYGON 574 -#define MUTEX_SYM 575 -#define MYSQL_ERRNO_SYM 576 -#define NAMES_SYM 577 -#define NAME_SYM 578 -#define NATIONAL_SYM 579 -#define NATURAL 580 -#define NCHAR_STRING 581 -#define NCHAR_SYM 582 -#define NDBCLUSTER_SYM 583 -#define NE 584 -#define NEG 585 -#define NEW_SYM 586 -#define NEXT_SYM 587 -#define NODEGROUP_SYM 588 -#define NONE_SYM 589 -#define NOT2_SYM 590 -#define NOT_SYM 591 -#define NOW_SYM 592 -#define NO_SYM 593 -#define NO_WAIT_SYM 594 -#define NO_WRITE_TO_BINLOG 595 -#define NULL_SYM 596 -#define NUM 597 -#define NUMERIC_SYM 598 -#define NVARCHAR_SYM 599 -#define OFFSET_SYM 600 -#define OLD_PASSWORD 601 -#define ON 602 -#define ONE_SHOT_SYM 603 -#define ONE_SYM 604 -#define OPEN_SYM 605 -#define OPTIMIZE 606 -#define OPTIONS_SYM 607 -#define OPTION 608 -#define OPTIONALLY 609 -#define OR2_SYM 610 -#define ORDER_SYM 611 -#define OR_OR_SYM 612 -#define OR_SYM 613 -#define OUTER 614 -#define OUTFILE 615 -#define OUT_SYM 616 -#define OWNER_SYM 617 -#define PACK_KEYS_SYM 618 -#define PAGE_SYM 619 -#define PARAM_MARKER 620 -#define PARSER_SYM 621 -#define PARTIAL 622 -#define PARTITIONING_SYM 623 -#define PARTITIONS_SYM 624 -#define PARTITION_SYM 625 -#define PASSWORD 626 -#define PHASE_SYM 627 -#define PLUGINS_SYM 628 -#define PLUGIN_SYM 629 -#define POINT_SYM 630 -#define POLYGON 631 -#define PORT_SYM 632 -#define POSITION_SYM 633 -#define PRECISION 634 -#define PREPARE_SYM 635 -#define PRESERVE_SYM 636 -#define PREV_SYM 637 -#define PRIMARY_SYM 638 -#define PRIVILEGES 639 -#define PROCEDURE_SYM 640 -#define PROCESS 641 -#define PROCESSLIST_SYM 642 -#define PROFILE_SYM 643 -#define PROFILES_SYM 644 -#define PURGE 645 -#define QUARTER_SYM 646 -#define QUERY_SYM 647 -#define QUICK 648 -#define RANGE_SYM 649 -#define READS_SYM 650 -#define READ_ONLY_SYM 651 -#define READ_SYM 652 -#define READ_WRITE_SYM 653 -#define REAL 654 -#define REBUILD_SYM 655 -#define RECOVER_SYM 656 -#define REDOFILE_SYM 657 -#define REDO_BUFFER_SIZE_SYM 658 -#define REDUNDANT_SYM 659 -#define REFERENCES 660 -#define REGEXP 661 -#define RELAY 662 -#define RELAYLOG_SYM 663 -#define RELAY_LOG_FILE_SYM 664 -#define RELAY_LOG_POS_SYM 665 -#define RELAY_THREAD 666 -#define RELEASE_SYM 667 -#define RELOAD 668 -#define REMOVE_SYM 669 -#define RENAME 670 -#define REORGANIZE_SYM 671 -#define REPAIR 672 -#define REPEATABLE_SYM 673 -#define REPEAT_SYM 674 -#define REPLACE 675 -#define REPLICATION 676 -#define REQUIRE_SYM 677 -#define RESET_SYM 678 -#define RESIGNAL_SYM 679 -#define RESOURCES 680 -#define RESTORE_SYM 681 -#define RESTRICT 682 -#define RESUME_SYM 683 -#define RETURNS_SYM 684 -#define RETURN_SYM 685 -#define REVOKE 686 -#define RIGHT 687 -#define ROLLBACK_SYM 688 -#define ROLLUP_SYM 689 -#define ROUTINE_SYM 690 -#define ROWS_SYM 691 -#define ROW_FORMAT_SYM 692 -#define ROW_SYM 693 -#define RTREE_SYM 694 -#define SAVEPOINT_SYM 695 -#define SCHEDULE_SYM 696 -#define SCHEMA_NAME_SYM 697 -#define SECOND_MICROSECOND_SYM 698 -#define SECOND_SYM 699 -#define SECURITY_SYM 700 -#define SELECT_SYM 701 -#define SENSITIVE_SYM 702 -#define SEPARATOR_SYM 703 -#define SERIALIZABLE_SYM 704 -#define SERIAL_SYM 705 -#define SESSION_SYM 706 -#define SERVER_SYM 707 -#define SERVER_OPTIONS 708 -#define SET 709 -#define SET_VAR 710 -#define SHARE_SYM 711 -#define SHIFT_LEFT 712 -#define SHIFT_RIGHT 713 -#define SHOW 714 -#define SHUTDOWN 715 -#define SIGNAL_SYM 716 -#define SIGNED_SYM 717 -#define SIMPLE_SYM 718 -#define SLAVE 719 -#define SLOW 720 -#define SMALLINT 721 -#define SNAPSHOT_SYM 722 -#define SOCKET_SYM 723 -#define SONAME_SYM 724 -#define SOUNDS_SYM 725 -#define SOURCE_SYM 726 -#define SPATIAL_SYM 727 -#define SPECIFIC_SYM 728 -#define SQLEXCEPTION_SYM 729 -#define SQLSTATE_SYM 730 -#define SQLWARNING_SYM 731 -#define SQL_BIG_RESULT 732 -#define SQL_BUFFER_RESULT 733 -#define SQL_CACHE_SYM 734 -#define SQL_CALC_FOUND_ROWS 735 -#define SQL_NO_CACHE_SYM 736 -#define SQL_SMALL_RESULT 737 -#define SQL_SYM 738 -#define SQL_THREAD 739 -#define SSL_SYM 740 -#define STARTING 741 -#define STARTS_SYM 742 -#define START_SYM 743 -#define STATUS_SYM 744 -#define STDDEV_SAMP_SYM 745 -#define STD_SYM 746 -#define STOP_SYM 747 -#define STORAGE_SYM 748 -#define STRAIGHT_JOIN 749 -#define STRING_SYM 750 -#define SUBCLASS_ORIGIN_SYM 751 -#define SUBDATE_SYM 752 -#define SUBJECT_SYM 753 -#define SUBPARTITIONS_SYM 754 -#define SUBPARTITION_SYM 755 -#define SUBSTRING 756 -#define SUM_SYM 757 -#define SUPER_SYM 758 -#define SUSPEND_SYM 759 -#define SWAPS_SYM 760 -#define SWITCHES_SYM 761 -#define SYSDATE 762 -#define TABLES 763 -#define TABLESPACE 764 -#define TABLE_REF_PRIORITY 765 -#define TABLE_SYM 766 -#define TABLE_CHECKSUM_SYM 767 -#define TABLE_NAME_SYM 768 -#define TEMPORARY 769 -#define TEMPTABLE_SYM 770 -#define TERMINATED 771 -#define TEXT_STRING 772 -#define TEXT_SYM 773 -#define THAN_SYM 774 -#define THEN_SYM 775 -#define TIMESTAMP 776 -#define TIMESTAMP_ADD 777 -#define TIMESTAMP_DIFF 778 -#define TIME_SYM 779 -#define TINYBLOB 780 -#define TINYINT 781 -#define TINYTEXT 782 -#define TO_SYM 783 -#define TRAILING 784 -#define TRANSACTION_SYM 785 -#define TRIGGERS_SYM 786 -#define TRIGGER_SYM 787 -#define TRIM 788 -#define TRUE_SYM 789 -#define TRUNCATE_SYM 790 -#define TYPES_SYM 791 -#define TYPE_SYM 792 -#define UDF_RETURNS_SYM 793 -#define ULONGLONG_NUM 794 -#define UNCOMMITTED_SYM 795 -#define UNDEFINED_SYM 796 -#define UNDERSCORE_CHARSET 797 -#define UNDOFILE_SYM 798 -#define UNDO_BUFFER_SIZE_SYM 799 -#define UNDO_SYM 800 -#define UNICODE_SYM 801 -#define UNINSTALL_SYM 802 -#define UNION_SYM 803 -#define UNIQUE_SYM 804 -#define UNKNOWN_SYM 805 -#define UNLOCK_SYM 806 -#define UNSIGNED 807 -#define UNTIL_SYM 808 -#define UPDATE_SYM 809 -#define UPGRADE_SYM 810 -#define USAGE 811 -#define USER 812 -#define USE_FRM 813 -#define USE_SYM 814 -#define USING 815 -#define UTC_DATE_SYM 816 -#define UTC_TIMESTAMP_SYM 817 -#define UTC_TIME_SYM 818 -#define VALUES 819 -#define VALUE_SYM 820 -#define VARBINARY 821 -#define VARCHAR 822 -#define VARIABLES 823 -#define VARIANCE_SYM 824 -#define VARYING 825 -#define VAR_SAMP_SYM 826 -#define VIEW_SYM 827 -#define WAIT_SYM 828 -#define WARNINGS 829 -#define WEEK_SYM 830 -#define WHEN_SYM 831 -#define WHERE 832 -#define WHILE_SYM 833 -#define WITH 834 -#define WITH_CUBE_SYM 835 -#define WITH_ROLLUP_SYM 836 -#define WORK_SYM 837 -#define WRAPPER_SYM 838 -#define WRITE_SYM 839 -#define X509_SYM 840 -#define XA_SYM 841 -#define XML_SYM 842 -#define XOR 843 -#define YEAR_MONTH_SYM 844 -#define YEAR_SYM 845 -#define ZEROFILL 846 - - - - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -{ - -/* Line 1676 of yacc.c */ -#line 724 "/home/bzr/mkindahl/w4877-trunk-20100323/sql/sql_yacc.yy" - - int num; - ulong ulong_num; - ulonglong ulonglong_number; - longlong longlong_number; - LEX_STRING lex_str; - LEX_STRING *lex_str_ptr; - LEX_SYMBOL symbol; - Table_ident *table; - char *simple_string; - Item *item; - Item_num *item_num; - List *item_list; - List *string_list; - String *string; - Key_part_spec *key_part; - TABLE_LIST *table_list; - udf_func *udf; - LEX_USER *lex_user; - struct sys_var_with_base variable; - enum enum_var_type var_type; - Key::Keytype key_type; - enum ha_key_alg key_alg; - handlerton *db_type; - enum row_type row_type; - enum ha_rkey_function ha_rkey_mode; - enum enum_tx_isolation tx_isolation; - enum Cast_target cast_type; - enum Item_udftype udf_type; - CHARSET_INFO *charset; - thr_lock_type lock_type; - interval_type interval, interval_time_st; - timestamp_type date_time_type; - st_select_lex *select_lex; - chooser_compare_func_creator boolfunc2creator; - struct sp_cond_type *spcondtype; - struct { int vars, conds, hndlrs, curs; } spblock; - sp_name *spname; - LEX *lex; - sp_head *sphead; - struct p_elem_val *p_elem_value; - enum index_hint_type index_hint; - enum enum_filetype filetype; - enum Foreign_key::fk_option m_fk_option; - Diag_condition_item_name diag_condition_item_name; - - - -/* Line 1676 of yacc.c */ -#line 1283 "/home/bzr/mkindahl/w4877-trunk-20100323/sql/sql_yacc.h" -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - - - - diff --git a/storage/perfschema/unittest/pfs_timer-t.cc b/storage/perfschema/unittest/pfs_timer-t.cc index a649257e0c5..46efe3fd7b1 100644 --- a/storage/perfschema/unittest/pfs_timer-t.cc +++ b/storage/perfschema/unittest/pfs_timer-t.cc @@ -13,7 +13,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include +#include #include #include #include "my_sys.h" From 50ff45156653ad26b849bfc64e92aea7dc283b9d Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Mon, 12 Apr 2010 17:17:37 +0400 Subject: [PATCH 15/26] A post-fix patch for WL#4877/WL#5030: Fix tons of warnings about mismatch struct and class usage. --- sql/events.h | 2 +- sql/lock.h | 6 +++--- sql/mysqld.h | 2 +- sql/rpl_filter.h | 2 +- sql/sp.h | 2 +- sql/sql_base.h | 6 +++--- sql/sql_cache.h | 2 +- sql/sql_delete.h | 2 +- sql/sql_derived.h | 2 +- sql/sql_handler.h | 2 +- sql/sql_parse.h | 2 +- sql/sql_profile.h | 2 +- sql/sql_table.h | 2 +- sql/sql_update.h | 2 +- sql/table.h | 4 ++-- 15 files changed, 20 insertions(+), 20 deletions(-) diff --git a/sql/events.h b/sql/events.h index c535dda9c31..c84c37b881d 100644 --- a/sql/events.h +++ b/sql/events.h @@ -39,7 +39,7 @@ class Event_db_repository; class Event_parse_data; class Event_queue; class Event_scheduler; -class TABLE_LIST; +struct TABLE_LIST; class THD; typedef class Item COND; typedef struct charset_info_st CHARSET_INFO; diff --git a/sql/lock.h b/sql/lock.h index 803bac960b3..19b23f1f42b 100644 --- a/sql/lock.h +++ b/sql/lock.h @@ -4,8 +4,8 @@ #include "thr_lock.h" /* thr_lock_type */ // Forward declarations -class TABLE; -class TABLE_LIST; +struct TABLE; +struct TABLE_LIST; class THD; typedef struct st_mysql_lock MYSQL_LOCK; @@ -55,7 +55,7 @@ typedef struct st_mysql_lock MYSQL_LOCK; #include "thr_lock.h" /* thr_lock_type */ -class TABLE_LIST; +struct TABLE_LIST; class THD; struct TABLE; typedef struct st_mysql_lock MYSQL_LOCK; diff --git a/sql/mysqld.h b/sql/mysqld.h index c57d92733ed..f9d505e6223 100644 --- a/sql/mysqld.h +++ b/sql/mysqld.h @@ -25,7 +25,7 @@ #include "sql_list.h" /* I_List */ class THD; -class handlerton; +struct handlerton; class Time_zone; class scheduler_functions; diff --git a/sql/rpl_filter.h b/sql/rpl_filter.h index 27bbccbc009..20f5ce8efc4 100644 --- a/sql/rpl_filter.h +++ b/sql/rpl_filter.h @@ -21,7 +21,7 @@ #include "hash.h" /* HASH */ class String; -class TABLE_LIST; +struct TABLE_LIST; typedef struct st_dynamic_array DYNAMIC_ARRAY; typedef struct st_table_rule_ent diff --git a/sql/sp.h b/sql/sp.h index f44f9f2d382..e16c0718f3f 100644 --- a/sql/sp.h +++ b/sql/sp.h @@ -29,7 +29,7 @@ class THD; class sp_cache; class sp_head; class sp_name; -class st_sp_chistics; +struct st_sp_chistics; struct LEX; struct TABLE; struct TABLE_LIST; diff --git a/sql/sql_base.h b/sql/sql_base.h index eac29b1c257..a57666afe49 100644 --- a/sql/sql_base.h +++ b/sql/sql_base.h @@ -23,13 +23,13 @@ #include "mysqld.h" /* key_map */ class Item_ident; -class Name_resolution_context; +struct Name_resolution_context; class Open_table_context; class Open_tables_state; class Prelocking_strategy; -class TABLE_LIST; +struct TABLE_LIST; class THD; -class handlerton; +struct handlerton; struct TABLE; typedef class st_select_lex SELECT_LEX; diff --git a/sql/sql_cache.h b/sql/sql_cache.h index 4fbd372d643..792ae6ba960 100644 --- a/sql/sql_cache.h +++ b/sql/sql_cache.h @@ -20,7 +20,7 @@ #include "my_base.h" /* ha_rows */ class MY_LOCALE; -class TABLE_LIST; +struct TABLE_LIST; class Time_zone; struct LEX; struct TABLE; diff --git a/sql/sql_delete.h b/sql/sql_delete.h index cbaa21cef25..d1c1b363abd 100644 --- a/sql/sql_delete.h +++ b/sql/sql_delete.h @@ -19,7 +19,7 @@ #include "my_base.h" /* ha_rows */ class THD; -class TABLE_LIST; +struct TABLE_LIST; class Item; typedef class Item COND; diff --git a/sql/sql_derived.h b/sql/sql_derived.h index 71dd929feca..0d4eddedf22 100644 --- a/sql/sql_derived.h +++ b/sql/sql_derived.h @@ -16,7 +16,7 @@ #ifndef SQL_DERIVED_INCLUDED #define SQL_DERIVED_INCLUDED -class TABLE_LIST; +struct TABLE_LIST; class THD; struct LEX; diff --git a/sql/sql_handler.h b/sql/sql_handler.h index d4a528d0bd0..8666d5a8d7b 100644 --- a/sql/sql_handler.h +++ b/sql/sql_handler.h @@ -21,7 +21,7 @@ #include "sql_list.h" /* List */ class THD; -class TABLE_LIST; +struct TABLE_LIST; bool mysql_ha_open(THD *thd, TABLE_LIST *tables, bool reopen); bool mysql_ha_close(THD *thd, TABLE_LIST *tables); diff --git a/sql/sql_parse.h b/sql/sql_parse.h index 90a37c7e244..3c34b063d91 100644 --- a/sql/sql_parse.h +++ b/sql/sql_parse.h @@ -23,7 +23,7 @@ class Comp_creator; class Item; class Object_creation_ctx; class Parser_state; -class TABLE_LIST; +struct TABLE_LIST; class THD; class Table_ident; struct LEX; diff --git a/sql/sql_profile.h b/sql/sql_profile.h index 151dd43c58a..ff16a2da19b 100644 --- a/sql/sql_profile.h +++ b/sql/sql_profile.h @@ -17,7 +17,7 @@ #define _SQL_PROFILE_H class Item; -class TABLE_LIST; +struct TABLE_LIST; class THD; typedef struct st_field_info ST_FIELD_INFO; typedef struct st_schema_table ST_SCHEMA_TABLE; diff --git a/sql/sql_table.h b/sql/sql_table.h index 6dbfbe3c9b0..3114876f5ed 100644 --- a/sql/sql_table.h +++ b/sql/sql_table.h @@ -22,7 +22,7 @@ class Alter_info; class Alter_info; class Create_field; -class TABLE_LIST; +struct TABLE_LIST; class THD; struct TABLE; struct handlerton; diff --git a/sql/sql_update.h b/sql/sql_update.h index e5a0ca5c627..6bf022a171c 100644 --- a/sql/sql_update.h +++ b/sql/sql_update.h @@ -19,7 +19,7 @@ #include "sql_class.h" /* enum_duplicates */ class Item; -class TABLE_LIST; +struct TABLE_LIST; class THD; typedef class st_select_lex SELECT_LEX; diff --git a/sql/table.h b/sql/table.h index 34d69c585bb..fcff0cfb0d5 100644 --- a/sql/table.h +++ b/sql/table.h @@ -39,10 +39,10 @@ class st_select_lex; class partition_info; class COND_EQUAL; class Security_context; -class TABLE_LIST; +struct TABLE_LIST; class ACL_internal_schema_access; class ACL_internal_table_access; -class TABLE_LIST; +struct TABLE_LIST; class Field; /* From 2283e1b510998ea904f118b0da50986ec4047de2 Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Mon, 12 Apr 2010 17:35:06 +0400 Subject: [PATCH 16/26] Fix compile error (different storage class for mysql_temp_dir_list) when trying to build innodb as plugin. The reason for the error is mismatch in mysql_temp_dir_list declaration between mysqld.h and usage in ha_innodb.cc Add missing MYSQL_PLUGIN_IMPORT to mysql_tmpdir_list (variables exported by the server and used by plugin need it). --- sql/mysqld.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/mysqld.h b/sql/mysqld.h index f9d505e6223..2547100d8ff 100644 --- a/sql/mysqld.h +++ b/sql/mysqld.h @@ -184,7 +184,7 @@ extern ulong server_id, concurrency; extern time_t server_start_time, flush_status_time; extern char *opt_mysql_tmpdir, mysql_charsets_dir[]; extern int mysql_unpacked_real_data_home_len; -extern MY_TMPDIR mysql_tmpdir_list; +extern MYSQL_PLUGIN_IMPORT MY_TMPDIR mysql_tmpdir_list; extern const char *first_keyword, *delayed_user, *binary_keyword; extern MYSQL_PLUGIN_IMPORT const char *my_localhost; extern MYSQL_PLUGIN_IMPORT const char **errmesg; /* Error messages */ From 5af5bb2da606df8d4f6af7ae8021f3a3ed98ca66 Mon Sep 17 00:00:00 2001 From: "oystein.grovlen@sun.com" <> Date: Tue, 13 Apr 2010 11:38:28 +0200 Subject: [PATCH 17/26] Bug#51980 mysqld service crashes with a simple COUNT(DISTINCT) query over a view Problem: Segmentation fault in add_group_and_distinct_keys() when accessing field of what is assumed to be an Item_field object. Cause: In case of views, the item added to list by is_indexed_agg_distinct() was not of type Item_field, but Item_ref. Resolution: Add the real Item_field object, the one referred to by Item_ref object, to the list, instead. --- mysql-test/r/count_distinct.result | 8 ++++++++ mysql-test/t/count_distinct.test | 11 +++++++++++ sql/sql_select.cc | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/count_distinct.result b/mysql-test/r/count_distinct.result index 804bc1f4788..3b65dd0e608 100644 --- a/mysql-test/r/count_distinct.result +++ b/mysql-test/r/count_distinct.result @@ -86,3 +86,11 @@ select count(distinct if(f1,3,f2)) from t1; count(distinct if(f1,3,f2)) 2 drop table t1; +create table t1 (i int); +insert into t1 values (0), (1); +create view v1 as select * from t1; +select count(distinct i) from v1; +count(distinct i) +2 +drop table t1; +drop view v1; diff --git a/mysql-test/t/count_distinct.test b/mysql-test/t/count_distinct.test index d0996689aeb..10b4ac6f0e7 100644 --- a/mysql-test/t/count_distinct.test +++ b/mysql-test/t/count_distinct.test @@ -96,3 +96,14 @@ insert into t1 values (0,1),(1,2); select count(distinct if(f1,3,f2)) from t1; drop table t1; +# +# Bug #51980 "mysqld service crashes with a simple COUNT(DISTINCT) query +# over a view" +# + +create table t1 (i int); +insert into t1 values (0), (1); +create view v1 as select * from t1; +select count(distinct i) from v1; +drop table t1; +drop view v1; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 7d379ab34de..62a51a32ca2 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -4157,7 +4157,7 @@ is_indexed_agg_distinct(JOIN *join, List *out_args) optimization is applicable */ if (out_args) - out_args->push_back((Item_field *) expr); + out_args->push_back((Item_field *) expr->real_item()); result= true; } } From 04b601a7fe4c87d0b72f8b14c306a14c005846d7 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Tue, 13 Apr 2010 13:48:46 +0200 Subject: [PATCH 18/26] Fix perfschema unittests build on Windows pthread_t is not defined unless my_pthread.h is included. --- storage/perfschema/unittest/pfs-t.cc | 1 + storage/perfschema/unittest/pfs_instr-oom-t.cc | 1 + storage/perfschema/unittest/pfs_instr-t.cc | 1 + storage/perfschema/unittest/pfs_instr_class-oom-t.cc | 1 + storage/perfschema/unittest/pfs_instr_class-t.cc | 4 +++- 5 files changed, 7 insertions(+), 1 deletion(-) diff --git a/storage/perfschema/unittest/pfs-t.cc b/storage/perfschema/unittest/pfs-t.cc index 012c6e7d87a..2f3fb2792fc 100644 --- a/storage/perfschema/unittest/pfs-t.cc +++ b/storage/perfschema/unittest/pfs-t.cc @@ -13,6 +13,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include #include #include #include diff --git a/storage/perfschema/unittest/pfs_instr-oom-t.cc b/storage/perfschema/unittest/pfs_instr-oom-t.cc index 4ea2e038b24..7b3df877133 100644 --- a/storage/perfschema/unittest/pfs_instr-oom-t.cc +++ b/storage/perfschema/unittest/pfs_instr-oom-t.cc @@ -13,6 +13,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include #include #include #include diff --git a/storage/perfschema/unittest/pfs_instr-t.cc b/storage/perfschema/unittest/pfs_instr-t.cc index 4e73276b467..157031cb234 100644 --- a/storage/perfschema/unittest/pfs_instr-t.cc +++ b/storage/perfschema/unittest/pfs_instr-t.cc @@ -13,6 +13,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include #include #include #include diff --git a/storage/perfschema/unittest/pfs_instr_class-oom-t.cc b/storage/perfschema/unittest/pfs_instr_class-oom-t.cc index 9cab0d18b33..064c8c062a4 100644 --- a/storage/perfschema/unittest/pfs_instr_class-oom-t.cc +++ b/storage/perfschema/unittest/pfs_instr_class-oom-t.cc @@ -13,6 +13,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include #include #include #include diff --git a/storage/perfschema/unittest/pfs_instr_class-t.cc b/storage/perfschema/unittest/pfs_instr_class-t.cc index 5d7e0bf734f..c8dce2fd7fb 100644 --- a/storage/perfschema/unittest/pfs_instr_class-t.cc +++ b/storage/perfschema/unittest/pfs_instr_class-t.cc @@ -13,8 +13,10 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include +#include #include +#include + #include // strncpy #include #include From 53fecff1ef023e5020d17dbe38ec8ee4fa499d12 Mon Sep 17 00:00:00 2001 From: Konstantin Osipov Date: Tue, 13 Apr 2010 19:04:45 +0400 Subject: [PATCH 19/26] Backport of: ChangeSet@1.2703, 2007-12-07 09:35:28-05:00, cmiller@zippy.cornsilk.net +40 -0 Bug#13174: SHA2 function Patch contributed from Bill Karwin, paper unnumbered CLA in Seattle Implement SHA2 functions. Chad added code to make it work with YaSSL. Also, he removed the (probable) bug of embedded server never using SSL-dependent functions. (libmysqld/Makefile.am didn't read ANY autoconf defs.) Function specification: SHA2( string cleartext, integer hash_length ) -> string hash, or NULL where hash_length is one of 224, 256, 384, or 512. If either is NULL or a length is unsupported, then the result is NULL. The resulting string is always the length of the hash_length parameter or is NULL. Include the canonical hash examples from the NIST in the test results. --- Polish and address concerns of reviewers. --- .bzrignore | 1 + client/mysql.cc | 6 +- client/mysqltest.cc | 4 +- include/Makefile.am | 2 +- include/mysql_embed.h | 2 +- include/sha2.h | 66 + include/sslopt-case.h | 2 +- include/sslopt-longopts.h | 2 +- include/sslopt-vars.h | 2 +- include/violite.h | 2 + libmysqld/CMakeLists.txt | 2 +- libmysqld/Makefile.am | 4 +- libmysqld/examples/Makefile.am | 2 +- libmysqld/lib_sql.cc | 1 + mysql-test/include/have_ssl_crypto_functs.inc | 8 + mysql-test/r/func_digest.result | 1407 +++++++++++++++++ mysql-test/r/func_encrypt_nossl.result | 42 +- .../have_ssl_is_yes_or_disabled_only.require | 2 + mysql-test/suite/rpl/t/rpl_ssl.test | 2 +- mysql-test/suite/rpl/t/rpl_ssl1.test | 2 +- mysql-test/t/func_des_encrypt.test | 2 +- mysql-test/t/func_digest.test | 483 ++++++ mysql-test/t/func_encrypt.test | 2 +- mysql-test/t/openssl_1.test | 2 +- mysql-test/t/ssl-big.test | 4 +- mysql-test/t/ssl.test | 4 +- mysql-test/t/ssl_8k_key.test | 4 +- mysql-test/t/ssl_compress.test | 4 +- mysql-test/t/ssl_connect.test | 5 +- sql-common/client.c | 24 +- sql/CMakeLists.txt | 2 +- sql/Makefile.am | 3 +- sql/item_create.cc | 23 + sql/item_strfunc.cc | 153 +- sql/item_strfunc.h | 12 + sql/mysqld.cc | 26 +- sql/sha2.cc | 68 + sql/sql_acl.cc | 4 +- sql/sql_connect.cc | 10 +- sql/sys_vars.cc | 2 +- 40 files changed, 2315 insertions(+), 83 deletions(-) create mode 100644 include/sha2.h create mode 100644 mysql-test/include/have_ssl_crypto_functs.inc create mode 100644 mysql-test/r/func_digest.result create mode 100644 mysql-test/r/have_ssl_is_yes_or_disabled_only.require create mode 100644 mysql-test/t/func_digest.test create mode 100644 sql/sha2.cc diff --git a/.bzrignore b/.bzrignore index 8bedda071b1..a4f1e919ab5 100644 --- a/.bzrignore +++ b/.bzrignore @@ -1150,6 +1150,7 @@ libmysqld/rpl_record_old.cc libmysqld/rpl_utility.cc libmysqld/scheduler.cc libmysqld/set_var.cc +libmysqld/sha2.cc libmysqld/simple-test libmysqld/slave.cc libmysqld/sp.cc diff --git a/client/mysql.cc b/client/mysql.cc index 5e77b6e9d17..86094edc039 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -4300,7 +4300,7 @@ sql_real_connect(char *host,char *database,char *user,char *password, mysql_options(&mysql, MYSQL_SECURE_AUTH, (char *) &opt_secure_auth); if (using_opt_local_infile) mysql_options(&mysql,MYSQL_OPT_LOCAL_INFILE, (char*) &opt_local_infile); -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) if (opt_use_ssl) mysql_ssl_set(&mysql, opt_ssl_key, opt_ssl_cert, opt_ssl_ca, opt_ssl_capath, opt_ssl_cipher); @@ -4421,12 +4421,12 @@ com_status(String *buffer __attribute__((unused)), mysql_free_result(result); } -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) if ((status_str= mysql_get_ssl_cipher(&mysql))) tee_fprintf(stdout, "SSL:\t\t\tCipher in use is %s\n", status_str); else -#endif /* HAVE_OPENSSL */ +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */ tee_puts("SSL:\t\t\tNot in use", stdout); if (skip_updates) diff --git a/client/mysqltest.cc b/client/mysqltest.cc index f7964cc27cc..24d520ff97f 100644 --- a/client/mysqltest.cc +++ b/client/mysqltest.cc @@ -5170,7 +5170,7 @@ void do_connect(struct st_command *command) mysql_options(&con_slot->mysql, MYSQL_SET_CHARSET_DIR, opt_charsets_dir); -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) if (opt_use_ssl || con_ssl) { mysql_ssl_set(&con_slot->mysql, opt_ssl_key, opt_ssl_cert, opt_ssl_ca, @@ -7916,7 +7916,7 @@ int main(int argc, char **argv) mysql_options(&con->mysql, MYSQL_SET_CHARSET_DIR, opt_charsets_dir); -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) if (opt_use_ssl) { diff --git a/include/Makefile.am b/include/Makefile.am index c60965fd385..5ede6d7591f 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -37,7 +37,7 @@ noinst_HEADERS = config-win.h config-netware.h lf.h my_bit.h \ heap.h my_bitmap.h my_uctype.h password.h \ myisam.h myisampack.h myisammrg.h ft_global.h\ mysys_err.h my_base.h help_start.h help_end.h \ - my_nosys.h my_alarm.h queues.h rijndael.h sha1.h \ + my_nosys.h my_alarm.h queues.h rijndael.h sha1.h sha2.h \ my_aes.h my_tree.h my_trie.h hash.h thr_alarm.h \ thr_lock.h t_ctype.h violite.h my_md5.h base64.h \ my_handler.h my_time.h service_versions.h \ diff --git a/include/mysql_embed.h b/include/mysql_embed.h index 0e5a360585e..b26b723381d 100644 --- a/include/mysql_embed.h +++ b/include/mysql_embed.h @@ -24,7 +24,7 @@ /* TODO HF add #undef HAVE_VIO if we don't want client in embedded library */ #undef HAVE_PSTACK /* No stacktrace */ -#undef HAVE_OPENSSL +#undef HAVE_DLOPEN /* No udf functions */ #undef HAVE_SMEM /* No shared memory */ #undef HAVE_NDBCLUSTER_DB /* No NDB cluster */ diff --git a/include/sha2.h b/include/sha2.h new file mode 100644 index 00000000000..3c10be8958c --- /dev/null +++ b/include/sha2.h @@ -0,0 +1,66 @@ +/* Copyright (C) 2007 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef included_sha2_h +#define included_sha2_h + +#include + +# ifndef HAVE_YASSL +# include +# endif + +# ifdef HAVE_YASSL + +#include "../extra/yassl/taocrypt/include/sha.hpp" + +# ifdef __cplusplus +extern "C" { +# endif + +#ifndef SHA512_DIGEST_LENGTH +#define SHA512_DIGEST_LENGTH TaoCrypt::SHA512::DIGEST_SIZE +#endif + +#ifndef SHA384_DIGEST_LENGTH +#define SHA384_DIGEST_LENGTH TaoCrypt::SHA384::DIGEST_SIZE +#endif + +#ifndef SHA256_DIGEST_LENGTH +#define SHA256_DIGEST_LENGTH TaoCrypt::SHA256::DIGEST_SIZE +#endif + +#ifndef SHA224_DIGEST_LENGTH +#define SHA224_DIGEST_LENGTH TaoCrypt::SHA224::DIGEST_SIZE +#endif + +#define GEN_YASSL_SHA2_BRIDGE(size) \ +unsigned char* SHA##size(const unsigned char *input_ptr, size_t input_length, \ + char unsigned *output_ptr); + +GEN_YASSL_SHA2_BRIDGE(512); +GEN_YASSL_SHA2_BRIDGE(384); +GEN_YASSL_SHA2_BRIDGE(256); +GEN_YASSL_SHA2_BRIDGE(224); + +#undef GEN_YASSL_SHA2_BRIDGE + +# ifdef __cplusplus +} +# endif + +# endif /* HAVE_YASSL */ + +#endif /* included_sha2_h */ diff --git a/include/sslopt-case.h b/include/sslopt-case.h index ce46cf65cc9..3b64a225fe2 100644 --- a/include/sslopt-case.h +++ b/include/sslopt-case.h @@ -16,7 +16,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) case OPT_SSL_KEY: case OPT_SSL_CERT: case OPT_SSL_CA: diff --git a/include/sslopt-longopts.h b/include/sslopt-longopts.h index b98e72e298e..151287e1718 100644 --- a/include/sslopt-longopts.h +++ b/include/sslopt-longopts.h @@ -16,7 +16,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) {"ssl", OPT_SSL_SSL, "Enable SSL for connection (automatically enabled with other flags).", diff --git a/include/sslopt-vars.h b/include/sslopt-vars.h index 4493fbc59ab..d0eec3b6d74 100644 --- a/include/sslopt-vars.h +++ b/include/sslopt-vars.h @@ -16,7 +16,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) #ifdef SSL_VARS_NOT_STATIC #define SSL_STATIC #else diff --git a/include/violite.h b/include/violite.h index 904c383d64a..05ceaa272c1 100644 --- a/include/violite.h +++ b/include/violite.h @@ -118,6 +118,7 @@ typedef my_socket YASSL_SOCKET_T; #include #include +#ifndef EMBEDDED_LIBRARY enum enum_ssl_init_error { SSL_INITERR_NOERROR= 0, SSL_INITERR_CERT, SSL_INITERR_KEY, @@ -143,6 +144,7 @@ struct st_VioSSLFd const char *ca_file,const char *ca_path, const char *cipher, enum enum_ssl_init_error* error); void free_vio_ssl_acceptor_fd(struct st_VioSSLFd *fd); +#endif /* ! EMBEDDED_LIBRARY */ #endif /* HAVE_OPENSSL */ void vio_end(void); diff --git a/libmysqld/CMakeLists.txt b/libmysqld/CMakeLists.txt index 077a48ede82..af48932a434 100644 --- a/libmysqld/CMakeLists.txt +++ b/libmysqld/CMakeLists.txt @@ -55,7 +55,7 @@ SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc ../sql/net_serv.cc ../sql/opt_range.cc ../sql/opt_sum.cc ../sql/parse_file.cc ../sql/procedure.cc ../sql/protocol.cc ../sql/records.cc ../sql/repl_failsafe.cc ../sql/rpl_filter.cc - ../sql/rpl_record.cc + ../sql/rpl_record.cc ../sql/sha2.cc ../sql/des_key_file.cc ../sql/rpl_injector.cc ../sql/set_var.cc ../sql/spatial.cc ../sql/sp_cache.cc ../sql/sp.cc ../sql/sp_head.cc ../sql/sp_pcontext.cc ../sql/sp_rcontext.cc ../sql/sql_acl.cc diff --git a/libmysqld/Makefile.am b/libmysqld/Makefile.am index 1423d6bf00b..68c31fbf79c 100644 --- a/libmysqld/Makefile.am +++ b/libmysqld/Makefile.am @@ -29,7 +29,8 @@ DEFS = -DEMBEDDED_LIBRARY -DMYSQL_SERVER \ -DMYSQL_DATADIR="\"$(MYSQLDATAdir)\"" \ -DSHAREDIR="\"$(MYSQLSHAREdir)\"" \ -DPLUGINDIR="\"$(pkgplugindir)\"" \ - -DDISABLE_DTRACE + -DDISABLE_DTRACE \ + @DEFS@ INCLUDES= -I$(top_builddir)/include -I$(top_srcdir)/include \ -I$(top_builddir)/sql -I$(top_srcdir)/sql \ -I$(top_srcdir)/sql/examples \ @@ -55,6 +56,7 @@ sqlsources = derror.cc field.cc field_conv.cc strfunc.cc filesort.cc \ item_func.cc item_strfunc.cc item_sum.cc item_timefunc.cc \ item_geofunc.cc item_subselect.cc item_row.cc\ item_xmlfunc.cc \ + sha2.cc des_key_file.cc \ key.cc lock.cc log.cc sql_state.c \ log_event.cc rpl_record.cc rpl_utility.cc \ log_event_old.cc rpl_record_old.cc \ diff --git a/libmysqld/examples/Makefile.am b/libmysqld/examples/Makefile.am index 109d33a85ae..abae608550e 100644 --- a/libmysqld/examples/Makefile.am +++ b/libmysqld/examples/Makefile.am @@ -32,7 +32,7 @@ link_sources: done echo timestamp > link_sources -DEFS = -DEMBEDDED_LIBRARY +DEFS = -DEMBEDDED_LIBRARY @DEFS@ INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir) \ -I$(top_srcdir) -I$(top_srcdir)/client -I$(top_srcdir)/regex \ $(openssl_includes) diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 256c1e8fd40..72379fbc089 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -534,6 +534,7 @@ int init_embedded_server(int argc, char **argv, char **groups) if (!opt_mysql_tmpdir || !opt_mysql_tmpdir[0]) opt_mysql_tmpdir=(char*) P_tmpdir; /* purecov: inspected */ + init_ssl(); umask(((~my_umask) & 0666)); if (init_server_components()) { diff --git a/mysql-test/include/have_ssl_crypto_functs.inc b/mysql-test/include/have_ssl_crypto_functs.inc new file mode 100644 index 00000000000..d32f059e4fa --- /dev/null +++ b/mysql-test/include/have_ssl_crypto_functs.inc @@ -0,0 +1,8 @@ +-- require r/have_ssl_is_yes_or_disabled_only.require +disable_query_log; +# "yes" means that the ssl library is found and the server can communicate using SSL. +# "no" means that there are no SSL functions in the server. +# "disabled" means that ssl functions exist, but communication is disabled for some reason. +replace_regex s/(YES|DISABLED)/yesordisabled/; +show variables like "have_ssl"; +enable_query_log; diff --git a/mysql-test/r/func_digest.result b/mysql-test/r/func_digest.result new file mode 100644 index 00000000000..ff3a4dcf79a --- /dev/null +++ b/mysql-test/r/func_digest.result @@ -0,0 +1,1407 @@ +SELECT SHA1( x'a8' ) = '99f2aa95e36f95c2acb0eaf23998f030638f3f15' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'3000' ) = 'f944dcd635f9801f7ac90a407fbc479964dec024' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'42749e' ) = 'a444319e9b6cc1e8464c511ec0969c37d6bb2619' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'9fc3fe08' ) = '16a0ff84fcc156fd5d3ca3a744f20a232d172253' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'b5c1c6f1af' ) = 'fec9deebfcdedaf66dda525e1be43597a73a1f93' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'e47571e5022e' ) = '8ce051181f0ed5e9d0c498f6bc4caf448d20deb5' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'3e1b28839fb758' ) = '67da53837d89e03bf652ef09c369a3415937cfd3' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'a81350cbb224cb90' ) = '305e4ff9888ad855a78573cddf4c5640cce7e946' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'c243d167923dec3ce1' ) = '5902b77b3265f023f9bbc396ba1a93fa3509bde7' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'50ac18c59d6a37a29bf4' ) = 'fcade5f5d156bf6f9af97bdfa9c19bccfb4ff6ab' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'98e2b611ad3b1cccf634f6' ) = '1d20fbe00533c10e3cbd6b27088a5de0c632c4b5' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'73fe9afb68e1e8712e5d4eec' ) = '7e1b7e0f7a8f3455a9c03e9580fd63ae205a2d93' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'9e701ed7d412a9226a2a130e66' ) = '706f0677146307b20bb0e8d6311e329966884d13' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'6d3ee90413b0a7cbf69e5e6144ca' ) = 'a7241a703aaf0d53fe142f86bf2e849251fa8dff' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'fae24d56514efcb530fd4802f5e71f' ) = '400f53546916d33ad01a5e6df66822dfbdc4e9e6' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'c5a22dd6eda3fe2bdc4ddb3ce6b35fd1' ) = 'fac8ab93c1ae6c16f0311872b984f729dc928ccd' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'd98cded2adabf08fda356445c781802d95' ) = 'fba6d750c18da58f6e2aab10112b9a5ef3301b3b' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'bcc6d7087a84f00103ccb32e5f5487a751a2' ) = '29d27c2d44c205c8107f0351b05753ac708226b6' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'36ecacb1055434190dbbc556c48bafcb0feb0d' ) = 'b971bfc1ebd6f359e8d74cb7ecfe7f898d0ba845' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'5ff9edb69e8f6bbd498eb4537580b7fba7ad31d0' ) = '96d08c430094b9fcc164ad2fb6f72d0a24268f68' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'c95b441d8270822a46a798fae5defcf7b26abace36' ) = 'a287ea752a593d5209e287881a09c49fa3f0beb1' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'83104c1d8a55b28f906f1b72cb53f68cbb097b44f860' ) = 'a06c713779cbd88519ed4a585ac0cb8a5e9d612b' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'755175528d55c39c56493d697b790f099a5ce741f7754b' ) = 'bff7d52c13a3688132a1d407b1ab40f5b5ace298' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'088fc38128bbdb9fd7d65228b3184b3faac6c8715f07272f' ) = 'c7566b91d7b6f56bdfcaa9781a7b6841aacb17e9' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'a4a586eb9245a6c87e3adf1009ac8a49f46c07e14185016895' ) = 'ffa30c0b5c550ea4b1e34f8a60ec9295a1e06ac1' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'8e7c555270c006092c2a3189e2a526b873e2e269f0fb28245256' ) = '29e66ed23e914351e872aa761df6e4f1a07f4b81' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'a5f3bfa6bb0ba3b59f6b9cbdef8a558ec565e8aa3121f405e7f2f0' ) = 'b28cf5e5b806a01491d41f69bd9248765c5dc292' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'589054f0d2bd3c2c85b466bfd8ce18e6ec3e0b87d944cd093ba36469' ) = '60224fb72c46069652cd78bcd08029ef64da62f3' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'a0abb12083b5bbc78128601bf1cbdbc0fdf4b862b24d899953d8da0ff3' ) = 'b72c4a86f72608f24c05f3b9088ef92fba431df7' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'82143f4cea6fadbf998e128a8811dc75301cf1db4f079501ea568da68eeb' ) = '73779ad5d6b71b9b8328ef7220ff12eb167076ac' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'9f1231dd6df1ff7bc0b0d4f989d048672683ce35d956d2f57913046267e6f3' ) = 'a09671d4452d7cf50015c914a1e31973d20cc1a0' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'041c512b5eed791f80d3282f3a28df263bb1df95e1239a7650e5670fc2187919' ) = 'e88cdcd233d99184a6fd260b8fca1b7f7687aee0' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'17e81f6ae8c2e5579d69dafa6e070e7111461552d314b691e7a3e7a4feb3fae418' ) = '010def22850deb1168d525e8c84c28116cb8a269' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'd15976b23a1d712ad28fad04d805f572026b54dd64961fda94d5355a0cc98620cf77' ) = 'aeaa40ba1717ed5439b1e6ea901b294ba500f9ad' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'09fce4d434f6bd32a44e04b848ff50ec9f642a8a85b37a264dc73f130f22838443328f' ) = 'c6433791238795e34f080a5f1f1723f065463ca0' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'f17af27d776ec82a257d8d46d2b46b639462c56984cc1be9c1222eadb8b26594a25c709d' ) = 'e21e22b89c1bb944a32932e6b2a2f20d491982c3' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'b13ce635d6f8758143ffb114f2f601cb20b6276951416a2f94fbf4ad081779d79f4f195b22' ) = '575323a9661f5d28387964d2ba6ab92c17d05a8a' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'5498793f60916ff1c918dde572cdea76da8629ba4ead6d065de3dfb48de94d234cc1c5002910' ) = 'feb44494af72f245bfe68e86c4d7986d57c11db7' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'498a1e0b39fa49582ae688cd715c86fbaf8a81b8b11b4d1594c49c902d197c8ba8a621fd6e3be5' ) = 'cff2290b3648ba2831b98dde436a72f9ebf51eee' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'3a36ae71521f9af628b3e34dcb0d4513f84c78ee49f10416a98857150b8b15cb5c83afb4b570376e' ) = '9b4efe9d27b965905b0c3dab67b8d7c9ebacd56c' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'dcc76b40ae0ea3ba253e92ac50fcde791662c5b6c948538cffc2d95e9de99cac34dfca38910db2678f' ) = 'afedb0ff156205bcd831cbdbda43db8b0588c113' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'5b5ec6ec4fd3ad9c4906f65c747fd4233c11a1736b6b228b92e90cddabb0c7c2fcf9716d3fad261dff33' ) = '8deb1e858f88293a5e5e4d521a34b2a4efa70fc4' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'df48a37b29b1d6de4e94717d60cdb4293fcf170bba388bddf7a9035a15d433f20fd697c3e4c8b8c5f590ab' ) = '95cbdac0f74afa69cebd0e5c7defbc6faf0cbeaf' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'1f179b3b82250a65e1b0aee949e218e2f45c7a8dbfd6ba08de05c55acfc226b48c68d7f7057e5675cd96fcfc' ) = 'f0307bcb92842e5ae0cd4f4f14f3df7f877fbef2' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'ee3d72da3a44d971578972a8e6780ce64941267e0f7d0179b214fa97855e1790e888e09fbe3a70412176cb3b54' ) = '7b13bb0dbf14964bd63b133ac85e22100542ef55' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'd4d4c7843d312b30f610b3682254c8be96d5f6684503f8fbfbcd15774fc1b084d3741afb8d24aaa8ab9c104f7258' ) = 'c314d2b6cf439be678d2a74e890d96cfac1c02ed' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'32c094944f5936a190a0877fb9178a7bf60ceae36fd530671c5b38c5dbd5e6a6c0d615c2ac8ad04b213cc589541cf6' ) = '4d0be361e410b47a9d67d8ce0bb6a8e01c53c078' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'e5d3180c14bf27a5409fa12b104a8fd7e9639609bfde6ee82bbf9648be2546d29688a65e2e3f3da47a45ac14343c9c02' ) = 'e5353431ffae097f675cbf498869f6fbb6e1c9f2' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'e7b6e4b69f724327e41e1188a37f4fe38b1dba19cbf5a7311d6e32f1038e97ab506ee05aebebc1eed09fc0e357109818b9' ) = 'b8720a7068a085c018ab18961de2765aa6cd9ac4' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'bc880cb83b8ac68ef2fedc2da95e7677ce2aa18b0e2d8b322701f67af7d5e7a0d96e9e33326ccb7747cfff0852b961bfd475' ) = 'b0732181568543ba85f2b6da602b4b065d9931aa' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'235ea9c2ba7af25400f2e98a47a291b0bccdaad63faa2475721fda5510cc7dad814bce8dabb611790a6abe56030b798b75c944' ) = '9c22674cf3222c3ba921672694aafee4ce67b96b' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'07e3e29fed63104b8410f323b975fd9fba53f636af8c4e68a53fb202ca35dd9ee07cb169ec5186292e44c27e5696a967f5e67709' ) = 'd128335f4cecca9066cdae08958ce656ff0b4cfc' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'65d2a1dd60a517eb27bfbf530cf6a5458f9d5f4730058bd9814379547f34241822bf67e6335a6d8b5ed06abf8841884c636a25733f' ) = '0b67c57ac578de88a2ae055caeaec8bb9b0085a0' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'dcc86b3bd461615bab739d8daafac231c0f462e819ad29f9f14058f3ab5b75941d4241ea2f17ebb8a458831b37a9b16dead4a76a9b0e' ) = 'c766f912a89d4ccda88e0cce6a713ef5f178b596' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'4627d54f0568dc126b62a8c35fb46a9ac5024400f2995e51635636e1afc4373dbb848eb32df23914230560b82477e9c3572647a7f2bb92' ) = '9aa3925a9dcb177b15ccff9b78e70cf344858779' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'ba531affd4381168ef24d8b275a84d9254c7f5cc55fded53aa8024b2c5c5c8aa7146fe1d1b83d62b70467e9a2e2cb67b3361830adbab28d7' ) = '4811fa30042fc076acf37c8e2274d025307e5943' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'8764dcbcf89dcf4282eb644e3d568bdccb4b13508bfa7bfe0ffc05efd1390be22109969262992d377691eb4f77f3d59ea8466a74abf57b2ef4' ) = '6743018450c9730761ee2b130df9b91c1e118150' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'497d9df9ddb554f3d17870b1a31986c1be277bc44feff713544217a9f579623d18b5ffae306c25a45521d2759a72c0459b58957255ab592f3be4' ) = '71ad4a19d37d92a5e6ef3694ddbeb5aa61ada645' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'72c3c2e065aefa8d9f7a65229e818176eef05da83f835107ba90ec2e95472e73e538f783b416c04654ba8909f26a12db6e5c4e376b7615e4a25819' ) = 'a7d9dc68dacefb7d6116186048cb355cc548e11d' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'7cc9894454d0055ab5069a33984e2f712bef7e3124960d33559f5f3b81906bb66fe64da13c153ca7f5cabc89667314c32c01036d12ecaf5f9a78de98' ) = '142e429f0522ba5abf5131fa81df82d355b96909' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'74e8404d5a453c5f4d306f2cfa338ca65501c840ddab3fb82117933483afd6913c56aaf8a0a0a6b2a342fc3d9dc7599f4a850dfa15d06c61966d74ea59' ) = 'ef72db70dcbcab991e9637976c6faf00d22caae9' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'46fe5ed326c8fe376fcc92dc9e2714e2240d3253b105adfbb256ff7a19bc40975c604ad7c0071c4fd78a7cb64786e1bece548fa4833c04065fe593f6fb10' ) = 'f220a7457f4588d639dc21407c942e9843f8e26b' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'836dfa2524d621cf07c3d2908835de859e549d35030433c796b81272fd8bc0348e8ddbc7705a5ad1fdf2155b6bc48884ac0cd376925f069a37849c089c8645' ) = 'ddd2117b6e309c233ede85f962a0c2fc215e5c69' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA1( x'7e3a4c325cb9c52b88387f93d01ae86d42098f5efa7f9457388b5e74b6d28b2438d42d8b64703324d4aa25ab6aad153ae30cd2b2af4d5e5c00a8a2d0220c6116' ) = 'a3054427cdb13f164a610b348702724c808a0dcc' as NIST_SHA1_test_vector; +NIST_SHA1_test_vector +1 +SELECT SHA2( x'ff', 224 ) = 'e33f9d75e6ae1369dbabf81b96b4591ae46bba30b591a6b6c62542b5' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'984c', 224 ) = '2fa9df9157d9e027cfbc4c6a9df32e1adc0cbe2328ec2a63c5ae934e' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'50efd0', 224 ) = 'b5a9820413c2bf8211fbbf5df1337043b32fa4eafaf61a0c8e9ccede' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'e5e09924', 224 ) = 'fd19e74690d291467ce59f077df311638f1c3a46e510d0e49a67062d' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'21ebecb914', 224 ) = '78f4a71c21c694499ce1c7866611b14ace70d905012c356323c7c713' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'76aa302bc7bb', 224 ) = '8e0f460d8c1f9d9a850a3a0b06408becc4950a77d5e8f94dc8e86fd3' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'510db320ebc443', 224 ) = 'df4fc9bcd967feb83146fd4d2a7448d7d54119a14cb7ffc6753de703' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'17040eed0880ed95', 224 ) = '5c81df5f342d1284a08d846c223f0367ca385ba60908a7fc93470317' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'a92d4c1b971b963f65', 224 ) = 'a45eb31a2482b4581ac321b9175a386c69eb80d43191459e2de6bd0d' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'49c7e96152a2b42ab57f', 224 ) = '53953c275c4fc2f87ca044760a861920fbfc1550a4c822e47457f038' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'becc72bd1596ed064bfbdc', 224 ) = '98ec4bf49071d1b164fdbb415c67db965b7c5f191bb1801c76ea9dc1' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'635afe6c43cabe340d430b69', 224 ) = 'c3a2de40958d2a35e3775eb60aab09fb3097658ac96fe2e142d28dfc' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'c997165324078ed6160077dfea', 224 ) = '17c6235304dd830349bfd8ce7f8f1f41e52fc53bec7bb23382d2d598' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'f871896748653be45dcb64a2bd1a', 224 ) = '3ff8e241b0895a06854d6f660cd7ddfc9a6b36ca73092f2f0cf54109' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'b0ccdd6e9ed398117e1d3cd94b89c2', 224 ) = 'f38dc0dc7f1f93e95030db63f1231df91de8aaef76a39b1c08a6490b' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'0b6ea2ddda429ccbb8f5de3332ac8a00', 224 ) = 'd9f4451ec9baba4c98a9c02b41442c58e1cc3eeb1bcb6d00a2b488c1' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'9ab41a3b8c6c886dc3a57fdfad67fc655f', 224 ) = '2b82967b0e46d8cdc7ecab68a69e177dc01f665dcecc8de824f1bc2b' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'785eabb7e7ca7c476cdd9b227f015d905368', 224 ) = '5617b3824c26b7a8ed43d636ce27a8f1e65b23e307e4d05422d94b56' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'395883570fbfdbf39659bc838fb802c5cc323d', 224 ) = '4169ffec25b0c49a22cc7912f830d443ca4d3b0377ea0d22ca17f4e4' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'6e5ecbbc6f36ec985c253f7e4bb6b1f8ab6c4942', 224 ) = 'db29fe2091df09f0fb0483a11e8134ecd480a3e4ca60dd12bab1543b' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'393d8ef3671232dc6efcb3d6426fc88f730e946b5d', 224 ) = '6d34ae1f00d1d63a39209d15acb2c2420ff0899e11c3e673cd51cd24' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'f222e611d99b3728b5e308f9b9b637b9d493528c2865', 224 ) = '93552ec989b20284010fb79cc7001ba7a59754f1485f3a3c1b361d70' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'16cd2320dd785b07b681c86ad39e56549ee4d71aa9e69e', 224 ) = 'b9920881629965613c70a9b0a65eb9cd9b08945135fd2113586ba38c' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'ceef92454528483f45a6992d179abff266145f2da2d10eb1', 224 ) = 'b7c5e536233ce1c24c2ef6f502246fcedb0d746cade7c849f17d32f1' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'c2770ed3d60c1e7aa1a794818c1fbb9ad5cc5ef7329a8802b8', 224 ) = 'ec36a23fc74263583f1ae65daa968636c15a02e7ff72b0762fb7779f' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'cbf96bd642247c2dd8cf7593f3d88cf61aba22c059604751e737', 224 ) = 'db2ae7e115b8b441de017133c775496efa4a0958d5a322bab780f50e' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'be0a3d0d539017795cc9b21a6a10cd3fdc575f9303bedb4e8464b2', 224 ) = 'c2684880b50e9e8b8adcf348b71ff4fdbde66fe0c6b6b7197f87002b' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'8530e9fdb69ed9bd05466ab4639e47affb7a05c2212fb38c85f9b2bc', 224 ) = 'fa6d9af7f6f5d0da8ea58a00c3c8714673e6112a6405887fd77e56e3' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'd564b9e358cbee4766391e8679cc41c7f1f64f3713765ea151860a40cb', 224 ) = '9b93bf21dd9b587b1e7dccf3cc5df4f193a744a1a082ebf8df65c577' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'12841b7f08bf555156c996ad24ff5c6df0b23c1f25721b63f08ca1954fd1', 224 ) = '98586368ba2d17eef435c6225f3337e4ba21a8657bf3a84ae75f38a3' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'c90824f4096dcbc0a6d70cc1937c1306f501c66c85484b133689ca0e19a474', 224 ) = '735ab14d634b95c24e353ccafd4ab40fa5718e18eeb568905e79cfee' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'd28f6765c7c1e5f05c9ebd6065b9020d255f9dce6d2b932504d586b64b4b7ffe', 224 ) = '2a97b7e1e67a3e22230e51bd6d44a203ca4d3406a11e16f949b0a6c8' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'7a4464bb000276dfc851d80f73dcd7775141e8c427c48e7f30457e99616f0247f1', 224 ) = 'cc70020d59321c4ab85d60278e94b224d4d5aaa8491ab6a4bbbb04ca' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'852368eb5a59e558acd85299955c47760a17ffcebf045d8b45782dd575faad861254', 224 ) = 'f6da08d8f011b7c7b6feaa0e49a864499dfa6bd1e2da81d8c195884e' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'c90e047cf70ea40566ebd269b0e0b2cbc63245b84a06eba13975278fcde2a312a28b74', 224 ) = 'ce4e5baa8acd7653a3a8e62f0464ca286b41935864378c7667db6afc' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'887fd70602e7599169d276dfd8bf44f93fae5188b52794f40f7da3ccb1542769a4618dce', 224 ) = 'be05c2526351af82cad735f69f46ed8b3202b5c170098c932a8e9d84' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'ec1cd5fa0dfbb142e3b222664e2dbbc209d09c00e6addeea5bfb327c3ec3c43ecddd66d1f1', 224 ) = '85956e2a952ecf3b845268708ded872e1b1366b84f87e4775e668b76' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'b67734b20bbaec455be457845bf058599c33bbeaf734be122fbdd011d23298826022398eaf1c', 224 ) = 'd5ed34af21626fe43634ba7df4f569d8186d43c061e63cdb038dbc36' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'e09e7100af3ead397f9f5812a74e19a6a7571c7fb1b8b8ac69164f13eaaf760909905620dd0852', 224 ) = '41bcff813625d927814a70e78b22597d2119174f08ef28a1d9d6e654' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'1d6613e39dde0059bc3bfd6da940cd9d740a2b8dc5f31907ceb775407ed5cd5df73874354317d559', 224 ) = '675468fc5f71d5e53b913350355990a19c3677b76e0daf1dbac0aa24' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'57271ff1795bf74ef6668da1fe8ab0ccfd5050547015eb0af8c449eaace56943b4d7bb18145990c6c5', 224 ) = '6e3d10fb8d3c815636455b08fb1a732fe6ed542ab2e8325c314b6e49' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'3f91d8bf80cb744fe79360f6ecd3f482b95dc8f2dece127e46b82fd76a007fafc484767c8701f0798d35', 224 ) = '34233d574c300c57f481f0568cc43f71c07d9f25c59ef49de74ad2db' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'2408966adf5d3fba570366393882c3d68b5140dd3749a310c75a6efa6d7d038047e90cb9e28a1a00fdaf8c', 224 ) = 'ff0c34018f6c80705cacb86180f887491cd98d4a573f33c87398bb7a' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'adf2e47a62db5003a2d2893c917686cb8dc41fbbc92cd02b37eaba43ac93ea6d3feedec1f20645c0947d0746', 224 ) = 'e91f826d6b7fee1cf731fd3a47d00b17edf669e1471644f0a3bf8365' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'a8f17ae01bd749341b1cea3f73ef22c3a84e4ac38276f497c79ed23f4ae4d4f82488910d4258e8f0206be789d3', 224 ) = '026f1a48b71cdddd0335fc736cc9f6877bd67dc31e43f87cc04efb32' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'eab69fea2590a847e6046aeb81e201cf1797b8636baf7d30f09893bb27a987ad276265327df62b9f37067e573cb0', 224 ) = '7b626a24d06c3f41d458edb360bef9456fda3e90d3fcc546ad2a79cd' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'de1c468c1f27fc265a9497eb8dba257c5dfb8ff708ec27309bb6803e65bd823aab7fbd439dbefec589e120fb4f9825', 224 ) = '02fb84e794a91206437848a4449a2389343f42cbd2877a42d270d51f' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'8a01037a92ff0ba48edd3707f2533723890ade105ef3256fdddd73a236471b38027226ab29bb544e03285d81bd417c27', 224 ) = '67ab2856e368a0bd0fea2042217b31c238fdb73ff8f4ed33090edeb8' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'c9cc53bf67d6bf14d67e2ddc8e6683ef574961ff698f61cdd11e9d9c167272e61df0844f4a7702d7e8392c53cbc9121e33', 224 ) = 'ec263fa2ddfe9c7c05c2a025271176f703d487ea6067e35372d8c75f' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'6380c0a6b3439be6ba13bc10db16c212d8569eeb4567a56d3c49e341538fb32bcbc18d8f0a001e354be89e4995bb5ea6e9bb', 224 ) = 'c577e8faf9233892919ac571c2248d94d47cb7451b847d6628dfa52b' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'85f318cdefb50f71afb880ee058ad2e0b4310223b511f3da2d1006b69df7eb75581bb7a83b3e36ba98b0822e73b9d428f13c9b', 224 ) = '41b8b1081eb8571a8dd2af57f28336a77a47d0bb4d5968ee65d96ba0' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'faa67b20b0b7f00960a5681df1d18eeb0265b50e19e8195cfd0f686060d6810bc1d07ba691bbe90b95585c158b7a2a55105c6e06', 224 ) = '58757f96ba28896e079fd76a578bb1b98ac3c178af2840b327a238ab' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'b1f83a5ea85d72c9721d166b1e9c51d6cb0dd6fe6b2ac88fc728d883c4eaadf3e475882d0fa42808941ceb746b833755bded1892a5', 224 ) = '0a53a62f28cc4db2025dd9175e571912c1a8bd0b293d235f7a0c568a' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'ce2b647be7bf54ea15fe79121bb04f0a04cbc49bbf89f7f70dbe40a79d6970c674895a6d9332926ed4df7445160a684b99fa652dabdd', 224 ) = '0dd413647bb39859aa84933a49af8fc9009690be7fbfb05f7f383015' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'80d1d261afc7a40e810609b92e3617f68a2770a77f705ec2bb562354a6ef8ac69787c25f47426c0b8603f35b2c8d1ccc53e8de4cc30773', 224 ) = '1d47aa5186c55bad63f8a13f0e4543a6ef86ce6a18faade4d4d65ef7' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'3b51a4dbd579846dcadae119be589a91a7dd84a727595f6b1a0709946bf1f2222bb6d041e48b946f2a809ce174052a232aac1500ff30bea1', 224 ) = 'd9c6c0f3b8102496d408388660765ba83b601ee3bffc2d3013f095d5' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'9c76043970f3e2e1f533f85d86b41d394d8570270afe3f500fae28e88f957e051993efb16021633d3d3f26d9f7ad4a62c15e477b842ae5dfdf', 224 ) = '94a7213f15373971b135b47986b3135df4dd45589ba91562313dd70d' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'738b98206d062d99a1d1d7b43f6bed03e01875006c322ffb3bc0d6577a4aa2f6d1eb11f242a7e78e55ff736c72c315008e28fd440a1a35add7d3', 224 ) = 'c40bbb13d17298721c32ed46254a0cba547c4c2086902fadf739802b' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'88ff5518acc6aa5484d8e68c5731a04e877c692f68924a6d4e3d6ed3ea411bddd69de71d6e0e28dde2d5ac0689baaa417851f95b547c80ee6431ee', 224 ) = '9716f750b69fbf537147d5ef468b807425127d6c1df07ab085eb3fa5' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'eaf46a39648bd2baf7d240eb37d812ff9b0f8a838b097f41ba7f5265b69724debe664607d3b4f1871100387640c43ac1a7fb9ccf20df376472f70dc6', 224 ) = 'd180561849855da0369998d10c0ba2775ecd3bc7392a8da1014116f3' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'ef15b0ac7f267e7d9f4fab40b52ee9321a877fcd72443eed39bab7329f2eaba59698c39e29a681e50f04771780dbb74b47988af619ee650c251e1868ec', 224 ) = 'e75969253ec7b8caba5bdb0b024948430a217b3076fa90d4c881a8fa' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'71482c3b0c0b65470314c4028b9343cd9092579a4d3623501941ec7184dccefaa294ad8aa7a26ec7b46f66fdf1571209dcad0976e10030e52a9d2db2b855', 224 ) = 'cee2546181cf14a689f5c66a6141f171a0d2fb116e880778c13ba220' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'de38350f3fe504643d318bd131e6fb14f24e0762eaf5995170b1c4f552e0fb49b0f180d111261e7eb0971bd2177b6944efa31ce617472145f3052c910727f2', 224 ) = '7741192f3dfc1a50166dc6e6f18f6e8580bf45f098fd0559139d8adf' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'81675f6f8ac523cabf94a8a43370a91d9717826e5026e6cdcd23d49217c0c797a95e2ee483d11b8c7a633fd2d21b16900e3f5fda0717cfde3cf4060e6971c282', 224 ) = '3c699b3b62e432e10a255fa7f6a6dbfc6d4b5813d6dcae32142e09fa' as NIST_SHA224_test_vector; +NIST_SHA224_test_vector +1 +SELECT SHA2( x'bd', 256 ) = '68325720aabd7c82f30f554b313d0570c95accbb7dc4b5aae11204c08ffe732b' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'5fd4', 256 ) = '7c4fbf484498d21b487b9d61de8914b2eadaf2698712936d47c3ada2558f6788' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'b0bd69', 256 ) = '4096804221093ddccfbf46831490ea63e9e99414858f8d75ff7f642c7ca61803' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'c98c8e55', 256 ) = '7abc22c0ae5af26ce93dbb94433a0e0b2e119d014f8e7f65bd56c61ccccd9504' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'81a723d966', 256 ) = '7516fb8bb11350df2bf386bc3c33bd0f52cb4c67c6e4745e0488e62c2aea2605' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'c97a2db566e5', 256 ) = '0eb0281b27a4604709b0513b43ad29fdcff9a7a958554abc689d7fe35af703e4' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'f53210aa6ed72e', 256 ) = 'dee684641421d1ba5a65c71f986a117cbb3d619a052a0b3409306c629575c00f' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'0df1cd526b5a4edd', 256 ) = '47f527210d6e8f940b5082fec01b7305908fa2b49ea3ae597c19a3986097153c' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'b80233e2c53ab32cc3', 256 ) = 'c60d239cc6da3ad31f4de0c2d58a73ccf3f9279e504fa60ad55a31dcf686f3ca' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'5d54ed5b52d879aeb5dd', 256 ) = 'e0164d90dbfcf173bb88044fac596ccd03b8d247c79907aaa5701767fad7b576' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'df866ecb67ab00515f6247', 256 ) = 'dc990ef3109a7bcf626199db9ab7801213ceb0ad2ee398963b5061e39c05c7b5' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'0757de9485a2eaea51126077', 256 ) = 'c1c9a4daadcc8678835872c7f1f8824376ac7b412e1fc2285069b41afd51397e' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'7c66f5d443c11cfb39dd0aa715', 256 ) = '6840619417b4d8ecaa7902f8eaf2e82be2638dec97cb7e8fcc377007cc176718' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'329624fed35639fe54957b7d47a9', 256 ) = '0f5308ff22b828e18bd65afbc427e3c1a678962832519df5f2f803f68f55e10b' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'c34e59652acc043873ecf6a4ab1060', 256 ) = '0fdf1604ac0d717ec9587b4de5444aaade807589d90eb326eaf6acb58a051e79' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'fdf4700984ee11b70af1880d0e0fefd4', 256 ) = 'b01ae16eed3b4a770f127b98469ba26fe3d8e9f59d8a2983214afe6cff0e6b6c' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'ea40aadbefedb0e0d78d067c6cd65c2c87', 256 ) = '36157bbe61931d58a3a644953eaf131bbc2591c673a1f20353f51ca5054fc1c2' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'6d1092004670efab3af483d265d8e7b3da73', 256 ) = '67fbf35d360d72b101410794ccf197106c0e784afa9c80206a550b600dbf1f16' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'55a10148ae7b09ac4e71df438135bc70e873eb', 256 ) = 'cbe7965513af46dfd596dc5839cb82a5c6c7328034b1dd0042a9f4b71fb14430' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'a03f8fcd777bd933b4b0af8c5ce3d61308565649', 256 ) = 'ddfce4e8c7b38845e2a81b7fc27a06366467a9e111316014013f9701e2413ce0' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'8e5d6cba8d4b206381e33ca7339bec504f3d6119ba', 256 ) = '92f678a3e59d0dd3610eec3222b8c6ebd28eead530723fbd226747534da22b6c' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'96db1b62eed85f2628d0c25da534401fe80d13d09beb', 256 ) = '725bab4457c789d6a4cc4736b9c2c662cda18407150844d74d6aa4efd72dbb05' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'1c482a45dfbcda549729126b533477edfaf7476fde498f', 256 ) = '6523f24f225b996aad1a8b317e6e0f8e97673dcff3fd62a27ff9f3888ea1302d' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'0f677d8e4c6d6a057492670d99adb870adf68a36ead37919', 256 ) = '44acbbc6b48bf37ee088b9c8546fc46e5a5f0d637b5e444f628de186144087fd' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'c09056d597816542bffe4bb33e475dfb2d6293016906ddc18c', 256 ) = 'f4baeaef70588a0820d63c2401dd84f98adf7366782d196f8698d7dfd3db1c29' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'72f313fdcf52d0749c9937cc2e53f50b44d65a544876bab7d2f8', 256 ) = 'cfa67aa52fd675fca985f69f9ca58af62baead8c39723bb6bfbae8a5d4bb9beb' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'09f6fe6cbe6744149f792a4a827e4e8909627abf75301bf7bbd7f5', 256 ) = '657633891dc6274d6aeda78e7313dfb960eac9a24d29293a057b9746a18de4ec' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'9e1cfeb335bc331744247df4bbd56876a7f69298aaf6b9e7a8731889', 256 ) = '930058dd21cb48b2cf90eaca55322ddf48582687838a584928440504a2fde578' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'b8913001efb1b7f4bd975e349c5b2cbe66045bf0d2fb019b3bc0f059a4', 256 ) = 'a0eb0b7fad1d1b6de4f9096724a621720538a9c3f2f6d11134d68cb9ee52fc88' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'8f08537d50928c911a68b071d65b9e8f038264d3b62c5f33de18a484cde9', 256 ) = '10aad5cd4484387373577a881974f1a550782108bc88b4e2e8085e9c3e938bbb' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'fd846162c4da936d004ffe0cbe844d940f1c2953157cf4765dceba2a6f4c64', 256 ) = 'c13ba769aea0e478816f2f608b5cec3fe14672ea033088a8641cfe69b4ff57cb' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'8cf53d90077df9a043bf8d10b470b144784411c93a4d504556834dae3ea4a5bb', 256 ) = '56059e8cb3c2978b198208bf5ca1e1ea5659b737a506324b7cec75b5ebaf057d' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'1bbc2b15253c126e301f9f64b97be4ce13e96337687e2e78fbfd4c8daf4a5fa1cd', 256 ) = 'd973b5dcdae4cf2599f4db4068e4aa354f22d8901adc463ca3938c465578147b' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'c1bdb3bfc65dfe9a393331266c58d05fb9c8b7476bb717dadc29bc43dabd91504fc9', 256 ) = '57844e1d762e6b7bb86dbfcc5c5a59578d39cc665d1ddbe4de03a61778061af1' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'26eb621a45bd9c9c764ccbb672b99f2a8379c7bbf4fb07eec58a8b0ea4747b72196ccf', 256 ) = '73dc27bd45daccd0f811381230cf7f2a1d3ed1202e9a770af733146b1e166315' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'7e3e3986109162e0c56357048bbd86ff49b93644b7fb064e7280968650978466f02c9adf', 256 ) = '682c474799f5103252c3e2efef7f747783e514b54e93b8303b0e07ee4218f78e' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'763c1a9ea50bd72bfc516989ddf3eff2f208f64fccea3cf0ca8dba7f3d10e237c99226510f', 256 ) = '54d6cb2b09825eab064c8952113b9897a3344737cd186a8e6be0a0b258da3e57' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'e1a7ffea8417e7cd49b96e355fd44f3f7a150fab6dd8343dfba3b262eaf3a6175a3c4607552b', 256 ) = '83baa80caade404c446833ecef2e595bba6dce2cb7f7422fad2972a9fe327aca' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'692a18effad8317a11a5cddb917f7389e1be6dba34572a300e52e056047e758bc363a0be53784c', 256 ) = '0c0c6a6b27a6d7a7a5130d70db3b8bc1bd8001d103efe72f45b082cadbd03742' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'73fda1e1cb7dc9a9ece858d040d7105cc126eab153fb0bb55703f4317dfff97bd980f4523aee3a09', 256 ) = '9878f8804e00828b39261843f2b3eda19a7e9b9ff4cc2e23f7ea1f62f4491ff2' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'2321d88c19e3e6a8309a09a5428c01991e16446823f13b2f0db4ade30e9a7c3521868fb99b440f4802', 256 ) = 'f1bd3a8a74c8f0093038499ef63794d86fc6d82602a802a435718e61e7b396cc' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'b9eaebda29172b052bcc1e3a9c7f2eced43c084a86f89f61e7237425137c167aac29e4cac4071afafd3f', 256 ) = 'ea43ec91285145d8f29915b227a0e35c89f90d968f9a14332dad275cfd52d619' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'332daf07d3a6775b18572549a6e12b8a27d81b7c4abcc5bd0b2b9ff936546b0026af131cd3ecd8a10c29ab', 256 ) = 'a573959ba6b1c3bebfd6288c806b72a65650d23bd46d123816a2a6a0e47d1e66' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'30ac7eace1f2e41034c25a3d3e2db979c23dfaa7a4914b0da147625b3e1f12e9fedc1c41d8ee47dde84fb332', 256 ) = 'c0c3f40d34e711bfadf517b3a78140e379fba5f7edf2c1bc3ce82469dae4d2d5' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'02c3964c4ad9c4af97d373099302c2cd770ad06c7d8bd11c970161d861e917a854265e223da28031ee38041534', 256 ) = 'c13c622bf08a3d3cf1fd6fa5e26e505e551b1643bc5a0f59ed29541235218f77' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'b9eed82edcf0c7ba69f6f6ac5722cb61daecaf30437511582117ad36ad410ebc6582511ef6e32dce5f7a30ab543c', 256 ) = '6ac64caaeda4763d28a44b363823a6b819285410fb4162af6ca657396f6028d0' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'b574865024828bf651df070ac0cec1849aa6470901d2e30fa01dcb43862d9827344cf900f46fa9ef6d709e5e759f84', 256 ) = '4c839e8f8f373c25a9a3351257c6152258ff8e6a88dad42f30f2bbecab56c20b' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'eebcf5cd6b12c90db64ff71a0e08ccd956e170a50dad769480d6b1fb3eff4934cde90f9e9b930ee637a66285c10f4e8a', 256 ) = 'c117b9dce689c399ec99008788cd5d24d8396fab7d96315c4f3fe6d56da63bb3' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'1b7a73770d168da45bf2e512eee45153e02f4dfe3b42e50304a3d63d7826f0469562be8fdc6569b056a7dafcd53d1f597c', 256 ) = '0b42cfc3dd3d3198f06c30e087837ec6a6dd35d08e54e886c682709f8f42457a' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'0072ae2f3bda67736b9c66e2130260b3a4847bc3968e037cb6835efcc2014273336725cd5a94f592aef20a0a65b459a4415b', 256 ) = '217cf25b8b343c28336b1c1e9bed29e0c96045bc93daf426e490b608b0905c90' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'2ac748680f3bc1bf098c4be38c7194643b0d009e51c43630404cdfaf9807aa9b299094916c9466c31fe37fa630c6d3eadc9434', 256 ) = '3ea59e2e79513679a22e962f22408306f7e8f6e562c2f1f210e279fad8eaacc6' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'893d1a8863d234ee50e5a8c7650a4de047230ad03d268dde8921401ff97b79dfb97cf2426b0f782b79c7e75daa2155e1f4098ea7', 256 ) = 'f7808e03e5d5af43c2bffb66e35d1ecbd79f4d8fec44f821f73a235d17c70a89' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'cf673b96eaf241cfa3e262dc6fe65f08bcc2be56d8a2c9710eaddae212ded6859f0ff83e5e57d0e80a968b8ed24e74defeb5bbdad6', 256 ) = '9bdb7cf0492ace4620a47660acd127f951767b0738b5504451d6ed56e4fa3cbd' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'0d545be1f47b966214691c21278704e89a17d52dd96aeeeacc5325a9a1ddafdecd39407a4dfa72bd32856b4c5cc2ba838618830c8399', 256 ) = 'ad53e0db7e63211c8b00947908ce29660c4376e244e19cd30a659af65dc6f1fe' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'9eabfcd3603337df3dcd119d6287a9bc8bb94d650ef29bcf1b32e60d425adc2a35e06577d0c7ce2456cf260efee9e8d8aeeddb3d068f37', 256 ) = '83eeed2dfeb8d2604ab5ec1ac9b5dcab8cc2222518468bc5c24c16ce72e70687' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'2fc7b9e8b8dcaac64ecef4c5f91877543ac36ae494d9faf84b1d347b6cf925570db84043d6f500dcc153cef81d6f2437d913f3dbffad42d9', 256 ) = '6ef7e9f12267ebc4901267da147effdcdebcd6ec5393c7f62ec4c4f06ca72649' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'cf95929ab732f9ef5e8c3e6b4ed753852ee74e4fddf31b56c29a6ec95d23fcde2209eb7288b787f05d9036735c32ae2f01fc650d9cce4995a5', 256 ) = '3e5854169da065407fa465a4694f3fcb1d141480a8f84c970a0f63364ec8f590' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'826378013988684c40f4d917c7ed8b72aba66fd68f085d0b2eb20948ef3f349dbbc71f8e0ba845014586495a48902ee44505c673d2f76d473950', 256 ) = '5b506b823ef6658939aca22f52bbe5a4b849c31b8fa1d09139352e501137bc04' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'0cab6d38ce9849fcbd589f7235a6d2c2cb933e26e1ca6f4e78189104452c280c069b024e162769373f409d5cd0cb8160f0239418325d23ee6ad1bd', 256 ) = '92943076cda4c46718e55df64d7580e12b8fb2c2911e87851246ccf6791fa3e6' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'3fb4a8c5b57c14731179256608614c95c9725ddad5fbfa99111d4fa319d3015ad830601556e8e4c6d012d7da0e2c4f60f1605f6e4c058ec0f46988a3', 256 ) = '8e90da3eb146935264576f874fcc5a64b7a90ab6c8a36c15d855b0179f52f899' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'9050a6d002c90f6036c592b0f6b866713e7894d29645f4a19e0858b3ebd8078711c26d2601ca104d962dc6ce6ae92634ee7f3ca6baf8810e2126097a09', 256 ) = '03c516677735ae83dbe5a7e4c22c1ac1bfedcd46e7dd785f8bfe38e148eda632' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'd659ec136bacfa0b5c906aabedc93c01c5f1efa3f370a1432ea8778461703f0c67c454da12bac2da73b8abb755e5eaf10bddf52f6ca908d61bee80da0c64', 256 ) = 'fff2852957a0eeb577e73fd7d827f650261dfb9a8a65f52df4bbbc9b2d0ae50e' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'b498555658332b197bc5cb7adc5c1997aabbdcf1f7ffcc2b6b82eb0f350019d247f8e399c3559d3bb04eb049f28b344c7989c24db83f839b59028dc82fa670', 256 ) = 'bfbbf242f79bff4ae0aafb4ccf69b24fdca4342d83db1dfd1822c74a9e218e8d' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'3592ecfd1eac618fd390e7a9c24b656532509367c21a0eac1212ac83c0b20cd896eb72b801c4d212c5452bbbf09317b50c5c9fb1997553d2bbc29bb42f5748ad', 256 ) = '105a60865830ac3a371d3843324d4bb5fa8ec0e02ddaa389ad8da4f10215c454' as NIST_SHA256_test_vector; +NIST_SHA256_test_vector +1 +SELECT SHA2( x'ab', 384 ) = 'fb94d5be118865f6fcbc978b825da82cff188faec2f66cb84b2537d74b4938469854b0ca89e66fa2e182834736629f3d' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'7c27', 384 ) = '3d80be467df86d63abb9ea1d3f9cb39cd19890e7f2c53a6200bedc5006842b35e820dc4e0ca90ca9b97ab23ef07080fc' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'31f5ca', 384 ) = '78d54b943421fdf7ba90a7fb9637c2073aa480454bd841d39ff72f4511fc21fb67797b652c0c823229342873d3bef955' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'7bdee3f8', 384 ) = '8bdafba0777ee446c3431c2d7b1fbb631089f71d2ca417abc1d230e1aba64ec2f1c187474a6f4077d372c14ad407f99a' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'8f05604915', 384 ) = '504e414bf1db1060f14c8c799e25b1e0c4dcf1504ebbd129998f0ae283e6de86e0d3c7e879c73ec3b1836c3ee89c2649' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'665da6eda214', 384 ) = '4c022f112010908848312f8b8f1072625fd5c105399d562ea1d56130619a7eac8dfc3748fd05ee37e4b690be9daa9980' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'333b2459200d2b', 384 ) = '5dc6eb1bf26c54f2e0409f5a31aa97c37c8e168d0226e7d2764a11aff3fb76d15e9348520386d730e1998e530c59b56c' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'ad46049e0230c70e', 384 ) = 'c0bc9050670743f554a639e21a5870c864ef56ca831fceb7295b4c3050c3c20876839cfb0d1bcc11c9d64304ed008517' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'ffa6f17b0798388a71', 384 ) = '026c58cab40b45e5909bde1af1bc1ab2669af98a9e3eff10d1ba68f5e3f2adf47038c03b3cc0e07d5353b6ed4d0027e6' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'7eb8d60bf02398ffa689', 384 ) = '683c413c0bb9ecf3a0da7a88c314e85d4658ea4c7ea21b48ea5adafe66746a97e9fe40d7a3b4f1c3fd4a1fab75dcf422' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'c0cf1a3f73dfae7c114118', 384 ) = 'be9839e9ac6ac7a06dbc494823e52b43427b649d6c00d7be2a4ee1c99e75096a82aa9546f804f4c5e2d62afe3b269b06' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'ad5f06ce6e1632966e4a3bcb', 384 ) = '33e29cf43f8cf3c3680710b342126a020e72398ad4be6bae86511a7771d563bf6e76867eb8890d31fea793adb2843481' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'cb3d16ad70bf80e5a9b1113cc7', 384 ) = '64ea8d5538a7ad26c87ac68f5e30c454d150cd3311066124dfc11fd58a56b1d42339f410a09fe7478ffad037f412f992' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'842562ff1d0fc2c173825395a03a', 384 ) = '638c3239fa399faa786a12eae1acda4744cd8d65b7be4532d40de84a994096e929ac6d385d84183637cadfedf2941e86' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'cc95dd4d94b075071b31eeecbe9421', 384 ) = 'ebefdbf6230a671d7b1e31b26fd386f792074f8a897e395c5cf327b5cf9019220e661ed1edd1eb35ca5dd8fb4ba90389' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'daf8002b9394138220770bf3026ba123', 384 ) = 'ada9fb71becbea38bd3378b87d8b67906298d8a57b9c371462e88fce6528d30756dce80691c484f0ed787d4165d09aa0' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'7464d6ecd83a91466fcb1b2c671fae075c', 384 ) = '1cfc153ff54c2eb7825a8772da16b2a39f817fe2e27ec73f7393b3999102d02b480d25b22112aed7f44207d81ead5e2e' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'5520843bdf4af949ae3764b5a9c57c64f513', 384 ) = '8bbf382a606b530cae88e084c944cd32e1690139698e8c92edca1d330cc6675ecdc31c49101467737b0fca2ca71e83e9' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'b2a41b40e3b53d1dc5e37570193f9f76bb80a8', 384 ) = '78df76c6bf5f95fdce5e015eaa37a7e0782b42185c9c989903c26fd43015dd93d949c9ef1a21c858901a60633e840ce8' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'aa986e747d04b932ab8266f259f1ee18e87fd7e6', 384 ) = '81f50207238b98d4eac5907d3c61a982f0cd155a15a100659ea3cdd88cd705e282227161359cfed12ed384a82cf96bc0' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'948b333f042cc18a82cec0177f33c3bdbf185b5803', 384 ) = '5ca83aec2a89bb12ba15cd5c28bc685998f6e62de2ea2706144aa4e073b6b97be7750d0fb86e4a32499920d721a8e59b' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'57271feb9fadb6ef7c9c988258889583a7e2ed86bf7a', 384 ) = '8308f23dbd930f511998ec5cc95428870abb156729a166902b268bd6992ba335d81d9881035d4ec3509fea18015a4c4e' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'b1e6d9be83ca63c0dfd043898cf49690b30aeff093a6a7', 384 ) = '3a94cc56c3c7cc17d54a836b2920edacb0e27a93d63cc152da25010cfab7776bfbb2505af2a0528a1f0198a6375dbcd2' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'c030bb7a49275a4c0a80bc24c6c1d86f4467ca2aa1e6c900', 384 ) = 'ee66585df3f2e40a86d29f15a0f6e7674bf258d0c8dbf78698401fdf0f8b94fe45de202748024d244eb2b8d6e4bb6371' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'aead39a90fed8eaa4bbbe3b2641ef21f8e89321e94af581e78', 384 ) = '55836ec67d5b81f77b38300b7d13db81bcac7fa6b1d8839f65806965978f4fab0db69e50b74d3d1698ab9e10131fe28d' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'2b9e8d1adc0c06a4961299400245d54fd2258b6cff50314455f5', 384 ) = 'b858bf457211e1e10ceff855552eb4ce5067a7664d7008df210cb63502d04f5a03250b64acbdba78f2c30f4820204bb1' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'8e4a0b1b68b8115aee9569c4a1f33109373b790be267a8a8d5721a', 384 ) = '8e97304e6222cc6a93fedb2d526aea034c3d706ff59c1bac6b9c88c3afd15d2328c1615e94c43262d338ec89a545b855' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'300d1802549eaea76f75f4ad10b123bc55ca60afbc17353b369342d1', 384 ) = 'b9c1ea27080cffb70a36b07a44cefad77917d3e7c2429cc196175b21018c99d94e1bb125cb180d45b3241dc210536abc' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'fd628596a69e7038d31e1cf2acba11fb20f7cf9ed72b658668e23f38cd', 384 ) = '8bbb105eb0be34dfcb9b3dae06f77a3e21cce06f701339cbc3844237383295270af51ca28dc893108de65b163a75cc20' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'6d8393d6679e69244db604ea71226fdb4ad3e70e223832020f6032de245f', 384 ) = '4f200337cfa5b77032a7e5e0fa6dbd35a85e4cdba9e2d61d69f3d82dbc4d64e4ff2d029dc52cd2cff90270a0a5a016e8' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'922110e043965d39c2c124499d47877f1e9e33a27b72365b4d4812f443620f', 384 ) = '2ec96054f9d4b87ffb2b447eff8aa44d40200a099c8f6698ae7c86889d3b2beb7ba60634525c4cd3f4635191c822811a' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'b8211b7aa8ae99d26e35c06ea4b226e0a6e52172a40e7f0df5f67759ae2ee026', 384 ) = '093945494108573fbff96c4ea888181f798a022ee5e89137b688a15c5ac85c4da72b8c44558e62323b4de180962aea53' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'6966ef05235dddff26bec1853eb36840434604a79cd4d11702bff9258664b633d6', 384 ) = '8de0abf7a039124ebaf3570db07f3e7547633a5ac56f8c86f8bdcea7296033d7e19c329c381afc050002b7a7b219234c' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'11e8a909b7335c7713671d545943c7e24ec07a8d453935284dcfa67aa90c40f980c7', 384 ) = '4c07b1ac241d727cb0face5e306cbf5672f560acd8e26c7d6cf52782cafb5341733f167237ec56a8e245761c99508844' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'508d360e41e4f2d5356d6d63d1069d21ebfb2e60a0cd2e3fa0320acecd5cb973057e37', 384 ) = '5933be6cb65ba0c9aa50377f93f5b4311961739ba8de3407284974e8a659b900289da049161036278c77dc3e4f16f232' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'a382f5d82a34420b8779a3980ea138f4ea7aa5fe1074ae40760305727f455f40bae5cd4e', 384 ) = '381728f154103fc0de79131de07de5b81ab8e51a9b470e0dbf860f0f7cb6d8418cc604d00895634b2becea268c6e230a' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'63fe4a7f46ad6ebbd8644a6750c601ed00357c5f3ff602bba68f086e7f744a167ae31a8ca2', 384 ) = '1a9bf6ca1f0f435da889c59bec482755926e80b06bd46f80bbda9bf4a30a1630db22837380522146a36e5fb954a7779e' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'94d972dab4e15e51e8bf91890d2ef1a155e26ea03eb48fb7c5ff51c6d64a322208278996875a', 384 ) = '4926848163c834639686244f89c64bc90ebb2c57456a2c56705a7039dc1389fe81bfc3e4d4ac526173a53a2064604a3e' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'0c555adb19cd55039a9e27028184e89f44a8725f28cfc457bfd2a43eaf4e89c6b69cb72ceb04ac', 384 ) = 'b00119ff6f8d405608c74185121c05f76f2268a3726bfe3ffadf7b338b1df0e0557080ae533c56a31b8959037a88d69e' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'567c3828db664ac1e31624b8b5c7e344f39eebcbc43a2b0e318ca2a2d0e9219fa05d539c3543fcda', 384 ) = '636a24bf0d53cb13c27441633781005baec355c2ebd231e393df934275c404150b46d39f100b245064dd2d9f4e19f453' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'32a59e2acdff4c2aee788ab4c7cc36fd477ade2a906dd512acdc86467b6f094ff0a3f4367d6f744acc', 384 ) = '0749c3b9c115b3e29731947878fab9c9cff2286e3f9a24d62240278514c41bef220bbde040f23db4692f915ef40cc92e' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'cfc3ef84e70f9247d9c123de7be8c6e9ba4c7395dfa5556f110a707a1bac877e70c43da46cca7a40dde8', 384 ) = '2b3a9ee9aa7fdaa27d23fdecdf0a7da71d2e9b8e9948c5912f5d2d02a42f22d4e29c179b1c38a1e463569cdc9c2063cb' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'eaa144363d47bcd68c0c950be45ce1b87043c87140256fd449af1f1cad0da3f33d5df1883c640de266802b', 384 ) = '5263e9f3e8a1bb5634050ca89916a961a0ced1a92950ec20aef411e431d16cf9f77ef414b75ad922d9308f9dfe571e75' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'c63da62dc71e97de646f695b5a8c58fa6fae08e5fb622529a83a460976c2189802b5b8870771603b25a94622', 384 ) = 'f63558786f3f06cc84884f14a93a9ef96b1174af8e15296380f7057320bf21e2b5c0684b00a00d895267c3e1404142ff' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'5225b6563257ef806fb0eea5df034cc319db7a5b295f1075887861e64b3653ce9a706e6464ab32f6513dae2bf8', 384 ) = '5be5579e0bc2404523392f95cac2e3e9e59d398b11143e481594edc57cd04247355bee2fa80d0ef2e5dfc0f6f45c4fb4' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'c0b22bc12ecee79ea76f1907a8f435f657b7bb375c92ae11f2a248283e4aeca2df7b5c89c6332c704844775a7157', 384 ) = '1ea1bffd5aee1377de1af01d7c895ef5ebe1c1d72b532b43d5e264c158637414ad1416f21e9a32b194415d6e3e982906' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'0dd0f1807170ea493604c82293732648a106786e1a1df10d6021a4fcc1b9e940f9410225f878fe8ee678de8965ecf7', 384 ) = '2482561cd0e3468a5d8c75c3a1261cb36257536cb165c0f29f817d80833b6a002eee5dc778a953124d79d4d4835b12c4' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'78334108ce6261ddee5d98045bb307a6e8f3d0ee65c1d9bc7d28cd9edf3264fc9cb6e592d072e9238559616cd42eda58', 384 ) = '87feb45250c1e5b4cf701f86fb24d6a49b2c0d2de92db884e2fcdf5e323c0539c78e5a99fdaf56896eed27b897095741' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'e9d96ef05a41486b10ea2e5a9c7059e227ac4d4b61db664cbbfdb488d67c09583b0e4fcb4cdc1feb7be49042b99c4d9d31', 384 ) = 'c0d72a3a4cbee53ce48df9574b65dd0791b15b03202f7c13ada8cde3a4e8c220d9f3d00a3e37b31f44cf6fb5c7134e18' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'90413184900f9c0de1a1983e1eb348bd2c2654aa7b3e4474880d2df2a72f90afffb87f85d66b016d0f2db895f0b9c1b32994', 384 ) = '5c06fbe39a401c80f0463a485d6a32250218db63fb8ad77d1cfce824849d0a61b4acd5a36fa14b22a62beb758b780e6a' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'630fb204cedd5efd2a3c272e318e3b1b3277f8bb12d90b139203d90acf251e780f07d380bafb5620a711c5069989aaa50a8ede', 384 ) = '73e862668fab744ef2768a9bd2fc382532b99c03c4cdbd88eea4a224c56c187d48f8f9985b73d283ce03d71d49dd1c41' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'0f372d71e1c9941d7872956309db44db57108d8be1e0106859862f1a5989640052e0d874c55a3250b53dadb05c2d6efa1d50141c', 384 ) = '13712a36f85a7ff0b98838d674b058bafd11c8a3a9c5ce505bbab1eef6bd640644f94e47a73fd7cfda5a1ff30d830b2c' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'50dd69e3080e0d8a9713202b68c4e87fa2b57bdb940a39a8568c9a13adfc2a0530a7d156a93a583ebed8290cd16a561a2436dd0041', 384 ) = 'd22632b3ed8e83b528e40beb2ae4e01bdcff0e62cd0d48a35f92cd2d286ce5d72a597e0ff2cafbe9ea7eaef32ce5343d' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'ef4501c9eaca54649b6e7dea45005ec7716d7c787b37a79e5122de5178316db650d058d49853fca3349ff4662e273a3bfc1b8ef101db', 384 ) = 'a7574f6b0f1872483ee52be517172dd2193e67cf5b3994947dcbc2866274868c70391dadd8d81de7573ba658e2615871' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'9fa31c5626eee059714e363391284189666594b7ab694f6732498b637138f9a73e43c5bbd73fc13f25ffbfc742ca3eea380b4a960c4b9d', 384 ) = '055c9415e4a5c921eb9721cb32a5c0b47fb57b1af4884332557946717942615ca6251694381537f2a7edc490dfaa82f9' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'e2b76d556ee3b9475a1c54e18ebb0854c7971f543d1a25c9839bf0c7aee7dec0b9215ef828cdb23aec27f3ca87b9559a702cacc0b95f2f28', 384 ) = '6cae189d9765f9a56c825f5e24f5f5c9f60d80f57a35f788ea548e7755844e2592db2c7244a26d7c37ba9a3e5f744a3d' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'd189c6cfa4c14712cfae7fae68d66907595151886e88888bac3d5c79e5cc473289b067afbf482ee6b4db5bed33db29637766c60c3d1206bb1d', 384 ) = 'fc72b66aaead15676fea59cbbc20d39c929c8590a50a0a05d146c41fd92272da3a56f58f6cc93149fd65e91b3f1655a2' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'31981d12960c16661b3f7c7952871a7b00a975677da7557d5ed980f3523fc9e84a164999dda9edd7ea6a31b97f412a8ef924ca156de860f14757', 384 ) = 'a470316104c9828cd96f2b76886a37d01ae5c5a0e537097c4e397dda1c49c59a78d33f4c4d5dd634b7956920760eb0bf' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'44eb420655c5cb6e54645bb6d41dc4f8d5ffafcaeb61e06d9cbebb4709c30793d1a5f35832b85697713e3bc97c7c9d89cf146f8d948ee0da0e38dc', 384 ) = 'b0b028aca4364c92427c4d8edaa5f6dbe2b30e626433d20ce27e5bb74b17dc59f3e9e23e08ce9d49882cc26118e8fae1' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'0871e0c4f2885572f7847cec0629592df48515d2c3225be3248001f13ac2eb61a1a82c07afbd6ff7fad296971aaaa0f9b0f7d068a7850b41b9b68305', 384 ) = '503fb0ecc8b6bfbeff397b9fc02598651ebec429acd50e3add6a9752f576e24c5d933573ebcc23cdf06f807000370825' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'32a5984a4510ac51a9b876ef1eaed25e82a9adab45a817721dd99ae9fbbaca1f3d7e1e8625b2feb08a201d56cdf4099e0f1d019da1f6061bbc26349773', 384 ) = '0ba492631a4261465c137033eb1492ff8cdb0e06f8494e2c52fcf029b157f2127e0f4f75b5d3a10209ba70bd7eddec9d' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'3d62c78e081a996ea4ce2124d6816a62112b9c7eea5c142ecc23ba90ed2e8f6d803286be2d8e956fbe2b0b641ba624ba78b1db4fcdb6ff8486be89417c92', 384 ) = 'e6b6eb5d03c7caaca9f7a62c6cb48c0c5662686c975325d7b94878a43b64fc38a884b2c3635ba7f74df36402c974a7c8' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'78817bc3f6285eca108e54b14091d1ebb9ecb1b7555dcc5acf07cbab32153ad591a0de59f9d24852a44caafd6fc6ea788ef5f5ca7fb256243c580767b56e86', 384 ) = 'a0ed388522b9bf2737b10071c9e22c9d6db99bb3808ea3248959d075062d845b872d2eeabfa4e123b4f738a685a3c41d' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'58beabf979ab35abba29376d5dc227abb3d2ff4d90304982fc1079bc2b2880fcb0129e4fedf27898ce586a91b7681e0dba385e800e7926c0bc5afe0d9ca98650', 384 ) = 'a0888e1c4d7e80cbaaafa8bb1ca1ca912a932175c2ef982ce1f123a8c1aee9635ad75be52590a924bed3f5ec36c35690' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'd03e8048b7c387b43067b039e5b9a0f353d94824862dc485235683daac63a9c90044b1ec218157253a2cb532e114ac81993b85459b8ad8c9d6c4ad0434b9e26f1f', 384 ) = '370629f3dc8c8d4b79c3fe8f9033de2a4bd42874f7b3ffedb4b38d73e7959896c45572f08f2974c86e7a51a6117d1dbc' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'296a9a5b9a0d101f186d9fa6288c912202547cdf958569d2cbf235740eed38d10b0025dbb6de31058e98780d22149c19d4bcaf06dd7353fd91cd1f47e47f45622e14', 384 ) = '66d6336d30e32ca8ae874fd4869dc3ae94edd97484c385bc93a6384353ed358cebea55bfbda954ac16972596ea51384c' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'fe4d2ae2bd5484c7782648130e33f1e478a2deacaca1572ac1f9cb9953e55b2729249da8154d998c1c63180ed7a91faf19b7b6e3d3ceed0a346921a114147cba9281bb', 384 ) = '1df79be52e4a50b6fd14cae825139a39c30829081342b9c4de4fae59df8a0ff20c8a9fe3c498c9ff567a89a32b2e7210' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'6ff84418235fc6ab5d12c1bc6591c66a689e9f21b59e2b1d2c416929f265d2ad6a38ece7619d1c7989d2bb24294f6dd312f1aedbd557ae81338d5fbdd5e7cc3d3e30acad', 384 ) = '75df8657107143d13f309094728c3edc8e92dd36a504e0c0f5c9e8ce64bcc40af18630a1913e9f2214e6638c2bd68552' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'22817ea8761a32516e99c2c00a4d4e6290b46f3d819bcb31cb87e77e40543d87471c8fd6d25a7a5f904f4e0963a51d6a145312d246c0048ca82b4b606f4ad35c04316fd5f9', 384 ) = '51c1275486c73022fe476005a436a0f8623683d568a7e804d81329726fb30a64778b559cb2152a8a7d7889b67c77b1ce' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'd4070bd6e39c3da7751a714915e73e85b73ccb7857379044dc2c6105423da807f82af236876aadd5757a2f736975fb1b8fe540cc3ed8a328d9373e70f354e9b0b6c2b8378569', 384 ) = '87510a9917a6b12fadb3da68908606fab3c76b8e94e250eeae2817dfd4365991b1b517bcda578875fbfddcfdf1b7b142' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'f61034de4f9b0c2d203170cf0d344bd869fba4fca977bb5218175558ccea5438d8048a49c322cfd93991512a014b2cba2f643bc79ba42d139176dbe5ca00d8509b944ab76d47f9', 384 ) = '4c0e7b2409850cb0d22b8944d44876f097a40ee7a5e3cc4a7a20269516d1a3ae5b0b52b5af33d7a7cc5c839966c712ea' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'39b82498bfb4c821096255f6555e0638d06d9a7a4f62a8c83f4233e8dfa67edfad6121b81d635d8091ddad9586a69d210bdedfe178d19c2b5c1d082fb718397d6a6c39c7eb045ae8', 384 ) = '4dddda1188954064b4d134d8be7acc52207945894f97402cb0e8b2519c2b2ca449ca96a4ab4bdf078b0ef2fc9814a74d' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'2477a617791efe62db70e5592e0f815edc0dacaacb0c92928ca37b08d504e56431dcd665f67b70727735c6267c08ee0cef7f58a7d8d55db68c5e1bb5202381a724cca6138ec45f4df5', 384 ) = 'bee03bed3eaceb6d7ddfbfd5bac017fe346928f5a128b2fc0bba965d80cdcdac653af7dd433feaa6fbbe4c415d24ff3c' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'12812e2b54e6b89b199fbe3b695bbedaea02953969f5aa6cb6976983b50cf36ab241130ef52c75c1965512e09395efb3201d07943ebb85548f5937da69c7400d29ba0df5ca148a1cb665', 384 ) = '19227eb974a9f7079479e27ebd95aed4cdfed11ee12395cb5ac3ed04e384b6bbc174800ed6455c5a354f669b0ee90b62' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'e4776aff9f9176054f80f5edac658c95b0aa114a039fa08ab765ec0e350cd40877f837a9788908e6e9fba57c268a643168da6f5d3c97d3aa3458d318dcca8244ef0a91e9cb5265a723d86c', 384 ) = '37d1224bcc443bfc2d1770098da71b98fdf3256210c1eb4b489d3766de535f7aac9431a6cf37cb87dc5cebb5adf220fa' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'060e912736074954f440871c4b64d92e452ba79bb9dcad7f6510aee43cb867e30161c30c15b74d098e48ea7d888bc832c02192745f5ae6b813fb0882643fd885461b010beac67497da7915c9', 384 ) = '9f54ebcdfcf95e7acb00e6e99a8409c10eaf9cf9967266f8524f9467925b9525af07940227d2d947f9642eaab289bbc7' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'647ccd775229a0b7b1f4c4f81e58dc2963432954edc0a06981d3403d2aa4a2d276e0d2d9e15d5d7592fdab4245d48f96898d1d072b09bc2df24a7ca98c90a965c9c1a01e070ee120eed466515d', 384 ) = '938e9d2cb62164167b2d8ba8300ffcf007e0fdcc80f236ce113c304ae4bc589fcae301bff4e72a7f5179f397fe012915' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'717a756d3b651897c7dd97a926431d3277ca5d29aa2f7a3989a4245cf80d05ab7b6e5b75faa4e68ec15404e9cb221b69402337f53c94f4cbd2cc9f16516f98c2c5e5fa8fc10a7e645c279de77a22', 384 ) = '9ecf76b5e05ac4704389b2ef4f7205ace4d152ced735cdb451801eb709702b264aa02aa5efa9cb7c37b526ecd238a319' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'95530985e73134f6fef027c8c61f4b9308afd67de19ce70173d0d2efda44b8b461685cdcf6c531d5dce0b8f6a06208bf4e77ae63e474b88307bc0d3df5e40065bb152412a8b2615d013b4765f672a3', 384 ) = '5f181e9003766e88b6118b2d9bc8cf9425e34a6881a91fd87c5bba87121e6954b8599d6dbed8f2e7a74f2ea0755909ee' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'a707cfaea184546db789b53ac256c2f23563a767b1a11abed303d916513d546b45cca6b9c836ca64c3930cd7024cbd6b8a232b8b2d73d1175bb9ca053b548c4efa89d20864cadacfb138d16aa1668cac', 384 ) = '4a62f6f793b9f8c5e89498c5d45e52c50a3a004dd1c9213d9d1d0cb40f5fb0610cbe5eb261752764ff3fc35a32fd9aaa' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'9241ecb23c7fc0cd69bdfb825614de606332f0256a5ef0df4fb60d51d8bb5a98bf107c0f067fa56f8b3dc73bdc6f015b4cec5e064745bee6e2031477b62fd2b1ef18a2e6a05057ed5af82380fc3d0ae3cc', 384 ) = '9c3bdd4f0b8edd507740d4bc873e35d0963e4cafd27188cc0d63341d25dbf09912ef03903230b1f5c2d0a1c1b9e4b1c9' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'89f96eb0353730367f030d1e91b09debf27ab965570feb3ebd4e24f5b44eadfbfea2601558db1801984f665cf81986c3b2619139cddef3c83698206b12f3832c53e9b78a8997fa1dfbfbdf7df7fc435f66aa', 384 ) = 'a7ca6ca52bfa61a490b7de070ff6279ea87d816ad8754a6e529946141954aebcd9c1b1ca1d9fd39137f062c6a2eb7ddd' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'cd42b8496d6c5f23b06b440d6a17f03991e02140eeb51d1e1824477ea3c2f03995cd6f19191074e27807999344443ae9d7118725fc57d70febbe403b7b16648b93f68df5e1a2fd86cf327fa7b3f142a04604e7', 384 ) = 'f9910144685987e9500f006d3360d1c270bbe1a90fe658e2a1cf87f4aa32d9e41097cd964964b78589db448fc4de3900' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'105f9d121228137fa8138ca3c84d503d89a1d087874a2db18905fa8f616a438f147bceed3b7ea02aa908c3ba4e5b47fd5bf18770a759ae2552427970a8d63ee448492d7d85b1d61f0c18eb3fc7cf47e0020630c2', 384 ) = '8a98f8c9d86edaf0c6dc59be207cfc8ab18dc0b384d2fd9f4a358f42890a919de839eff5388327dc7b175f89e9168c55' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'd7448b7ffb746ec0bdd88106a725b84b59cccd317c21d446f8bc1687671f1c23c99a0a81796c2f83602bd90d68666ec13388b80d0eff8168209e60d8e740d2b8e6af8cb897c41025a7cf7f6b6238aed86d677ba2b3', 384 ) = 'fcfbdf092f428b59a1c51c55d0c09d68863c0d2b76368d80f106e0d24b25c4caae1f8a18de689ad0bf6327ff118295c1' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'd44bb6b3ebe582bec0c602118f430ac362547eb2ede95d78b681fe9a79f89a03caa00bb1fc94d3af4249604314668f68d4d66e7eb21b4641cde5d9f89ae3e8ee8ad9f826e7f3564bff5959e68503e7d434cf3af6b5d0', 384 ) = '4a6de936a59f5b85d03caece8be0eb1940a20afd38fcff9e83d3ca57d9da95344878528b42d4ce4931e8426a893124cd' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'9082f0080bd1030f74595b75376a5b1f7b1ffd2fa3d9751e1beb110a51976451013aa35eb6c34fc38e6914883d9ef2c3543e9a69c40d1b649d60bde61c1a2dfce5dadb668d73a1a65b9da55750ea80c064fba0a913f3ea', 384 ) = 'a3336329854e6dcac625ab1f10cce649687e431009071c9d4fe91bd9da82badc84aeb107ce4d226adb32adc39b66412b' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'14d5039c17beb28e8200a3d4a4febe87c23891c90d6fe903d00ba471eeb9c1e18c58b9b70b16123539d631f9c8d670c7ff8e7089afdbb194695c5f2dee1c6f4ce772eba0d6268ad24dd5840e5e97a4c052de9f9b9da2a4e0', 384 ) = '3af733d34b8905c0a06d8cb459e092546cc3e5b90b3e635bb090d871609932b2a219b577181edfbffa67ac7738450c84' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'95c025f86b7d76b086a8c592b2e9eca1397b0717bc837c5762a0392335c33d0fc8415a351d26392bc7cd9e324cadedb0cd76eee1e95dcdc9deb3656df1bdbd4211c0d3e6b75b990e10193ec05e47aec29c035c5260963f1706', 384 ) = '1ef611d4aa2ee16894eb7e17905f3d66bff8596811f20ef5906d71f9bd0ee3040269efa8ca4273ca43387241c624144d' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'984beb16e04ba209ff4dc567d53edda1de37eac9b8f805a5df924402bc63de4ade478f59870d3e8d6a28de1cb3a792ab4868141c4e8857a7f01d6b2c5b28a2c70dc5f1a650a5981701be05e59641f6e560cddfcc0ce28b437098', 384 ) = '47898d856fb815e3d208df5670acfec6c436eab9b0b1ec63f298a2b81e8d5d326562fbb284f3f7bc70024b5269e2ec2b' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'964c2903d33e9c10b8a7573f4ebdc7178decba00cd7971067d65f6da1794b019532e34d19c465e42c0b9a1e1eb599ba3d64bec773cae49148e7dccf6e7b78ea342bd7833ebfb560f33ca2df96895cf4d043bac8625b5eb033df9ba', 384 ) = 'b7ed21b6f2e1370febc83bc27479757bee06c4065f143d6dd93553448950361815c7ee09e961a98ed21100934a13bc23' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'00633ae4c920f41f16796c713bfd43ff92323a9b7b865350a088333a7e58cb9b215c372c2e35e6b127f2fcd0eb83f4237c708a8c05cbd8c91c63bf48443a883cb639cbf06123905b2fc8b5f68a7b90ca1fc5d4cde15bb96e514e576f', 384 ) = 'f0a86c75dab5034adf835bf62498226b9d4c5d0bf5237b371654058a024e06630c63c7d8ef8d0879e4767e9821d47599' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'6ad118436ce2e22a2b8b7118c8bc081ca9925ddb6f7a37d528983beac66a031cd1a87196586f43ee2d9fe7a7528290faaeae89d5042cca2526d9c951660d92064e7b1a3a9158d06b40c0762841552fd3fe29d9a55ade9cf2e90bc3af60', 384 ) = 'b4460710cf4d9147e9f73e26d97f039533a98ab4cd66399451318bf09a912ccf5267b39a0c8d4c2eeca1e9370a998dcb' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'330ecd4f7820328eb2d1442c9ff555c1c705cbac5f7223056e3936d32eb8bb7fb5bf0e89d4eb307a402f0e1aefb406e2c5e3a7b470c0b8ca91797ced1c3e35e70154e73a0c655e12091b72792ded8acab1385f68c09103af935a212bdb93', 384 ) = 'd8d0edefc5881544f7e72431b41b1b2fcfc198a47ae1b89d43bf118200b8529c60eab34963855283291386aadb0e67e9' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'32d5e868b0b48239a6d74799ae8046f4d98faa564f9b80233541c108d4bc8c31f7b6b3bc945e796eafbb9aa57c408c8ec4a0059889e4bd29edba758f50103839b9e1e127774fdd9f08f332223971c09e8f4fc7e5e607aa5e585af3fa60e896', 384 ) = '01817497f65899ff7dbd32c4a1c34fb0f6d1c9dc426cdaf6bc42d14c68a6e610aac9fcc47c02076162f1510777a416a5' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'57b51d10a4d2fb17ef0f204aa53cf112e1130c21d411cdf16a84176d2ae451ee5f66ae6875cfb2e6a586f233d5ee1bdab9f235513fe229722a7d812afc4f70751a3d128a2b5ef452c10cd71f3b3bb19bea0af5ff729814857319441f69298069', 384 ) = 'cb84599cf288ffa81aa50e0d1c4dfe30777e1b79d82fa05b45707a2e7dd747cd81b1af269206579cc183119f25997263' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'ca536a7bf66c8b1e451edc371699dc1afb79cfd06ea20f19bf6fa3ad510d12c7062179e4f8b1dcc86a41bac3fe3ce43228968f48e2b0a70fa17c66a988e126dcdc6173ceb9f9650c03482cd19ef4ed86e24acd8549244b226b10d2ec2dae8e3035', 384 ) = '8a740cb9d4a5432fa53d497ee3620b675b770ab29cb9c51a5a55eef75c7421b4e0dc2399f1e6bbe54690a88f8afc356b' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'bc57c2803382d1deb56a146767ac80c89183382e01990bb5aa1d3d2391168ad6eaf768fb7d738d014f92b14d7f0595306eb7441622a49800edee0134492d82320707fceba902af2e0c95fe634a85727bde6f022709a09248752db9a71941c7e75cb1', 384 ) = '33a9b367f842da5f8852a0c4c94594db7283f491ddc8b1cfcaf24681abebb912bd44abb46c18035ef2e4b6e009939228' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'cd23cfb189f7797d05244e2abb0db5d26d3ca0f0b8a5bec5ec2ff1fb1b70028970b894d6c252562169067d2051e272e74d3bc70cadee700912eb30e181f55107b7a3987bbcab7836bb5f86c811782d40a413a34c76f91ba17a233d9da67ed32b49ebc5', 384 ) = '2880eccd4926d1ccb4a364d0d2782af372dd22d2b99d3d66849aa04748687ae8e43898e01690bec09725642042442a1f' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'b85559ebc62b0b6fa87e6a8aef273808037cc5036a7e59b54753d68a21f69a79e62da39530bbf6dfc6d7415f66debf73c2455c66c8d11a44260ab3ed0eed806936e1997b24ec3e79a827755aaa6ff511255e431a74791b52cdab110b0bf37860b05983c6', 384 ) = '452ac0db3a324b2e6e566c7455e08b898ac5d87b401bef9cd5f8fcba22679a63ba70762127d44ad4c54d621dda18ca4e' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'2fa9d04bfab983c02abc09c3a30c22a4c0b086c6ae2f700b12a65d8df219118fd207dcb31d411b6dc7fc01b7312498064df3027d02c30561d220c7ceba22d5a859f96ad355caefa7fbbabe9e25482b5061dfc5a24fabd93a4bad38364c0a3a1d0ca903156a', 384 ) = 'be7f7895d6e7642f417141319ee4d2921ff385ac2821eb66f8fa4309de24d0986dee9040ec25a80f18738a7a48260374' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'beeb5575701b32d3b182bd37bb0692d7b9b2dd43cdae7bf5576f5c29752b2cefc690327e74b578cb71512c5a002b465478d16bdb448d119a2f95e5a0df82696e9e03e24e61d371e702e8800fd1ee5fe04bf32f0e296400779d3836fcd86b3190cfae2d8e3f5d', 384 ) = '4b4dc610f079c44075d6b171efc637ae14777331bfe9cb8fbc2f7c0123b37fb978ed15adab3ddcf821cd5457fb996217' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'e4a7bb1d0a354ced4b9fc7983c37002b06900ef50d920a3bcfcd132d0e0e95193130cbdfe83583a50f9622cbd5d6e7211d5d745824848ab764ed140fb91567f1c32cc81e8b242e3f69084ad7258fc5755cf1c92e25f9c24af55b663ec049f3db6141b7c43c29d6', 384 ) = 'c21e70712390ea83b033043f31e866b2c466d5371568104b00d788e6f1e66aab07a214484531e4d6293e7d38ce09539e' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'2dbf241980678ef9c529d4bdf273c2d44dc5e36bdd5a96331e0c6464f9729102f24bf15fa41ffde16a232605605e6aa48a0a2475523d28d438c80fc1c55fd02cc0fb9170a57dbc1d539454fa05e08a4a83588b4f9ae99d0dc95f6a503d899bf00098a9546dc9f035', 384 ) = '266afecf77e96fb08c2daa5f64c0da97c7791e0ae23bb22e7427226c717bcdcd5aeced0d942d5d10990a4ab37a6c6cbe' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'8bade35ccd57d6f8e2a3960cecf685c3787daf4b0f6efe360791ad219f00fe944c2b302a4d1eabf285077f148af20cb8fad802230ed88d2371c4c9ae52df7cc6b8e5049f154c8e041fca89f7db175b98faf45248696cdd0d245afc384b2bf54677e549054e68e6f855', 384 ) = 'b56d9b3094271468e18c7a59187c5eb1c29d3bf681c72941b13c30505ebddee94c004552cd766f69d734e2d82e644ab0' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'd5d4c78a18de6c9070dba887c956e407ec435936f69e228f084e96e2414fd69ce910a249ef1a715796f3c01d6b42aa1c7a33b984c11dfcfae5635998249825358be6f2e769b0a8c70376d8f489f94cdb49a0e3b5231b9c503d46f013f850653d221c606d6de73a671f2c', 384 ) = '2c8050c6f7b38754ca49ea444852d09a41d785a05844755ad6d7b731016b96a9fac81394af2bf24a4ba174d5b5f5cb13' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'2beec0efa2362159f8b84c089a0320ad88ded8e8f48d3cad0b4f18ec132bee71b6ece8099d6b10e6410cc344fe8b634d6af94d3ae4010bbc7070ca9ac2f50e9b9824a4a64dc1d928ab3ce9b60278baf476d0cab59d5c66634a701ea2a36675307a9edd0fdac2e2e7df4fa5', 384 ) = '833547cc4b44fa04763f5780be550528bc895ea70484fd53115993753236b514794a702b80bf50936b57093c5c0ffc28' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'31dad5b0ae329c30ef6c36cc1d1fadf533638b9faae39df25533f7438a64384282d60f75024efee53b485e17f08fa43dd60ae2ae40d99194fba18de4772361942814c5082c2865cd2e71e4898ae72132b248b97fd022cd9cad2d0522d1dfd446ec3bfe5174ea5850908ccf0c', 384 ) = 'df5bf69680ba0d6cbbb7fb564f13e41725c0de4bd7ec79dd01ffc138d1e9806360004fd836276b8abfa73f740dcacead' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'452faeebb6bf93bff2216f6788f66e2f2585cc300a5eec18bd3ca42eff30db90fffc57bfcdbdd05e11ce4937fde8a07f808e635bbda8e5a3bb6e91e55e877fad96724503d6261036c8f5f3d83fb67e0a6d2393fa568075a9847e22f2fc5ee3c8725921bfb9407acd7d60145234', 384 ) = '4c60377833fc16e4462001dd21a12ac0f0dd4f7f711f22595af6421f5f5f58d51e22a3b480bad1408f00868e9181eb4e' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'6a253181a99b76fd9206fe4e25fc55def54d5a217339a16e6fe1150ddcfce291d4cb9267dc4f75b068b9474ca2220d37677c401992c92d187e8b9cf1c67bb0474f7d0e3b89d4413cf1925e20db53e3746e2be511f0dd6bf0444e1540b03901b5e423ee223892a24a367a8af458f8', 384 ) = 'd1181abb0c8d93a166551accff380396e5ac90144416766108907e9dec4c514219bdc7fb3db6ae68eff12bd4d5765894' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'fc25ba418cf60566488551d34fc1e48246119bb0063739e1917aff244b047d986789a72f9f292bb228980205e57c45addb16438fe525d0faa807e0e8ca2254815f8213e1a4c35d1bf0325c7ee72ffc17f1d6fd76ebde47b51cc07db76a1cd4aecd5926e0058d42aa889c87c5bfa3b1', 384 ) = 'a4d8781fc35d998a62237b4344f8e1c26feecfba971adc0d7e09e887340cbe745778f714638571a813df1da0222e4011' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'0f44a8a890cd290806ec8fd8d502fcbed910c4cfa8e1d25c1886480f020366374548ad610d63442855f39a4eaae04d0b32494ba4eebe37403cb00ef8a0250a2dc3b0c61ebca1a4b98f796cb2f3a135d3595b899329f8c4e94f4cbd62f65fa87293653b0726f01064bd654b2d39ac7cbe', 384 ) = '0040f15059fb0fb7ad066670f88f23fb2c640459ca4682547e1d910187012c5c2dcb0c0113b049b73499cb596b0ecedd' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'7330de53e9fa3b47273102ec8b4c22841ebc8e421a6ae65ca9605362f0c6b3ce4c11f6dcdb77c79c3fa66f459eb5f7cced5b8db56f5f2a2a784f714a7775d9c333070ea3559e956b27e9af659ba381388fc271ba4ff2d3055c41c5cd6c1c57f1b17af04f5e57eddd68648af689fd06f18b', 384 ) = '95f2071081e32a72f1070ca99b9aeec8ee3a2ed9e5fa2d1cf5f16aa2bc98f5e0f9b5a6008cd2ce75e080d1b385df0782' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'95322db3ee47d16157f4508f0d52f3b1c31b1afaf2b12e7d7162d69245ea6e7bba39b547b377c5f73e4649e06b47ea505fdf0a74a43bb579c391d4f215a9a47ad69d679a7bdd5aed4575e68117931a81854359112d7e507a4a632b8786c4092f10e4ad73ef7f768a960b913cb83e6d8c5dd0', 384 ) = '21289bb824ff515e45c237d1c79891377f04c40107e71e1db95a9b83b088eaea76e7a4f3019bed4a759f236b2371b76e' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'845b92a5775471ed2fb6eae84e70bfa0c28184a8e0bb5403b7c6c2419e6912eb1005aa21ba62c382d1ae644ca9c391c484a9c0d9a85c8c04b4cfad7233302865726ec3d88ff9bc62d3c9ba5c41a104466f95f16795caa0b4e47de8f319469220519ec6101fa0c454dc0cd5603e9180ed2c4c00', 384 ) = 'a43a1e67855b8d2864e8c8b9eea2875f5ce21f33eb2ee9048e90a9665471653330df8f8b5209194125d8e12239c2d56a' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'6a34a6d3f5032aaf62f4eedfa3038eda5d0efe173fdc7b2e935dc13a12337f81fd72085769a44b3fdb110554143d35e72eb1d16ae8feb78c3f00e6a63e60ee56165ca56971cb1cff045bd1e9631e26561a4512aff92b17bfaf9574179b389bb1de7be5d3b57f8536065cbb6838ae4a6f48512baf', 384 ) = '0026006d0a5b8f44291f4a8ff8628d8dc428544eabde63c6be478fdbacb6215a4f35bc4e1dc66dacd1020d3012bb01e9' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'ba362b818e274a898553d9eb777e934416e3df2f238ea5c6e2076166cb3076b38270c4dc09117c2135e733925e3336195bc61ebaad6aa41afb7db63ebfdfca963e0f723abd903073f2928c7db9ce658b08b2850c25be782d162e9d9f5ad97d9ad6595c22126c0e89a59a0c35ee18c7a305ed3cacf1', 384 ) = '13229cc315e40b044dc9953a5c460b627113d5241885c37f26801c3aec167a3986ab60cdb4a41668c514d9df51a18405' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'17a761e66e007e550ab117c35550fc0fc34d6bccaa7986e855c4038b544b26421592ec5db90d8a9620e615f346fa83edd325d2d1edbf876751665ad2a2fe30b700f749a1ddcebba40cd71f411b398a8ae33abf865dbda2d7b808f09aa8cb2e8f005edf7a834bfac9f70c9b767c16f92f1c1698b5a37a', 384 ) = '60044682f7c4736dac3652052ab1eb5d48a24fa94e43b2a5ce55db1c9e569012a392ee690d5e17384631aba65e7533a1' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'8ae7073088b58154a7f6257657ea7e0615a7a0d834c60c7ade5cd4c5562c00b27f1a2f6fa2e382b26c0cb54e36188f048afe7d9be2da7a32b2e331d6a99d66503450924045b8cd7052fef162a0e7fd2bc14cb7845cca961f2cbade374b630d6bb16f76ccf79c2c3561b421db1cbf8f24c47797bd2afc29', 384 ) = 'bda24dcb1a3f7f52addd1baa0677918927656d7b458c11034f2166b2f8d72db2d1101e589541087ed9c72191260f8318' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'7b0f2d2f4522e57a4d9237d8778644360fead8815db49c0b796c8d3161ebac3b4963f783329f99dabe8c5e2743f969511e9b295f4a5489de31b46783c1c14812c3f34a7e68835a5225e6a64fc1945557ad0d768a931e37ae316058d46803df3890c90c6a0f558fab2aa6f99a1bdf71106349a848619a0f43', 384 ) = '5341d46e6d469718f54e0ad44e5e8cbfb091d9a156eaa1d7695764e6fd70770933f86090701b0404c0a2c9944a49c7f5' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'b98c44b9f1339dfd730270012ebcc5bc0c317aa777b4e5cb1cceb91eee342e0f6ef75c602afbe83484aae369b5e9ef27124ba4b98d85329c7e2347d6a479338966db4ac85f1189a91a057d9c1abf61fb1e9387e2a399f940a95e5f2ebad9238029a1d49a985dc886bc7b06436525625fb870eac8bfd781df25', 384 ) = '9bec1d2fd1e4ef91dc70589e4c50c06673b134720f1e0faa14a94c65fc6c3ff6c1934768b832da6d6342800b46c3a558' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'48e12a838c285b198e16f759d75ef1361c35b9316eb710d8b1861c8d4fb4b7892ee30d21dfaa6647183b40536443a1041912abc18afc71257fff09bbe2a6e306bb2c58c55fe58674e3da5c16d7b3f13231db1a1c88de3b7583165df590868168d90634f774a164a9d93b722a9a7688ca4ed72dc8ce2517d1a512', 384 ) = 'b6efc213b9396389f4ce18e2cfd22733dca2be8c611ee5b94a9a7be1e8f9c78d7736b49520d8ba9ee09ce16ab76fbba0' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'a34dbe4c6f53b1a60cba0260124ba5b3a72395bb4664bccdbf2a130a7fc10a3412152ac1e669f92e524c1e96d6c9c583a5df45046031000025fd8bc9c85210f4607ef06906c6acb6d95b05a94689621d863073146778140650c174797fd976d29672576b56d392e5aacd00c0e7f1442852006612e3a3be88485c14', 384 ) = '723f8ef0f28a234f8dda9f687ab51b2874b91a69ac7a20b107064e7b7c87c849f3ea39471e11ba43499d458e9044d4c4' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'd800e0a7cdd96a08ecf6e65dd4ca095605237cc6970932a62ce9fa5d23f3503f0ec079536638cf597eb3590bb65e9ea4f1e1bb9f493eb4c101fc0859ba8688c7eace683b8b3597bf10af4c789d22e2287710e5f8ba766d754af4aad80b2dc18a5571d6e7a29a6a438a33e82af2e07aec80f92159527905caef170a61', 384 ) = '0e1c22ae4d049d23cd7b332359a246e199d4d9b417aae5695874d5cd9ed61d76d2cde81cdb2beac9c4f1d53e00fa0c7d' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'cc8470e78492e4ed8598fd5f35ae83b4c49a37781bf066930f7ebdcedbe65f93cd8d35f43fb485f0c9e5c7f1b591b498b3f79fbdce4708b29f086fc8c1b7661585b1ea74e653f3ccbf5f4a963ba19b998dd3cbf8e2bf8b6f94a32edaa1d9b7f75bb7376c61b5560ccdcd2f56af28613ebbf662313e9e17535717a20b63', 384 ) = '3ff1a9007cb18a7e8be1e151ed4ec424bc1c813ab05a092d655d48e69a3cdcf395d204bf3979b0499b1cb18bf80bf8ce' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'30b06afaba1d3f66f8213d8f52cf3bc3727f3ebeb0739271ceba1a02e655e413a0990047a8d4930260332771d2e345cbe87746d6df8a66acf9a51abf7263a41bb6d2e4ebd11d713f2768e80c65fc8474b7a4ef483c5658ccb716c6ba8718ac89d925bdee1c3f01a4b5882969f460204947cee21eae2191586fd7c6fa0bbd', 384 ) = 'e399f9c298dffebc1ef90faca476ad2c478879705b9d988f66f320c7c8459fc6f42ac53197fddf3b1654157e3874e8ed' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'9551164bd1bcb607023b4572bd5c2e19e7bf9b4a28c08dd69d562c15cd3b5c2bdf4e908a0a35e3b84c4665535fa8b252e9b5ca8df3a31c809c64e44b0ecab7feb2ef5c14a0d4de3d5a48df61b90c2fe127349e200fd00e4292cccc337c1520eb76fd22f17de1d01e92095ea4b3cfcd4f0b04bf0a668f8aa4e7578bd4fd64bd', 384 ) = '4c41ea97b719f84239b3a19f96cd19e39daed16913d1d8767eaba572e29b0cc24bb864a4725d1f55440a5df7c35ee686' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'e06e21e2449ad75182808668167ca41150711fd4a8c64ffb51ae29f411adb5f84f58c2ea6e5cd88259c16eaa5f705d2842f3957e8a7d0e0e1f2a028217875a6bcd556628338ad00a6999d3b68ef3a8cad6ce41c3dc253a1e3a000dbd58f5858d81ef75663c2ea932d98f1d524a0e6d3d34898d6a46c7ba71cab8b06d79fe1ea4', 384 ) = 'fa707a7639a6ec82ff72db0490409ef3e8cef1cece79f11600cecd1f7ac71c13b09975f1e2a768840dab12863bc69b1c' as NIST_SHA384_test_vector; +NIST_SHA384_test_vector +1 +SELECT SHA2( x'8f', 512 ) = 'e4cd2d19931b5aad9c920f45f56f6ce34e3d38c6d319a6e11d0588ab8b838576d6ce6d68eea7c830de66e2bd96458bfa7aafbcbec981d4ed040498c3dd95f22a' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'e724', 512 ) = '7dbb520221a70287b23dbcf62bfc1b73136d858e86266732a7fffa875ecaa2c1b8f673b5c065d360c563a7b9539349f5f59bef8c0c593f9587e3cd50bb26a231' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'de4c90', 512 ) = '33ce98281045a5c4c9df0363d8196f1d7dfcd5ee46ac89776fd8a4344c12f123a66788af5bd41ceff1941aa5637654b4064c88c14e00465ab79a2fc6c97e1014' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'a801e94b', 512 ) = 'dadb1b5a27f9fece8d86adb2a51879beb1787ff28f4e8ce162cad7fee0f942efcabbf738bc6f797fc7cc79a3a75048cd4c82ca0757a324695bfb19a557e56e2f' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'94390d3502', 512 ) = 'b6175c4c4cccf69e0ce5f0312010886ea6b34d43673f942ae42483f9cbb7da817de4e11b5d58e25a3d9bd721a22cdffe1c40411cc45df1911fa5506129b69297' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'49297dd63e5f', 512 ) = '1fcc1e6f6870859d11649f5e5336a9cd16329c029baf04d5a6edf257889a2e9522b497dd656bb402da461307c4ee382e2e89380c8e6e6e7697f1e439f650fa94' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'c197f08557e421', 512 ) = 'ce69dec20db2e702f51c6232ab79f0890d6f82aaed54d8d0b15d8b02095957b4442a23b8d164be7b1f3669c7981b58ff6cd853149a625771bd666b19d8f0c35d' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'a90596a7112d3b9f', 512 ) = '7c42d9b5f5a215db32cfbff9e0e57716e2e4b1a7f87a7bc8121229c6d1fe5989df3dbf20fc71281dcbeb55743bfeab9346e7feeeb07e3cabfb2aaf6cfbc02bfa' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'3ae1953415660623c0', 512 ) = 'ac2501818c6d49f5f20534fbaf751f4d6f7288252298ea5a7011f2736200cd9721ff64ad6e672b08bcb2f463a251e9533c3f77465f4db3dd69be1d8b2c52937a' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'2bfc3a1b9cdf3485939b', 512 ) = '59dff49557ca098bdbb60cf9934f038890df27431b81369d0fdf92d22ccbbd3a90bc5d060ab2e974af784872e4567d4e2c42bb6375fd9a4ed3a434fc9f23a918' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'50f3b7d106cd77e9eec0d6', 512 ) = '814a68eca10f8861b7ac73d9d10a83d1d2f546dfe4c989b49fe9f17cc27d2897245b02f4bbbed4fda8d230534f0caaf2556126d69095e9bc8a4bf5eda4c351f8' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'3f08c108cce3eaa5f3bfa6bb', 512 ) = '8b7acaf0d36f877ece73f9318b20828fd79d2a3f28c71069b61ba88d455e4928e9744029bc7f12b417700fd195ee49ef337877bca76251123dd72365f10e36ae' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'1e1c81a3f9b48383e68487560f', 512 ) = 'e46861bf4c6b85af4366d6917b19f51efe66eaff16c7865a28d267125f8849244fa04b0b07f07274de2ca150a0549edb3628b87d4a5f73791de0930a702f604d' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'b48ada2484dcd78e6617c724b537', 512 ) = 'a1886c390fdd1503a6659f615403d0df814a50bc27854836ea40c90a04680a092733ea4deb7edf2d8cb6a35cef40f20d7b0f9fb0e42305087cbd813aabf599a6' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'bbd0a4de4250249c873f5b289159a7', 512 ) = '90953e45ef6c1fe975805ee62ab6431834c0934a81205d7e089068c157c9e2ddced188d869659457788f472f777273c76cb97a00807c83a769e651e11fb59f0d' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'cae35cda11064e34b54647556c105523', 512 ) = '72ee08a00931be0bf39f68575c256a1c5661a1b0ed3599c684be4d1f4412094178294773dd23a6adb8f6daebed0683f5750a59602a7244a667d5d8f74cca5b18' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'625656f0bf2e3f1dc2c9c4d310c650e016', 512 ) = '47eb9110c93ff62130fa987478cc72b403e019aee6a1c20d20a7d5122bc1ad9d97dbdc40346aa9c624054f76ac7fcefb72975ed946a4c1af04f82f5c137439d2' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'c7b15d4f0ace943eba8c3af2f51913285149', 512 ) = 'b0ce8a67c15c98176b787459fe2f1bb5fb01d505930805c0cd9f363f24f5b8dc4a16bd4c9c8ba354f726ca60cccc28bc540819ae1bbe50f6b6acfeeb86f03e88' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'62149e4dcc5b79f473d115629f2da21d8c4ad9', 512 ) = '15c77f321a179485aea271dfd0c1be284ecac543fc96a478a0ba93fb640ee708a6367c7123d35cd39be323c9beacb42c63046d7ca8f9bc749f800dde0e4d0dcf' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'5b9d847b7ef0965dd053a4d2da3b1e1637e71095', 512 ) = '9681299a52f5949e08b35563d6d35e9f72169f84ba76b9c01be6fbc81dee6000134e691a9b9bd7bc8940de1fc7e173261683b5c8ef7b0fc5bc014714971b0146' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'1b1045583ca3e8a0116521b9bcbd4dd7b613c34b1d', 512 ) = '888e6d7fea0c37b40ec32852879131cb0068c580e4280e80b74d204f9c90ea3e943fd27cf2b7ba3111340f8be68b5af89a4b5086de075de25697b9272e0c7278' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'938d2d59a18fdf52c343b632301344d6a5d9c70a07f4', 512 ) = '42d70b8a3bedcc1b23f7466f34aac87241c807a87283686cc15cdffed68a257dce74bfa708cc684f1c93142cbeab751070e9852d368a378495e6ad9f8d27e873' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'77d59ae1bbd09376bcc9f5ac46ee834bc979e07ca5e2f4', 512 ) = '9c229867a7f26055471f0174fa141f8a5e6ea6a11fc9efdc6cebac2f243467804cdc2e617be5a99e32e10a00550995f728c72c4fb25cb2b17164058ab4f7f3f6' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'370995549d249c7eab97a577c09920c3df6c545fa885f4ff', 512 ) = 'bb607aa94d04f3a81b6b48fdae601e15ba8d43805f5a0b096b843ae6a2b25ba58b8b4f78257b8110cac1e61d27c01a2c6e3738cad3a01150cbbc332b8ad42dd6' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'8a639dcf06aad53bc991d177c3d7a1661c96431876790f9d72', 512 ) = '5613c1ef219d4de9a3dd4081bb121671060616b3ec8b5cda50361c3d03a362e2c8559bd8cf421834109684adcac9bcfaf6d47e02ed3a39cd7bc2f52d0c81b329' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'9f311495c97643482637b51790bd1e3086571f05c4a173ae1605', 512 ) = 'ddc9b2687ab1d99038032deec57fed9f19e69fc2c550d9074099490d1e72751fd95cba099f5dc9c303a3b3e22b949ba8a04d26de046e14339333cc31e78f4f7e' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'69b522dae987f8b48864744dd571b39efa0051229011dc80b81989', 512 ) = 'd2f7740090d249237cd1acdbefc584b79aaccfc0e90e19a9f822f9e041e519928e5755a8ce91b4ca67c1355134e22a33fd5cad20d35f3fc58415fc12c6602acd' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'c9260d92c68ff1c5cae8f7c3e98869b66f13aa8b6cf1d5ff70ffa1fd', 512 ) = 'dcc1967130f155cfe1422048b8a7b559ce90b5182528310f9fdf93dee9b72029bda0b5a9c474c48c38ccd63915fa60197a87043fd9c399117dbc4c47a4ae5389' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'baf280aa618c46d1b4713d42a324e34fc13a8fc33e7703261534443c86', 512 ) = '40f3057c2e02fcff3915744d2a87a7cbed4d1ace0a62658694a5c0ada892dcf25202a5821f37f4842c4d631fb0b5795f3d252e6ab914556801ec99c4002c0510' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'9f91b4d09ebfef181f76596bb060085b3323185cd786460f47d6bac72188', 512 ) = 'eda1dda078e4245c51e837c2a8360b1440acfe2d58f7f32ea9a63dc2105e80ec5e162a23d8041cac382de7464c166e7162c620bbcc11d14d8e9b3cc88692b5f3' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'376549419a41ecf6e1776679cc9b87a4ddf70a9daf8880fd894a8a3233b64b', 512 ) = 'a971341f79a1081653952b717c7e18e2e2289a4551cec34eb15944f28abfffc7b23e6121ea52efdd4f5c615414d2a59df02392c4740d8f678a773f1e6cce2fe2' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'5f264a9fce6c0416c3c399c6a2912a5f33125616a24a5b3cca3e7e16b263aee9', 512 ) = 'dadd0e04ad21dee2937facaf3671e0e026b0d947b377bab623ad45e94872ee8767c2983a10f53f92072eabf9fe3b41b12211e442763274a24f553c658bdabeaa' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'6989bf1032bcbf82c96f7a140042dc9ba9cafb5d439be5c6daa69b5d28c65df600', 512 ) = '0044e76560daeedebf0b72b9be8a1437f5a9937e1f6ec8efa0bae0a490808e9d0d4babd3683b4414baf0e033c36b7748635ef9e745cd1dbab547af8e287d9644' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'4edbb49bbf3acb02ce83c5cc7f83d2c386e873ada14976712b67277cefb3c5633a10', 512 ) = 'fbe69d13bbb3b9aeb8fb67cea126302adf2984ed02168a13519dca66e56eb0b189587b3b6ca9f14efd8e0a434db7b0caf337d62b4cc0752ccb942f3ca29b4596' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'f0b1231cf60536f768e62f79dae86374660bde91a2e2fa94cff531e2536530406ace2c', 512 ) = '9bf2258b1ce68fa5982c296fec10c8343fdf5f995e82ea985b93f5437ab48e6615c7b7e9847c3c545ab909d5e54a6c3ea0166bb0bdfe838278dfd9834f5d25b0' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'785db29d4a665e802b68a406cd21dc776ea84e4daaf5a1df93a4973c03f6f75a3119ca70', 512 ) = '6e659b4a07e3aaaea4b49c211a2720f5db8fc81d9749c0a8c0ffce189de896cd3dcc1a1b6381e3d82230715840d4c6ada741d64bf76234ce98b28b2afc96ad74' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'8efcd15f3ff1156dcd64ad17bb1566c466429842f2cbb40a84941dc6b12b391037abc77deb', 512 ) = 'bfd174600f799e4a9aea0739fe5b4deb43baa809ee46ac27f59ab5e44d10f9a69c81eed24cfb1b4c6e6fd1c51925fa0b380e5d0cc9f36262d6e0c0cc1abd6331' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'807eb33d10722e025b01739f82d7494d242cdf137f510df5d888db691d19470acaa2439009af', 512 ) = 'c2c8abde43c0c73fa9392e7b262d453a3c0ee4aca293dc866defe6e07c0d717319eb3fe6a33775ca5949b20617df03152339af03bf89634d9865f7f1eff633d1' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'282cd5ebe30187854c5fdd6b1ab4e49143addc3dc0f12561900e6328ffb3dacf28211ab6b9dce1', 512 ) = 'de42e2933c0fd240d4025dfea77fa4763b55620230668acbfd2e6a6426c2d6446de71976009e77f7b3e17bac91259902f7dfe4f8142f7e65008b6ee2207268d9' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'4fb6eb7cec250c1763280b41b215f89791137212a67c758afc867478b223a800f025a72f1fa63881', 512 ) = '99ece2524110af64cf89eaed97b520343a97c859e3873860c2077b06e33337f0886af348bbdba1b41c0366d8a09db1ce2fb726d5d282525fcd1cc45aaf0e75dd' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'dbc0d771769987ed9c9a72a44a5728f929653d3d12c9efc7d1b109472962085719727b535e37b06b39', 512 ) = '1aac04e1cc461ca665bf12a578f8f32a6ebb7725686b5a6f461a5a035dad6d7565831caad2364f063ad73edcb210bb2fd04c2539c6eda849ec79baa934d7af94' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'b8c17a3fd266ed0374f61c19840f3db5f819271c9029acabc5252a1bfd2a5d03002a779eafda73cff4cb', 512 ) = '4800cbfbe54fbcd8c012180ccd82bbcc783b3413cdec87bd236786ebcb40eb3ad23f509eec53b23c2655959a0a2c53e81b5f3177e6c57883c0e09b48a09050b7' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'7ac3e7ae32d0677b28165d829a6b966b5fe032eb25f40299fe0735fd1b1134ead693ca0ef6ce88c82f3468', 512 ) = 'ebc398731a33113646c7c4dfc01fb0aa35214a2de32cbfa99f300b2feb1dbdce203fcea6625b7c2a7205ff1b08096b29b58581a2ea7326163a4f52cdbccd2b44' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'4c2645d588b606782a6f45c3725d69d31a251115e6494cad7ca80c197644d811b648c2b2f94a99dcafcd5fd9', 512 ) = '80d1d9053acc378f88f37cb828d3140a16f10810b3a515af301dcc1c7f030d752599a5f437bcde5ecf288afac9e1fb6c9a5e365c82afdf900a0eed6517d4be38' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'85ae73d64a09ac922396f80bd94d868a2359e3361bbe0fdbef3fd6e9d97f5dc05166fc2a81c64b29f93f80f4a4', 512 ) = '6a2ff2ef58640bc69dfbff046c6d8fb4a59a85dec77bf06346def8026dfa954e07992ffc364ccfe179e2949826b65db58dc53a05f61c5d6a279193203de9a2f9' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'b63a627c6923e0998c8c789f56dac741fe7c567cdb7bd4ccca52a39fd001970a005dfabb9faad32f876b6725c979', 512 ) = 'fe69011bfeb12b7987a1251b225575448d22fb46ca08e909574b96a1611433e0109619cb4c1489e101283d7d2c2dc163cac3ce2416cb06dc27820818f482b3aa' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'0261fbf7d72dfa185d1fd999c17e588ae37d6a646505e7ef03b581622228f9ccab7693b419fdc7fcd161390cb2d1eb', 512 ) = '29f146b6ca892586f198f2ba3f58c67d17199e34c19ac32e284047181d57e6bf4c176eb6ee084171ff2a96bd4bc312014351326ea3387e78e78687ee3127426a' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'7486acd86f8813a2583ce981d1cc8602864594b611ea132b1bce9f1cc4a2f6e545cbb539d4b86217c972affafe74fd51', 512 ) = '65cf4354a97b963597884f00701b8d4399e9b80612c3410bb223ef4523dd9ee19ab348e8a849128377a6c75622ef06e844b2b758c4aefa5d28c46d6e4dc7cba9' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'c33fe419b91191e51dc9fb32d40b43701e63d81d11e3918a460df9e1d2f3ea67779c5dff1caa80f07b3a09e71a0cca407c', 512 ) = 'ed5c3016c805319872023a70d900cc8a301738149ea83dc130a6ca19fc5348b2f4d7fc3b456d0cda749a72da116e6491dda0855ea7aa9b5bab9b7ce5efa423e0' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'bd50e2fe1f8f39f96e2044def04afd4c16c01bb1ed7694bab5b2610ece66813bdcbd40f023f4b96e336b9a39cafc2713f68b', 512 ) = '729c1246e155e8b36e92a6fafcdff556df95e7c131c65df68e710b5f04f6552914ee5aa2faa33e8c5827e1781c5af5320f158cebe481d7d0ac54be07c865ba39' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'5178db5a599b0664da75988433807d0a44a73d6e754220e3f948952e54c0d4b91a79c3e3fafb169bfcbdbb2d0799755ba67cc7', 512 ) = 'b3723d26e481feba3e3dbae2e36d9b29dd8636d34570d7ea3d6bbf8ce7a254ba2677107fad2decee62d8f27728d9cc433cee34e42b2c4f473153f697145684f5' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'e42a2a5e142f98e06ec42f5c78684269c4719c3317a4c5b8c90381386fe69ae6b84ddfe495756d6e9da92d56af5b9eb0d973d5ce', 512 ) = '5f51ff37bb70ceab5c1f5feb33f4f6ddcb7545d22249cff63bbe1a57be8e0ddd7d86131306b599fd8bd5a044daf9bcbb2a8c80eef2079bbd377e0b4acdd408d6' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'550495b8bf8bf10bca9a70cf0599a6cd61c1bd22da2e2def5935c753d9f7f896c9364ca7b26831c91a0afe89a83733f38979020511', 512 ) = '4cf0a13f66ac155088a8da8a344b1c4c62ef13ef0237966134345abb11dd0c456f25710ab13148510a6fd615e1863970e8277f45733b95fdf627a4321a48c595' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'b6cc4def48738118c35fe4bab82fa61ae8efb930fcf428aa7606aa34e8c577f763455a5f33fc0722c9deb07ef9c6d3c26618560f3aa4', 512 ) = 'e04a1c30b76920518af66f5db87d7642fc1ef2b903e45a8215bf1a5b6de6772427d9b576329c28b3262ff0c1802dc0e6c7b2ac21a0df26a867abf509619c8403' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'143c7d79790a56697dc803ec93e6c68f27f6761ce9b374bf6843e167e2b90e6f5ade347eec3166ac5e2cc3e6f7c9f0939445c677f82447', 512 ) = 'c9e076e1ea43672b08036e87afb175e32013da88408c92e5895165fe31a1c02d09c6246fe17e9e1696614e28b53ac0a6c50ade5f10949730b98d110c92cbd9b6' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'bb9e6086c137d0c68e6ba728f8c516a65b3ffe303d58b1593266fd51fe2e6713fab2b4dfb94aaeebeaf6245680f3335d118cc4d17c3356c8', 512 ) = '1c0294a68024d098e7fdc14490a34dd579f47a6abd96acddca73a450dc608a840cf308a873376b6917e17c237df0ab76a736105734623e72024b41504e0ebeb9' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'8dbe0cf088e68bd30156ebdcad3cb932a69bf8a11c36719948b04a7aa2f1da0e54ccbc57eede228c5bb96c5e1442fa7f93573e650bb5154c56', 512 ) = '77d81a877dab2228601a42bce6839f31b21e2b7964c308555a5462516b635e0f4d4d56b39778987c24b35f666b1667aafa4ecb3784d2ad130fd9882ecf1461b5' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'2de3f31fb5182e1cef0f982d0e001be75dda7753d3877f4fe8718530a84513ac06f7dcf87206f12dae0138f0dd4a1b52dd1a7df5d6c5f271133f', 512 ) = '588da105790cd974ecb2988ac398a72ceda9c5bcde026877b67b21443acb4434b78923a57341cb3da465b44a21717c42603bd904e2213b562c732342e26e61aa' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'c7680a02334453cf17fa4cd27cbf668e6cc12447aa0d710aa0b037ed991c2d9830cef104082e5683beb7ff011c572d899019d50bdc01f65c0e3729', 512 ) = '94829820a81040b549e89e7df9ac1d99851d57805a95cfd4044d09432f9f3abc803580a2397f38231ad391a1634c2f879e790f6e85045dd972dc080e3e7bc1b3' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'ab1d93fdd1d247ad983728157e634612c12d6d5223e204aeea3935ba2c884f9a49376817b97546f2082b80771e2ee056c4b90caf641a656c10ab30d3', 512 ) = 'e7e13c2abb76234415acaffa97ff804f22f20c9ef692044a00d4d49bf656963ab0770d19640081dbc9389d1382bad4fbc3dcd47fb1da671d0d046c34aed476bd' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'd3ad500384e30bf680afa762bbc558be9f7281ec53d51d113d4b5da5c62b92c65db44ed2be43c63474c97b7e9c7d1ab9edcea0f8f59cc134a5a78b5310', 512 ) = '54a49b06b483faa6d34a8e1ea7ff5bbc44af9bfceba30f62993093e0bef1134ddef01355b04b5b7678f8446b6cc9eb017d79723de360ff9c6a0adb3679cd03d1' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'9c542e4dd9a660850dc22a081c07453f233148f117726e00a9c59a536d7f98133c26a61ad78733a8cc03e6589e2ae253208b49c422c9fe8c4ff2b036560d', 512 ) = '8377f49071ee63696d231d960fc8f37f4a7751ece2121c4f59e00bec6a38f19148269e385a0d66b10246d3837a7eafd259dfa827fa0f961ff4baa9008bf81fcf' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'7bdee3f83c1af1cb0ffe6f1235d44f88d2436f234f211b8efd88d4dafb2c4f7159ebc14b7da65a64c6500f6d70449dc1b8dccb9c403fef87b47ab317aed319', 512 ) = 'b908c46311cf787a042a54756dc751d995ea57a76624940f70a18ae369ae82c9ce61ff819dbe95f2dab0886718055cb3a39e39a969277205290fa090d3d7fa6d' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'095c7f30824fc92858cc9347c085d578885ff3614dd38ee7ee94a0f44072c877047ee2ad166fdba0e744c3ed2c2b24c9d8a2934648dc84d3be666302110ae08f', 512 ) = 'd5cdaf83bb4a27eaad8d8f18e4bee9c25be949a761a0fd0fb2284cab143cad60beb5688734b2f81e9e2d640b425fd32ccb3d20d02d63c2c94c03ab3d9e7d9b4a' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'baf66cf83ab8a22878d02194b7c56599717cd3db4a594a8942a7fce32e3a7cf9695217b5c7c3681bca5327d0196442d92dd32fa64e1f804fbeceb81d340c5d4c8b', 512 ) = 'f63022f528910ee310028dfb0782db51b79f4b8063543f15eb008618c50f9b8721603f7381baf083b34beb01cbb8d985db3b8e1eb53854ce3bb62ce7434373b3' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'aaa20338001d524041919bbb13926d0729a099c27c599598d8ec22599bd12d4fbab8f3ce04bf690cabe7db3300c9d3b57e853ce00afcc7b2793f8eee5346f86fd6e6', 512 ) = 'af4a2fc9681166fe70d4f0fb8d219d56a1f4ce532a7db8f94c4432ac41e370295977dbb0c4e356a8d2b1d791d513029f96d144cd92f45bd4230cda84bfd04a69' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'8cf929dee0a854f7071f7062c911338e298655e0462f97a983f60455e6da77e5befa5d9f89efbc03145f7502e4cfc66bd5b912a601dfe5a4e3de3316bd06e0dd366985', 512 ) = 'f499e9f1b19c614857b63bb44c095cb19b7cf48c5d6e0a6eb15cbe0eeb61e0bdf7bf0f049cd3d146748196718698248360a174f878113305c6633f10ddff0b8f' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'47b8bae735771d17d740f537bfeeff1d4012d80379e81d238e89d1843961ff1382e4a0f5ca7dbe1c0ec7da186a008c30dcbb69b24bd42987c8a90a0a13876f1b6163cd6e', 512 ) = '6869157dbbb2117c0cadbd3402203fd7ccf22acb6a85b9efda4f3d3f54903a65b39260bcf8fae978f1559492113081171b7425bbd15b40a2a1c7d2557fe7cf44' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'eac31a21d4943d32747d63604d09b9b29a97f0a632b04024af98adb1cf2389e51bca3a1fc6fe3d77d7bd6bf48b627b00f4c1c918e77355c8156f0fd778da52bff121ae5f2f', 512 ) = '149e8b8ff19a532d22a72d9d0390d51a365f0c2fc288acffe99efa5cd21c37f9d39cd307faca020df2aab996fc6b46815133c52a87a3b1ae350833e3e6adb1ba' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'28cf2204c192776c904b1288b5b398f99c9189cd6988c4f69a334efbe7744fee6d085d9e0c5ffd0d0eab672509388aa606fb5063e26d23aef59ab011f274eb3f0e6e53496546', 512 ) = 'a6f42a3755bd9940d2f464b2efd42e26e7ad63b2ce26d39dccfe73aa7017e0d5babdc6ca8b8b0fdb27f014537863db09b92f100ea503490e4d1c7a4618372777' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'6efc3166fc8a21022171a50e793248b418dfe339c180728058b420d09a9ca4d60cf4d0ee3183679e00b63063958848b127a4bc353ace575d167fb91a77cfa9e58698ad0008d9d7', 512 ) = 'ce34cabc906f67243ccd62ea6363f7ecbb7da3c8640799ddcb5783946d54d68f98e743b4028c5800a7716d524b171920b3b3fa95b19991032622ff9ee90771d5' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'f278f968b3b8eac25ed38b4ac7d605930510bc8531c62eb06a281de11c84f0f382ba57e86af02e393986a4692e4c9ce0ebf353f731c24350eb8a48686edc026fff797a57950a082b', 512 ) = '08cfdf043c67b265027c343e05e188a78646414f7f2adbba5fe0a9409b8ce173edc93db26e0e79c191c909ee21c7307ea7c582be30d5377512088c791ea20bd6' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'816958892728429100099fbfe5512a367cd7ee2154c6fe99319f67c9a47d6350df9dcfe6c81ddf434c04113df6835f30c07bb9a2293eb227879a7a839f140c0f7371a85e5b7b841f57', 512 ) = '901313c1af212cdcb56cfdd1e2642c0387d6152368a8150cfb3ec6758b45eebced1a50dfbb473c9809accfb575e1eb653a8138080ae08fe85c7010ba8626853f' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'a2a1de6f0ea927b132bf987abdaa725b0e1e274e46830e99a2f75af608964df0dff9a99024fc6839bac5acd10202f921ac71a27fcda681aa3109ebf5f21ee3a849098ea3a551e844fae4', 512 ) = '6985aae9d3e97d29b4ba174b4aed7abc5beacc4946a00e6b0921f7978b8cd62fdf897a9ecf94ea2e053bb732f2d6b1a44c1eff9c0ce43bd5ad2aff41121aa12c' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'e17c9c1af29e6c3c10f97fdde3a35cf4d37157176fc711ef10ae42eab927b62f42c096d7b664e95af9775a47ae233c3957eccb06be8bb53995f9d9c359ca4eed7cbca791c290758aec180e', 512 ) = '07d0426622c4f5c5dadfd3978fe9edd52b90bd8a9cea32eec6dfbb5cbbaa2549bc7ff15b8568ec716bf315e28b108f35274e4d4cba1f97e7dd7d54d63f8128f4' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'45527df1eb7033e31c0733d7a384c642359a6118018ad43488a2c5faaf035d3b12a841589ca4c4ab55ab5b227ad4512dd39dbbdb4130af4097e5b119aa076eb3acdbad08b5de822ba34fc4e7', 512 ) = 'ac0fc8acd30a0c7d4e1a3f965d157af94c4c9d0fa172ad1d4e6b200cec02cf345f0318cc11aa2c9de2867f7c6768aa75548c30c6ae711a6e68ddd0b27be808e5' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'eb41a4fa67ff100792cdf1b7c3b8f88dc276ce1a2c3f9d7219dfd1defb0820d0caecc71c5e0b17641c4a31d4d4460e10eae7c26bb438015a2476e228a767e3eb4cec2db629da1a10fb06f5a50c', 512 ) = '382ce23a5bcd95acfb9dc3c9e6962a8ceac1512a0df09ce741fe4c2890e268c637826ee229869663dd8dc9cc83ca5802aba02a769a667dc0d180a24af90dec7c' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'dde16e701bf40e42cbb1ad213a84167da405963befd455b699c7e504f0481c7a81f81f72d299c04b542a0ab293531920b00430a4115a05e357c25f5d9060e3f2aeb22ba43970199e40b76b769567', 512 ) = 'd202fc7a97202fea9fdffda2f7cb874e2054c7d6747f904d198cf8d1831eadda653fe79198fe264ef88e480ec731af47165b080ea6078cb7c5bc71dc3fd4c65f' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'a530841c4cc46eafe5435317a3651d69db7aeb1ab75062092f5743c0350343f73072175aac4fce8d50f6636c10d99397a422ec2e389a27d965c9b70c605fa28971d29026a74921d0cbb984d0924d46', 512 ) = 'f7cedc950dd26e26b087940306a92f43f77ae039c34144aff8c5c2cb01214f18108f913e81d621e45a53e035a7f578fbe2d7831bf39c71ed9e7694d95d69efa5' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'd7289cfbdbb66582d93c8d1f03f9e3b4c57955c69a18622623c2d2d07afca413c42848f205040ecb3975df36a0832b3059a42279323d273abf6681eba9ee5474499ed09275c2a97d9ae6c7c80bde3e88', 512 ) = 'c527bb959f9b7314e10b83a89e22d52e9a47437050b67bf47be7805eb151e5bb08e3ecf4b78d3fbd40c115dab9ddd27fe033cae82e259a880872f74413d2945a' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'b6aa7703b126ffbcdaee16664e82ce20be9a90fa0968575a101d1b9fc6ae910586d811c8aa62d78d59a26ffda0426bb3c4445758d744ef0c8afd8f08420fea826e00ffd1178049d2b8f1368a5126db0db7', 512 ) = '0b54fd35a70ff3abc587670afba9c671c57a50bc6a2cdc2deae2a0c98495adfa4559519184f9812c844eb3dd4621facac85de88fdb2eba9fd38cbbea697923a8' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'1263458e97c49296f48ed339144f682a6fefb11b824c20807c2192953b2cdfa27690af7d3c7890519dfd469fa74a628294fd173741d148dce27ae578f5d1783c7431fb094f21ed321933a582012ce5810564', 512 ) = '4961166aacf83cba8b42614ac5e699788a995462be37019bc6d8281dc84ff07a19840d9e2e3f1fcbd995903b537de325087d81a85bee94430d96de56c2d6a275' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'caa784bf0dd2605026635e8b19db46249da32fe523fda345133afe3b592e175420e12204dd87d53990b2ca3647c7259fe3ae76d01ecee173cd397c526323f869b79984400770ee783c7b0ba36f015a59ad6de4', 512 ) = 'f6335ee270b1a6795528df400d0daec52eddfd0571a2c2c3722047fc1e08498263d43e2900150fc2d098ef1b72c6a28054a620d5f2bfde80714f0f07093cc14e' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'e1b77436f6d15a209fdc68a636d96cf38c6850d388dfe369119ddd242e9c1def6c4634a8818a27d42e2e71916a6748cbbca721b3e9b6766dcf04c709913edfb5f41f5831098961830dd4bfeb8d661219cd835a9e', 512 ) = '84067e9bd1a74088edbab9182a39a43e8fa9669a7918a5dd2b0dabe0daf2395b6d41ec828e89ae9ac5e63f54a0dbf7659c13ddc20d2d3d33f30fe5d1747ac341' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'cff920294053417495f5ba31281eda43e264ef8bad555fae2c5ff419a9ed78434fd3823299ec8f410a0154201fed531c82ffada180a037fdbd36cf662648f13f28e285971f3bfbf312959a4d9d65155c2eb4601675', 512 ) = '7a1d2a43df8e5f2521d93269d5fe069a555e460d0fb72bee3795c018d77ced248876f86f4e668756f035f2af5fb23c78529278c2a8d773eb060713c450f94559' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'03a0c0668e3984b2292d9bd4cf57051ba2240b053b9a2a5f3e9954ae316158ce8e559ed916ff174b69537463d43896cc6a44467c56c727dd6f0ce82a0ddbbe1c1b4212c76e9677be55b4de7e728c0d0ac8e14dd2144a', 512 ) = 'f1c616ce75361a068fc44e8626712dfd535dd37a0a9e8b3b1dfe9cc7b320864664b96193c3728450114c0f4093595202f82b7dd2a37d4b55f01ac24e6f108366' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'814c6906076a3a531d6cabd94025549fe78576b671bd8c785ca42212b75aea40da2b0d5854b6bf8a254e16662ea01c9ee596230e4d7c58f926629b9660c18ecbd661ec3839791d774a1907a24dc52616ba62df77355711', 512 ) = '52d5bd5dad0f1340fa3213ba2e94db95ac2bffacea3647bfb94163427fe7eebe5fe6f49160776da6cd9670a617aaab39bb73c5307424e61eb2cd03bdf186eeed' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'4edbba7c47286bdb1343da9127a036624ab9a42cec0e3412ba6a13d96f670392ed34097a8c96651eb22dc7c3a4f9c0049b1d77bd1be29d2880fea346da172a81fa83bb8fcd52b899e98e929d66c13d11efb8e1c91887d31a', 512 ) = '036b62ec6673ed63f225f6feb88933809c32edae2292925fb888181c1a0b36cae40e22aaa6db0061e92001e63e4e25886c1d5e8d49b84b928161ddcde950ad64' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'267b4d93feba7d7927ea2def7a11994cc35a8d3dc50e85607fbf130eaec7817893f1b7f5f675609a6b2a490cd4f70992278ae76e724df86e1c9688be6d1fbb0050b5749e5834765f02b2ca393afb6067203ef9bb0b054334ce', 512 ) = '7e2ecfef69de2b9fbf553e274dfdd983bf712ef581c4996c0e80590cc7e4e884842561a4690bc5e7c3b5299565f9374b0c97f8e966982a5b15699113541ba784' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'ee4ce14bfebdec4ae1b84d73bc62e143ec3098f5905a1e99478dba663be176515e0a80dff3d2d03751c70b7be330a758744651dca9a18b88cff19aa7d7ee9fde9f92040374851932d4d9ff1e78f7c6a692d9d2a9537a831ab08b', 512 ) = '3f2f168af618dc5fcafc8dd644295da4a022f975e3518ec5d1046a3e9ed16756dd5019e98fb85cdea2abf5e47c955c064f7bcdefb02d49c1f92b151c215217ea' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'e742e8c107336988161ca3343f532b59df8e6c02dceb9ce03833efa8e65f0ab6dc5bbaf6690be604c98cc292f7bc460bc2fcdf752334649cce184b6d07aa1da0b700279abf4873918c09f6f1ebac0bfe1f3a20bb3267af0b88d071', 512 ) = '745f4cbc34ca7727bf2ecd38aa24126e0566eb0ed633b5f3ddd92ecd74fea28059fd5d7b0810177f22be7d776aba3f63269328b7451b336cdfc78724c6c329b4' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'1511d4d2b955be39525983b9a9144e9f60eff6362928d3493675d1e3f1ebc259ec1df98a1b881466412f19ada882c5f9158420fffb2d5512ef0dc1e95c334aa1784df2057611ab0efedb6ea6da9787b1f2e1334e7a6b6c5a6a9f0437', 512 ) = 'd9bcfb54e8dcea3f8d6c7110e7fd397e52d6d62be2fa758e30d79c7ae89ddff0447e01414c7b9b6057fa1d70f064c27da9f5c4122d46c91ee2c1573ccc65c24c' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'5a040538682bda120fdc18b072408abd5f7627681d43f0b865051c1faee97353ae5ef8591dcacae2bc7b4cdb96e0844085f9c131f90c8147f59a91285a91765968c30c5482976ddb31fe148b6ca943b4177aa168c93828d2d2863ec97d', 512 ) = '45e61293e86f22b3a3f24f21a9297dbfda1c414d691606599030816332a0f73ca3e7f6d6cd5120e1274e91427e4305cd4599d60f8d2b3069430da6caf8fce103' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'a9abd6f42a85681483904d9a94b70dfec552f073495865bea4d0a4496a8993734a0be62b4ccd8bbd57a945ebf68c97405b72e3a1a592d3255ed5f827488db19959644f9a0492764bba54c6dfb199bbf2e4fed21c5bfceec5ac60f93bc2fc', 512 ) = '7aebcf0b69968dec55525b90722e5cfddae97e4bc0dd6630a88c24560ce7f6dc5ad365e1394c162b1fbab7dd159fac8d10e036e12da9102b36541486bf3a9273' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'55218435049cb8e9346c6e9602c3601c9fa5d2bf0c9c757d21ae8a9ed48c4a8eb80c86e8c4d98bd3566948917730b355611468553f209321337c11339d9dd2c79bb982edcc7e68dc5a038e8937ff2278a6391cd2fe3f21b9aa5ba7d875c35b', 512 ) = 'd78f40b72a42cbd0309417deea33ea3a317869e5242a6ef94aed63b96bfae036acdcd5144761e5077f8faf79d10c681a7c1144de553bdd9b742eb9aab76edd2a' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'e9a6317e3bc4d6cdd5a0833e52fb48baca16a9ba9b6c8ca469a0555763b54f04c87d4e41aa549258f30eefe5a52d2ba06657a8773b0842e094857b6d8911d6a0636280025e56356fade362b4bf4c875cc19be0c6644b447be0454dbf390eb966', 512 ) = 'b79ba8a1dabe9a89a383e8bb61750b4b84c90846671129abd1bed826345d97127c406b447664e3cf5305b5709baa29998c0f74b9f0038965be53a7620917d9c0' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'8d3108ebfbd2a6d248234e4eb76af905a899a886bcdba67e3a6d0e2eb2af8e1ce07b6a09d2b5c4244d231a7d6e7f10bc8dcb701366e56f717b5b32f9b48090b249c01a80e1305853fc69569e8e975f0beccd096dec9c72f548e3c8aa44e80f1391', 512 ) = '6d32fec68eba7bcd27a1ca2395e582add90bf74c8cc0926249dcfc333240cbec609976134c541796ff86e6c4481960339b06d00b4a4c55b423ddff52e9595be9' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'71599aa11c29f6629aacb58f1478e19988a504746cdeeb4894b7aa6a5541e08aebdd3c2e184d405f0e1145a18ff0c02953d5c34baadcc73262ada8d3eb09f123b9a25a88ea308f8e29c133dcd2502566569a02e4e22deb823bc288d9edcc4c1ea451', 512 ) = '30a38eaecdf787a4a2bc2e7e31e1c908112cea639cd882c0e88f0b3b8c131b5d791028150a3970ed79aba63421fb7735c068ccc3ef2ce500ba574f4e0515c360' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'c436115d8fa97b11dbca495353e7a37a82b0816c44e3c1647a2977f2023b8443e7486aa2d49b5e3fcf799f2f234807b59ef7dfc0fd99f8b4a553f76d9479f18296f438c6bce774150a92f54d7076479afcb907f74dcdf6f14b4d4cae15274f2f3b0023', 512 ) = '9a3bf2d701b6817baea83cd359257da3f6eb8cc34bf5169ec22a1dfc33001d6c4e7f866c2fb863dbe06106471437d0094215b9b17e7e27e90bd2eb05006e3d6a' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'5e2a3dcd2f860045cce291de5f501048a724cbacf9f1604085b4221adb4ebe42ae381f0ad7728ea29cbc1ee73309477c8231d11c29e6f32ec2e9bd9a677db3dc751dbb57906a39ebe86778c9bae84c861948f56fee5b471d3ea30849abc79ae13e40d95a', 512 ) = '2828051603cc729ddc9feede736ca9f352b69ab5a916042cf1f9f90cf1d529d7dd0577da13f11f4f7bfac4c4f2d9a327d4c9924ccc93b8c14428c6824c939a14' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'e5f4f4d833fc49da6dd083442214cb70d889efbefd2efdd820ac113b61f06bf3261ac4a51096e2d32e886b5c706ef7425e0168b0095b7e3c425fa6690b5613704bd61040c6e895c34b6918632fb1a5cdfb7331f462e42c597620558b1bc9d2e9bbf180af3b', 512 ) = 'bb66ae70b600735d0e9098f12fcd9aaac1f2141291e9bf54bb8e0013fce25ac1b878dfa5d0378814d84dd8892391da402891fbd7bcfec344ffe3272c5be7be66' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'85c2ce900c00d962f759c2091dd6c2e9211c36f7f7e348caa3aaccf444a968925208f822244e3095b51c83a5a71b446988330c2755fe5b693c7c8253a608c033758aab5a8aefd12b8bd6a071e38c83f60a3b4e51065edcff3278f6b53e0677f577b2aee048c9', 512 ) = 'ef50d18489656f7af6148e897d4ab3e631f0fd4f9fbd7f232a0ee288980b4cb10c2a1f890c77d13b4646ef133bb8816998dc8f88d5798ec7515f2c8ce607b655' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'f7f7f3bc1615653f479acd63042a0d15d636a071bdd02433d2bd156f2bccdc83ff6708490a68db91332e08ce6defbb0fdb4fda3137328a5374cff68ba2074cd713f40757bcc474b9ddc86ff4e5c86e39909ac22652f2193ef87c46968d2845d07ac6794df2d239', 512 ) = '11eb07f3a5c143026a7824197c02e2a52281fa82e15ef976a7e63941e16951f00321f206f09c2ebc0bf6fd00bb879df894952b98151b0e8cc27b34515e1bf4c0' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'd12a258ef4cc5ae35ba4e63aa23165945516f464aa098b966feb8ecf41389ef7ffa2b5f57ef972b97e4eb180dd585f530b178dd1beb6c22fe7b6967de4497c2bf7fce0cbf7997218454cc13802040b3e7f1c53f3f53bb5d67779f76124c3608ea180cd9ac7740109', 512 ) = 'a8e4b47f67f1541c7fc0f2a13c5abb33a1d4a5d733d794f22edf760b146485ac53bd03038ee76e322fcc23667c4c209f6c61287a8c9c044f0c9922752a9efc0c' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'a71a304ec61763764ad7881d54fe7d394e658e7588253ce223f23ce92fabc385102e01af2671eb19adcf3e1ee19fc1f9660bca36e8200367ff216e185521a7050ad06a8a5796545a72deee74b2b5e753f493a1653d78f0bfa13b1e0f631f32d25da871c7a2ad26a363', 512 ) = '2609ef79ea747fe6b00a50a2316c9d3ed2946adfd71cb3b1ad1262b3911add77c2bc76d121444c905ae865703e208bffd759b222b42b02cd13764c04298aab15' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'63df67c7eb2829ee72dd694949d92a24a0622c8f54ab6003089d9e4877d79a9508f415faa40c50fbc47dc67eceeb1ae7a1854f816e8a3720cb0c2e0402f50801af4747dd8aa891fa811d62340a16ff0db7abab080a251c528cc030a719afdd747e6166394603d532d046', 512 ) = '42463a62b1c92b3982dc4d666f8bf30ad5b3f383fc00ae3e65b5d4787ba0ce9f0c5e6d4d6446f1f480460fcac237dd1d82657b14dd8e4044954321ccba7f478f' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'b95900674bc78a86f4f9b2203b2950f6eac9a59665804c833b6f6e90fbb8368d4941842530b5e607baccc444becddaf8fa51eb2d6149b4fcb64220f55ae8bac263c96706ed5c558bb5422f9de4cb93b128bcc54b0950a51e7b7cde74af7761d02f7a12d22ac5c05c0ce25b', 512 ) = 'd420448ee2c6eabadfce5856fe93383ef559d144c97349bc0af48b1c19a926bb40b62d3cc9334804e6991cb073baf976dfb52ddee24b5ce36d1f6789eed83574' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'fe59b2da7c365a64901f6a132c957105844578ee0a2c955f9dfebd49fdc9dabd83d51df50fd096984127023aecb7e422c7a5d751668a22c069d48de8f46973875f8d19a22e053ec6437cf3945227ad7d96a599c9c2292fde3bda0abf847af7d3f9464ce8c11e7b77fee6e629', 512 ) = 'cc7cb1a4a616ae4806e48cbc176542a4d75a5b07c25d9324c124db13328e656ccd1cda4f946f0425c5d79c1ba165b1a12933b92f7bc3296fe98c72b15cad2d51' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'71f7ff4ba87d2bcb5ff81a1f42f47756f5189e6b5458011bff6ccaf41680c2af412d71bff4a8872af1397a980eef71a93893618cb8da75ceb5deb46ffacfde3bfae69657119bc61b0d18401fededa199e9057be6b2d9b366fae3278d37569437a40cb83c89c0b345bd7db3de69', 512 ) = '31b446c44b0aa2791cb7ab5834e4b8cdd2e3c5b4a96234b338c7b9431dab2bc532e4d71c7f84f07372c8a3f08feac37d0254cead9a9aa619d312a3c006992caa' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'52b5a7af72437136650e64a49078aa831d8d715c46364c88d0b0d543d53d9802c71a2c07b2b0a332c10e251a0497d75c70f80133285e7149fbe51acd2d5301c67a065aa7582bed237d31bf42a17defb58560de673446925488305d9ef164b9dd726277b7ec1b19b29f5e7c45ee93', 512 ) = '02bdc51f3e4e129a4b21347d835b3611165424eb6607440c816979e6806e27df12c50413740b1602da26db7ee3e55e5ab4a62a8eaae24ef1c68d1510fc824932' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'b698108304a44fda03e02fbd13bdaf3ae1c7786de61f7796312bcc6e678ce3bc0850e023f369413e2d5ebeefde4174f39ce143baec4075760648a073d9b9cda64f66d988d2a11c250ff4496ffa1295d9120c1c21e6c8806dd8b0d39a21a7b7d11541c35ba83329b6320896e86f165a', 512 ) = '131ecdf4840cdc45557516205f07cc277b7641d05afc57cb7fe534f59d9cbe611e0e6a7b6aad61f1d39fdc7559f3048ac4d0a41234ddf07423dc61dbfddb7a65' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'65f571e86f04f86dca7079e2ce8619a1f52057fed7cc9e88592a1a8c2196ccdb4d07d9cd643728868c052b78fe17fd29b8c3ae377130db99d2b88127e391125dc4adc95c9dde3b31d73e305a8dceb0863d5d619dc4ac100089cf8d12f8d6bcf732ade99c02415cf714e42d9061f35a40', 512 ) = '0cf871f3af1d3e5c9965619f479ba6b75be338afbf32b2a1fdec9361164357b2c4faebebff6e4a5af00389336434b5872285adb1e760ae99b19a812236000d22' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'188d1fc4347ad766311a74574b46be4c30886742bfd1eec90f6ac4a3b32dae8d3cf56a5d0053954d1a83cc97b29e12427f10713b894de4a734c075787a04a33e785706402c4c36cc7dc0e8cb7b0e5a98e987f213f91c22f1565e8e5667a971a5d39b3c9740cb818a61b8101c2f0060f976', 512 ) = 'b67a29b2280dae77184e2e7839a7f3b48f4054f9bd0ebf5ecf1694151966756ec4542b2285a53fa37515116c7db4f1aa492f9db0bbafa0567bdaea1bf0f26abd' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'9bae33d315dd0e4fbed1a571e7e5f902c9c027817679f46810ffaab139b92399ca6923a4c856ebe194aa0a6f61197740ebc3dd1d675c36eab58a9b2cdd8e5ac8b9274a0defb35bf5239871a86ae27342012e9ed63fc620b3c80de2e6041ea500cfb05019723d8814d2638225e88a159171c7', 512 ) = 'f3b2f66f9a9673ffc47d2c510d6de0a3ac90d59e9600f2600777b1d84446cf94588231a8b48987081209e320d62ae85acb4895731bef1710923ef0fa983340d0' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'a7d58b5cfb1841f6387ff658cfc44c2b14fbd1579f6d8276f2a38e885dc15ce81f16ce7fcef0c837f9b5ecb20b2fa83d722873ff0137537693d9a325f2c31386f777f046f216a6b14b75836c6a72bd62d589b70098a280a5ea2d9c540d7108ad7621781b2e31e34e78e741ecb4359483834625', 512 ) = '90fd55013bb36a390be5bbc34bf9ef76ab200deedf3844f79bf5128fdf6fe71332a612e5bb3c4a2bfaec1bcc5510f6f8ec8414d5e13b0ebf2a67e84ce2282d2b' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'c3bd6ef24c7c64ba3b198a8949bb824b4642b6910b72edd8af531d0efed7805226beeafcb4b75addbfc8cfc863ef5d50720a7fd465f4afb999f134f7b84c3cd7743e2afb7c12319ea887221d777682b6bcb4e090943a65fc9b83adfb6036d5001605d6f78cd511855f1f2b926e961a058e0a80ce', 512 ) = '99163db3dae57ca20c4327b88851f3c63187e5a2bbadf3c3dab341040619d2196c84c196cee861deea363f48a9f728b4816d2831033ab472f1c92e1ce748ba4f' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'9b6b821c5f536bbda82ff5036b6de56eb046a596469d9427b52aa12a74d718865c6abbc65d65151c702a0ba6cc63b4f15da16bbc724322feb69af92a614b0fb1aff497c892122f6da3226ea45f06bc0790ab677d09e9f34a96aab148334f93737c4f3eab652161b62b5d45858b1ea6b831aac26473', 512 ) = 'f65de5d478319608168bde654963b9d410b6aa5bfd8d25bf2165a94b5d2ceba0eb792a7bf132c6c189748ef16fe87e196c862a884b6e2da9804c92b60bcde824' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'616ab1a4a7782b8e1cc098b3ae4c70f7bec742fd7681a9475dba7b9f281c43b6d489f20cf117d10f4159ba8781e188318702ccaa8ddbc28fcd9083e34edb7bb1fdc41ef2ffacd7b04690416c628c9abe9a9e753b3cadae9b31caa31cd4b5a12105a39d1f783e25b953ee962af9578ee42023a4762a01', 512 ) = '43394563a74a6d0a036b1dfc206a2ff1e8a2443d8f69b63372fa959360fafd5178d8e8793b2a44116a64313797b60cea5c93cba97a1e6309c2aa9436a2815c21' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'9bf0e5967fc1359ec7093f1db06144268e176e08098ba9d085d8b50fe2b779dd66a19b1df7344d038ed86ad4e8a2c1ed7f79b107b877f6b95e91c23e4f7b0f7975c63436f84cb7b3b2cd635fe4da9ae127f2ec5ca5ece8f288943187b399d5c7b0a7db6aead01bb61d3053460ad1760b6fcc479036b127', 512 ) = 'abeb62f84f587b997e09ee255819531b986c86e2568df29ed77b68a597331f2a977203a2f66566e37cbfdacc090d0464c49839cee7a8ff569c008758b0b1172b' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'a19949a0d6340be4a91b7973b705bddb2021a0d58f04aad474e68ade940fb99bc48c5bacf126663d649505de44f03f8e5d68d4191f3667a5ead2e2878966175bfc82a3537a1118cfb68c5b2e626d4ae4f1e7a2cda2d420c2baefe76910432251cfe3ea3e78dc6ac12668410c166427056604d4991dc61e53', 512 ) = 'c7a4313191d56ef7a73064e271ac720322866a6ef82a42a2faeafdeb8d4da7df5200baaa286ee50c9464d0eb229b036c333ceae7b6a511af5c51dab79508641e' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'a949427f3fc83e578d9cc7ef6a510759f697bbe97d9739329e87b130ac7cb3c75480f16c80e547237cd9f8a9573a3bf28dabf6d6e2e7c90791554e46a6dd9fd6a9fb19317c1160fb8602a33412fc22b1f195edcd671aee5c452329e0526b4300efdf4135fbf593c7f53f51f86040c47e6c7e2837d2d8b01900', 512 ) = 'fe3347c05519b9c4a61fa289af3153c56f96d04f67041697ba09bf9722a04be2bb15ae2399170a9fe206db8d60cb9940c6d6826db99860f31fd83e9eb9f72c73' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'4157af0b3e7d291add80bdc7dac297a15861a6e66db24599e1eb1bd6331f3f63dd70a087d980a51f642810ee026d2835c2af1783c32491cff785b6c427073a5c388dc3b0ac1c920f6c8f664dc48c9d5dafb69d2255247283d213b8be39d7bcfed818de2fbe3a3a117b1d878b27073e43a6deff6b299b32def8fb', 512 ) = '6d90357d4fe398642e7b6099fa2fb2383dedb02db019e90b2ed4058dd55311156e79b8aa970035d098fd3c0e26626ca9af42af491b36eb40097c6223d21201ba' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'bc79986ccacf533b9ddbe2bcd15958c3bcd86063f325dc051007cbb8b32c70c8c764b192070dbd96c0cef1ced889fd3f0f8a42cd85057f537dbfadf3600b27ab05f80e292fc9ece157a5975cac9059d3599a4dfc06560c24a18e897e5e353abbfc9d79da4beb2942ebc79c0e5658b4a8206f49997e02cb9f06dd29', 512 ) = '1e1d4bb3839438383be702d61d60f098d70257baef0f4058260e8d300ece538a0c3133b327a7f25055916dc8c8a5c7cd419c95d0664aa53742e8be6abd4b22f5' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'0a45314284915ec9021fdd121a3c99e7c01bc73b696d26607131857abace8734975fa3b1e84e6ec686241d66e19f455de706e64128b9a8a6380c64925555e6314a44f2c9937384efc23e5cfc22d5babb998f6764d382f4ce9c5046e08e435349ed9d2670cf2929ae8016a3bc240580679e61518bb1ef933e65a6344c', 512 ) = 'f523ebd51c0f1d8e32a299f762f50826fd2341b8ae44d0c4841080bb626112ae1eafbb089b7adfd6e6668ac7ab684f78da2a23273058973e4cb660c297733912' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'8beea2e048193dfa755a594306ad9825c77659d037092ee09a6f91394a68d2364eac54042d76f9480443db08d7d73dc82582c1f3bfa1db7dda6785c762de34c391280b58c10b4f087ead1cd0e09b564f1710e12b487515b198246cbb86717ed77deb30a5a9df28810b1e8462c800cb02c7a923407a8bc5c2fc2cafde5d', 512 ) = 'a71b1ce1e582bca53d7615488335ca1ff351eb33a8c2c0105bec7ffcbd55e4533ee68209ec8b009066a2ff60b418d6b943816cca9b53b7bf64a34feaa4d63600' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'f4259473bfd39877bfe9597353d7ce8dd520c66d1fc7884e4e03b655c63a7721762dd4a35d7163304c1e23d4eecba8ea07b978e9f94eb4818cc5fbe7ee258b6df96fa955b51c44e71ec6d5c12726896ffe3ea23b92d71a46532e8ad838eb4bf50752db31d1bd82c5bb4a35e105d1ba4444190d0bf24b03c629a62dd1ac75', 512 ) = 'c8a04bf3881d0582e03563af73a675e40dc9918fcb5a138b8c6fdd057df0c11b112a6dc0664a0dff8a316c3a645ac87dd25b644d061700306bbd7dd805879b55' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'd60da691585b7c0c3714905411ae8e3515e8490dbbaf07d1b2431f501a96c7bcf4f52766d7e9b2c9e460b5cafc08303e30fce6ad78a2b055a8d31672a13d20bdc4066a33adb277171d47473a37af2c7af05dd989c134bcf09ea48e532c1628f62f8a9880417e74ffca126e2d2c6b29f23e554b29fc2cd4a77dfcae7925e784', 512 ) = 'ec83376ff6f633ee2d898d87a6a91efb0788bce188fac7d3c4c35f81ba6015640dbfad1f8584557ec210478a0cb566f1490643ce602aa5abfab63d46f7f1d4ee' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'b7d5d5f8955d1ad349b9e618c7987814f6dc7bdc6c4ee59a79902026685468d601cc74965361583bb0a8aa14f892e3c21be3094ad9e58b69cc5d6d28a9bea4afc39dc45ed065d81af04c91e5eb85a4b2bab76d774aafd8837c52811270d51a1f03300e7996cf6319128be5b328da818bde42ef8a471494919156a60d460191cc', 512 ) = '6e7fb797dfca7577432c0b339fe9003b36942a549b112d32016b257c9a866e4385e01d4e757d4378b8e61f5a8a29aa73f2daafdaab23dfe4e0b93df21374e594' as NIST_SHA512_test_vector; +NIST_SHA512_test_vector +1 +SELECT SHA2( x'ff', 1 ); +SHA2( x'ff', 1 ) +NULL +Warnings: +Warning 1583 Incorrect parameters in the call to native function 'sha2' +SELECT SHA2( x'ff', 2 ); +SHA2( x'ff', 2 ) +NULL +Warnings: +Warning 1583 Incorrect parameters in the call to native function 'sha2' +SELECT SHA2( x'ff', 223 ); +SHA2( x'ff', 223 ) +NULL +Warnings: +Warning 1583 Incorrect parameters in the call to native function 'sha2' +SELECT SHA2( x'ff', 511 ); +SHA2( x'ff', 511 ) +NULL +Warnings: +Warning 1583 Incorrect parameters in the call to native function 'sha2' +SELECT SHA2( x'ff', least(123, 42) ); +SHA2( x'ff', least(123, 42) ) +NULL +Warnings: +Warning 1583 Incorrect parameters in the call to native function 'sha2' +SELECT SHA2( x'ff', 10000000000000 ); +SHA2( x'ff', 10000000000000 ) +NULL +Warnings: +Warning 1583 Incorrect parameters in the call to native function 'sha2' +SELECT SHA2( SHA2( NULL, 224), 224 ); +SHA2( SHA2( NULL, 224), 224 ) +NULL +SELECT SHA2( SHA2( x'ff', 224), 224 ) is not NULL; +SHA2( SHA2( x'ff', 224), 224 ) is not NULL +1 +SELECT SHA2( SHA2( x'ff', NULL), 224 ) is not NULL; +SHA2( SHA2( x'ff', NULL), 224 ) is not NULL +1 +SELECT SHA2( SHA2( x'ff', 224), NULL ) is not NULL; +SHA2( SHA2( x'ff', 224), NULL ) is not NULL +1 +SELECT SHA2( (select x'ff'), 224 ) is not NULL; +SHA2( (select x'ff'), 224 ) is not NULL +1 +SELECT SHA2( (select x'ff'), least(224, 500) ) is not NULL; +SHA2( (select x'ff'), least(224, 500) ) is not NULL +1 +SELECT SHA2( (select 1), NULL ) is not NULL; +SHA2( (select 1), NULL ) is not NULL +1 +SELECT LENGTH(SHA2( '', 224 )) / 2 * 8 = 224; +LENGTH(SHA2( '', 224 )) / 2 * 8 = 224 +1 +SELECT LENGTH(SHA2( 'any', 256 )) / 2 * 8 = 256; +LENGTH(SHA2( 'any', 256 )) / 2 * 8 = 256 +1 +SELECT LENGTH(SHA2( 'size', 384 )) / 2 * 8 = 384; +LENGTH(SHA2( 'size', 384 )) / 2 * 8 = 384 +1 +SELECT LENGTH(SHA2( 'computed', 512 )) / 2 * 8 = 512; +LENGTH(SHA2( 'computed', 512 )) / 2 * 8 = 512 +1 diff --git a/mysql-test/r/func_encrypt_nossl.result b/mysql-test/r/func_encrypt_nossl.result index fc003eec226..2fc6ad67479 100644 --- a/mysql-test/r/func_encrypt_nossl.result +++ b/mysql-test/r/func_encrypt_nossl.result @@ -2,83 +2,83 @@ select des_encrypt("test", 'akeystr'); des_encrypt("test", 'akeystr') NULL Warnings: -Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select des_encrypt("test", 1); des_encrypt("test", 1) NULL Warnings: -Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select des_encrypt("test", 9); des_encrypt("test", 9) NULL Warnings: -Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select des_encrypt("test", 100); des_encrypt("test", 100) NULL Warnings: -Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select des_encrypt("test", NULL); des_encrypt("test", NULL) NULL Warnings: -Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select des_encrypt(NULL, NULL); des_encrypt(NULL, NULL) NULL Warnings: -Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select des_decrypt("test", 'anotherkeystr'); des_decrypt("test", 'anotherkeystr') NULL Warnings: -Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select des_decrypt(1, 1); des_decrypt(1, 1) NULL Warnings: -Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select des_decrypt(des_encrypt("test", 'thekey')); des_decrypt(des_encrypt("test", 'thekey')) NULL Warnings: -Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select hex(des_encrypt("hello")),des_decrypt(des_encrypt("hello")); hex(des_encrypt("hello")) des_decrypt(des_encrypt("hello")) NULL NULL Warnings: -Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working -Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working +Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select des_decrypt(des_encrypt("hello",4)); des_decrypt(des_encrypt("hello",4)) NULL Warnings: -Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select des_decrypt(des_encrypt("hello",'test'),'test'); des_decrypt(des_encrypt("hello",'test'),'test') NULL Warnings: -Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select hex(des_encrypt("hello")),hex(des_encrypt("hello",5)),hex(des_encrypt("hello",'default_password')); hex(des_encrypt("hello")) hex(des_encrypt("hello",5)) hex(des_encrypt("hello",'default_password')) NULL NULL NULL Warnings: -Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working -Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working -Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working +Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working +Warning 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select des_decrypt(des_encrypt("hello"),'default_password'); des_decrypt(des_encrypt("hello"),'default_password') NULL Warnings: -Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select des_decrypt(des_encrypt("hello",4),'password4'); des_decrypt(des_encrypt("hello",4),'password4') NULL Warnings: -Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working SET @a=des_decrypt(des_encrypt("hello")); Warnings: -Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working flush des_key_file; select @a = des_decrypt(des_encrypt("hello")); @a = des_decrypt(des_encrypt("hello")) @@ -90,9 +90,9 @@ select hex(des_decrypt(des_encrypt("hello",4),'password2')); hex(des_decrypt(des_encrypt("hello",4),'password2')) NULL Warnings: -Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working select hex(des_decrypt(des_encrypt("hello","hidden"))); hex(des_decrypt(des_encrypt("hello","hidden"))) NULL Warnings: -Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working +Warning 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-ssl' to have it working diff --git a/mysql-test/r/have_ssl_is_yes_or_disabled_only.require b/mysql-test/r/have_ssl_is_yes_or_disabled_only.require new file mode 100644 index 00000000000..dfd6d2dad01 --- /dev/null +++ b/mysql-test/r/have_ssl_is_yes_or_disabled_only.require @@ -0,0 +1,2 @@ +Variable_name Value +have_ssl yesordisabled diff --git a/mysql-test/suite/rpl/t/rpl_ssl.test b/mysql-test/suite/rpl/t/rpl_ssl.test index 7e256390e25..fd4897586f6 100644 --- a/mysql-test/suite/rpl/t/rpl_ssl.test +++ b/mysql-test/suite/rpl/t/rpl_ssl.test @@ -1,4 +1,4 @@ -source include/have_ssl.inc; +source include/have_ssl_communication.inc; source include/master-slave.inc; # create a user for replication that requires ssl encryption diff --git a/mysql-test/suite/rpl/t/rpl_ssl1.test b/mysql-test/suite/rpl/t/rpl_ssl1.test index 85f073d9c09..b28f7b11c03 100644 --- a/mysql-test/suite/rpl/t/rpl_ssl1.test +++ b/mysql-test/suite/rpl/t/rpl_ssl1.test @@ -1,4 +1,4 @@ -source include/have_ssl.inc; +source include/have_ssl_communication.inc; source include/master-slave.inc; # We don't test all types of ssl auth params here since it's a bit hard diff --git a/mysql-test/t/func_des_encrypt.test b/mysql-test/t/func_des_encrypt.test index 2c364a40090..e121aedab06 100644 --- a/mysql-test/t/func_des_encrypt.test +++ b/mysql-test/t/func_des_encrypt.test @@ -1,4 +1,4 @@ --- source include/have_ssl.inc +-- source include/have_ssl_crypto_functs.inc # This test can't be in func_encrypt.test, because it requires # --des-key-file to not be set. diff --git a/mysql-test/t/func_digest.test b/mysql-test/t/func_digest.test new file mode 100644 index 00000000000..4020ef0f4fc --- /dev/null +++ b/mysql-test/t/func_digest.test @@ -0,0 +1,483 @@ +-- source include/have_ssl_crypto_functs.inc + +# These test data are from the NIST SHA Test Vectors for Hashing +# Byte-Oriented Messages. See http://csrc.nist.gov/cryptval/shs.htm +# Only the "ShortMsg" test data are used here. +# Values of x'00' in the test data have been excluded; it is not clear +# how to specify a length of 8 bits for a binary value like that. + +SELECT SHA1( x'a8' ) = '99f2aa95e36f95c2acb0eaf23998f030638f3f15' as NIST_SHA1_test_vector; +SELECT SHA1( x'3000' ) = 'f944dcd635f9801f7ac90a407fbc479964dec024' as NIST_SHA1_test_vector; +SELECT SHA1( x'42749e' ) = 'a444319e9b6cc1e8464c511ec0969c37d6bb2619' as NIST_SHA1_test_vector; +SELECT SHA1( x'9fc3fe08' ) = '16a0ff84fcc156fd5d3ca3a744f20a232d172253' as NIST_SHA1_test_vector; +SELECT SHA1( x'b5c1c6f1af' ) = 'fec9deebfcdedaf66dda525e1be43597a73a1f93' as NIST_SHA1_test_vector; +SELECT SHA1( x'e47571e5022e' ) = '8ce051181f0ed5e9d0c498f6bc4caf448d20deb5' as NIST_SHA1_test_vector; +SELECT SHA1( x'3e1b28839fb758' ) = '67da53837d89e03bf652ef09c369a3415937cfd3' as NIST_SHA1_test_vector; +SELECT SHA1( x'a81350cbb224cb90' ) = '305e4ff9888ad855a78573cddf4c5640cce7e946' as NIST_SHA1_test_vector; +SELECT SHA1( x'c243d167923dec3ce1' ) = '5902b77b3265f023f9bbc396ba1a93fa3509bde7' as NIST_SHA1_test_vector; +SELECT SHA1( x'50ac18c59d6a37a29bf4' ) = 'fcade5f5d156bf6f9af97bdfa9c19bccfb4ff6ab' as NIST_SHA1_test_vector; +SELECT SHA1( x'98e2b611ad3b1cccf634f6' ) = '1d20fbe00533c10e3cbd6b27088a5de0c632c4b5' as NIST_SHA1_test_vector; +SELECT SHA1( x'73fe9afb68e1e8712e5d4eec' ) = '7e1b7e0f7a8f3455a9c03e9580fd63ae205a2d93' as NIST_SHA1_test_vector; +SELECT SHA1( x'9e701ed7d412a9226a2a130e66' ) = '706f0677146307b20bb0e8d6311e329966884d13' as NIST_SHA1_test_vector; +SELECT SHA1( x'6d3ee90413b0a7cbf69e5e6144ca' ) = 'a7241a703aaf0d53fe142f86bf2e849251fa8dff' as NIST_SHA1_test_vector; +SELECT SHA1( x'fae24d56514efcb530fd4802f5e71f' ) = '400f53546916d33ad01a5e6df66822dfbdc4e9e6' as NIST_SHA1_test_vector; +SELECT SHA1( x'c5a22dd6eda3fe2bdc4ddb3ce6b35fd1' ) = 'fac8ab93c1ae6c16f0311872b984f729dc928ccd' as NIST_SHA1_test_vector; +SELECT SHA1( x'd98cded2adabf08fda356445c781802d95' ) = 'fba6d750c18da58f6e2aab10112b9a5ef3301b3b' as NIST_SHA1_test_vector; +SELECT SHA1( x'bcc6d7087a84f00103ccb32e5f5487a751a2' ) = '29d27c2d44c205c8107f0351b05753ac708226b6' as NIST_SHA1_test_vector; +SELECT SHA1( x'36ecacb1055434190dbbc556c48bafcb0feb0d' ) = 'b971bfc1ebd6f359e8d74cb7ecfe7f898d0ba845' as NIST_SHA1_test_vector; +SELECT SHA1( x'5ff9edb69e8f6bbd498eb4537580b7fba7ad31d0' ) = '96d08c430094b9fcc164ad2fb6f72d0a24268f68' as NIST_SHA1_test_vector; +SELECT SHA1( x'c95b441d8270822a46a798fae5defcf7b26abace36' ) = 'a287ea752a593d5209e287881a09c49fa3f0beb1' as NIST_SHA1_test_vector; +SELECT SHA1( x'83104c1d8a55b28f906f1b72cb53f68cbb097b44f860' ) = 'a06c713779cbd88519ed4a585ac0cb8a5e9d612b' as NIST_SHA1_test_vector; +SELECT SHA1( x'755175528d55c39c56493d697b790f099a5ce741f7754b' ) = 'bff7d52c13a3688132a1d407b1ab40f5b5ace298' as NIST_SHA1_test_vector; +SELECT SHA1( x'088fc38128bbdb9fd7d65228b3184b3faac6c8715f07272f' ) = 'c7566b91d7b6f56bdfcaa9781a7b6841aacb17e9' as NIST_SHA1_test_vector; +SELECT SHA1( x'a4a586eb9245a6c87e3adf1009ac8a49f46c07e14185016895' ) = 'ffa30c0b5c550ea4b1e34f8a60ec9295a1e06ac1' as NIST_SHA1_test_vector; +SELECT SHA1( x'8e7c555270c006092c2a3189e2a526b873e2e269f0fb28245256' ) = '29e66ed23e914351e872aa761df6e4f1a07f4b81' as NIST_SHA1_test_vector; +SELECT SHA1( x'a5f3bfa6bb0ba3b59f6b9cbdef8a558ec565e8aa3121f405e7f2f0' ) = 'b28cf5e5b806a01491d41f69bd9248765c5dc292' as NIST_SHA1_test_vector; +SELECT SHA1( x'589054f0d2bd3c2c85b466bfd8ce18e6ec3e0b87d944cd093ba36469' ) = '60224fb72c46069652cd78bcd08029ef64da62f3' as NIST_SHA1_test_vector; +SELECT SHA1( x'a0abb12083b5bbc78128601bf1cbdbc0fdf4b862b24d899953d8da0ff3' ) = 'b72c4a86f72608f24c05f3b9088ef92fba431df7' as NIST_SHA1_test_vector; +SELECT SHA1( x'82143f4cea6fadbf998e128a8811dc75301cf1db4f079501ea568da68eeb' ) = '73779ad5d6b71b9b8328ef7220ff12eb167076ac' as NIST_SHA1_test_vector; +SELECT SHA1( x'9f1231dd6df1ff7bc0b0d4f989d048672683ce35d956d2f57913046267e6f3' ) = 'a09671d4452d7cf50015c914a1e31973d20cc1a0' as NIST_SHA1_test_vector; +SELECT SHA1( x'041c512b5eed791f80d3282f3a28df263bb1df95e1239a7650e5670fc2187919' ) = 'e88cdcd233d99184a6fd260b8fca1b7f7687aee0' as NIST_SHA1_test_vector; +SELECT SHA1( x'17e81f6ae8c2e5579d69dafa6e070e7111461552d314b691e7a3e7a4feb3fae418' ) = '010def22850deb1168d525e8c84c28116cb8a269' as NIST_SHA1_test_vector; +SELECT SHA1( x'd15976b23a1d712ad28fad04d805f572026b54dd64961fda94d5355a0cc98620cf77' ) = 'aeaa40ba1717ed5439b1e6ea901b294ba500f9ad' as NIST_SHA1_test_vector; +SELECT SHA1( x'09fce4d434f6bd32a44e04b848ff50ec9f642a8a85b37a264dc73f130f22838443328f' ) = 'c6433791238795e34f080a5f1f1723f065463ca0' as NIST_SHA1_test_vector; +SELECT SHA1( x'f17af27d776ec82a257d8d46d2b46b639462c56984cc1be9c1222eadb8b26594a25c709d' ) = 'e21e22b89c1bb944a32932e6b2a2f20d491982c3' as NIST_SHA1_test_vector; +SELECT SHA1( x'b13ce635d6f8758143ffb114f2f601cb20b6276951416a2f94fbf4ad081779d79f4f195b22' ) = '575323a9661f5d28387964d2ba6ab92c17d05a8a' as NIST_SHA1_test_vector; +SELECT SHA1( x'5498793f60916ff1c918dde572cdea76da8629ba4ead6d065de3dfb48de94d234cc1c5002910' ) = 'feb44494af72f245bfe68e86c4d7986d57c11db7' as NIST_SHA1_test_vector; +SELECT SHA1( x'498a1e0b39fa49582ae688cd715c86fbaf8a81b8b11b4d1594c49c902d197c8ba8a621fd6e3be5' ) = 'cff2290b3648ba2831b98dde436a72f9ebf51eee' as NIST_SHA1_test_vector; +SELECT SHA1( x'3a36ae71521f9af628b3e34dcb0d4513f84c78ee49f10416a98857150b8b15cb5c83afb4b570376e' ) = '9b4efe9d27b965905b0c3dab67b8d7c9ebacd56c' as NIST_SHA1_test_vector; +SELECT SHA1( x'dcc76b40ae0ea3ba253e92ac50fcde791662c5b6c948538cffc2d95e9de99cac34dfca38910db2678f' ) = 'afedb0ff156205bcd831cbdbda43db8b0588c113' as NIST_SHA1_test_vector; +SELECT SHA1( x'5b5ec6ec4fd3ad9c4906f65c747fd4233c11a1736b6b228b92e90cddabb0c7c2fcf9716d3fad261dff33' ) = '8deb1e858f88293a5e5e4d521a34b2a4efa70fc4' as NIST_SHA1_test_vector; +SELECT SHA1( x'df48a37b29b1d6de4e94717d60cdb4293fcf170bba388bddf7a9035a15d433f20fd697c3e4c8b8c5f590ab' ) = '95cbdac0f74afa69cebd0e5c7defbc6faf0cbeaf' as NIST_SHA1_test_vector; +SELECT SHA1( x'1f179b3b82250a65e1b0aee949e218e2f45c7a8dbfd6ba08de05c55acfc226b48c68d7f7057e5675cd96fcfc' ) = 'f0307bcb92842e5ae0cd4f4f14f3df7f877fbef2' as NIST_SHA1_test_vector; +SELECT SHA1( x'ee3d72da3a44d971578972a8e6780ce64941267e0f7d0179b214fa97855e1790e888e09fbe3a70412176cb3b54' ) = '7b13bb0dbf14964bd63b133ac85e22100542ef55' as NIST_SHA1_test_vector; +SELECT SHA1( x'd4d4c7843d312b30f610b3682254c8be96d5f6684503f8fbfbcd15774fc1b084d3741afb8d24aaa8ab9c104f7258' ) = 'c314d2b6cf439be678d2a74e890d96cfac1c02ed' as NIST_SHA1_test_vector; +SELECT SHA1( x'32c094944f5936a190a0877fb9178a7bf60ceae36fd530671c5b38c5dbd5e6a6c0d615c2ac8ad04b213cc589541cf6' ) = '4d0be361e410b47a9d67d8ce0bb6a8e01c53c078' as NIST_SHA1_test_vector; +SELECT SHA1( x'e5d3180c14bf27a5409fa12b104a8fd7e9639609bfde6ee82bbf9648be2546d29688a65e2e3f3da47a45ac14343c9c02' ) = 'e5353431ffae097f675cbf498869f6fbb6e1c9f2' as NIST_SHA1_test_vector; +SELECT SHA1( x'e7b6e4b69f724327e41e1188a37f4fe38b1dba19cbf5a7311d6e32f1038e97ab506ee05aebebc1eed09fc0e357109818b9' ) = 'b8720a7068a085c018ab18961de2765aa6cd9ac4' as NIST_SHA1_test_vector; +SELECT SHA1( x'bc880cb83b8ac68ef2fedc2da95e7677ce2aa18b0e2d8b322701f67af7d5e7a0d96e9e33326ccb7747cfff0852b961bfd475' ) = 'b0732181568543ba85f2b6da602b4b065d9931aa' as NIST_SHA1_test_vector; +SELECT SHA1( x'235ea9c2ba7af25400f2e98a47a291b0bccdaad63faa2475721fda5510cc7dad814bce8dabb611790a6abe56030b798b75c944' ) = '9c22674cf3222c3ba921672694aafee4ce67b96b' as NIST_SHA1_test_vector; +SELECT SHA1( x'07e3e29fed63104b8410f323b975fd9fba53f636af8c4e68a53fb202ca35dd9ee07cb169ec5186292e44c27e5696a967f5e67709' ) = 'd128335f4cecca9066cdae08958ce656ff0b4cfc' as NIST_SHA1_test_vector; +SELECT SHA1( x'65d2a1dd60a517eb27bfbf530cf6a5458f9d5f4730058bd9814379547f34241822bf67e6335a6d8b5ed06abf8841884c636a25733f' ) = '0b67c57ac578de88a2ae055caeaec8bb9b0085a0' as NIST_SHA1_test_vector; +SELECT SHA1( x'dcc86b3bd461615bab739d8daafac231c0f462e819ad29f9f14058f3ab5b75941d4241ea2f17ebb8a458831b37a9b16dead4a76a9b0e' ) = 'c766f912a89d4ccda88e0cce6a713ef5f178b596' as NIST_SHA1_test_vector; +SELECT SHA1( x'4627d54f0568dc126b62a8c35fb46a9ac5024400f2995e51635636e1afc4373dbb848eb32df23914230560b82477e9c3572647a7f2bb92' ) = '9aa3925a9dcb177b15ccff9b78e70cf344858779' as NIST_SHA1_test_vector; +SELECT SHA1( x'ba531affd4381168ef24d8b275a84d9254c7f5cc55fded53aa8024b2c5c5c8aa7146fe1d1b83d62b70467e9a2e2cb67b3361830adbab28d7' ) = '4811fa30042fc076acf37c8e2274d025307e5943' as NIST_SHA1_test_vector; +SELECT SHA1( x'8764dcbcf89dcf4282eb644e3d568bdccb4b13508bfa7bfe0ffc05efd1390be22109969262992d377691eb4f77f3d59ea8466a74abf57b2ef4' ) = '6743018450c9730761ee2b130df9b91c1e118150' as NIST_SHA1_test_vector; +SELECT SHA1( x'497d9df9ddb554f3d17870b1a31986c1be277bc44feff713544217a9f579623d18b5ffae306c25a45521d2759a72c0459b58957255ab592f3be4' ) = '71ad4a19d37d92a5e6ef3694ddbeb5aa61ada645' as NIST_SHA1_test_vector; +SELECT SHA1( x'72c3c2e065aefa8d9f7a65229e818176eef05da83f835107ba90ec2e95472e73e538f783b416c04654ba8909f26a12db6e5c4e376b7615e4a25819' ) = 'a7d9dc68dacefb7d6116186048cb355cc548e11d' as NIST_SHA1_test_vector; +SELECT SHA1( x'7cc9894454d0055ab5069a33984e2f712bef7e3124960d33559f5f3b81906bb66fe64da13c153ca7f5cabc89667314c32c01036d12ecaf5f9a78de98' ) = '142e429f0522ba5abf5131fa81df82d355b96909' as NIST_SHA1_test_vector; +SELECT SHA1( x'74e8404d5a453c5f4d306f2cfa338ca65501c840ddab3fb82117933483afd6913c56aaf8a0a0a6b2a342fc3d9dc7599f4a850dfa15d06c61966d74ea59' ) = 'ef72db70dcbcab991e9637976c6faf00d22caae9' as NIST_SHA1_test_vector; +SELECT SHA1( x'46fe5ed326c8fe376fcc92dc9e2714e2240d3253b105adfbb256ff7a19bc40975c604ad7c0071c4fd78a7cb64786e1bece548fa4833c04065fe593f6fb10' ) = 'f220a7457f4588d639dc21407c942e9843f8e26b' as NIST_SHA1_test_vector; +SELECT SHA1( x'836dfa2524d621cf07c3d2908835de859e549d35030433c796b81272fd8bc0348e8ddbc7705a5ad1fdf2155b6bc48884ac0cd376925f069a37849c089c8645' ) = 'ddd2117b6e309c233ede85f962a0c2fc215e5c69' as NIST_SHA1_test_vector; +SELECT SHA1( x'7e3a4c325cb9c52b88387f93d01ae86d42098f5efa7f9457388b5e74b6d28b2438d42d8b64703324d4aa25ab6aad153ae30cd2b2af4d5e5c00a8a2d0220c6116' ) = 'a3054427cdb13f164a610b348702724c808a0dcc' as NIST_SHA1_test_vector; + +# See Bug#13174 and WL#3986 -- SHA2 implementation + +SELECT SHA2( x'ff', 224 ) = 'e33f9d75e6ae1369dbabf81b96b4591ae46bba30b591a6b6c62542b5' as NIST_SHA224_test_vector; +SELECT SHA2( x'984c', 224 ) = '2fa9df9157d9e027cfbc4c6a9df32e1adc0cbe2328ec2a63c5ae934e' as NIST_SHA224_test_vector; +SELECT SHA2( x'50efd0', 224 ) = 'b5a9820413c2bf8211fbbf5df1337043b32fa4eafaf61a0c8e9ccede' as NIST_SHA224_test_vector; +SELECT SHA2( x'e5e09924', 224 ) = 'fd19e74690d291467ce59f077df311638f1c3a46e510d0e49a67062d' as NIST_SHA224_test_vector; +SELECT SHA2( x'21ebecb914', 224 ) = '78f4a71c21c694499ce1c7866611b14ace70d905012c356323c7c713' as NIST_SHA224_test_vector; +SELECT SHA2( x'76aa302bc7bb', 224 ) = '8e0f460d8c1f9d9a850a3a0b06408becc4950a77d5e8f94dc8e86fd3' as NIST_SHA224_test_vector; +SELECT SHA2( x'510db320ebc443', 224 ) = 'df4fc9bcd967feb83146fd4d2a7448d7d54119a14cb7ffc6753de703' as NIST_SHA224_test_vector; +SELECT SHA2( x'17040eed0880ed95', 224 ) = '5c81df5f342d1284a08d846c223f0367ca385ba60908a7fc93470317' as NIST_SHA224_test_vector; +SELECT SHA2( x'a92d4c1b971b963f65', 224 ) = 'a45eb31a2482b4581ac321b9175a386c69eb80d43191459e2de6bd0d' as NIST_SHA224_test_vector; +SELECT SHA2( x'49c7e96152a2b42ab57f', 224 ) = '53953c275c4fc2f87ca044760a861920fbfc1550a4c822e47457f038' as NIST_SHA224_test_vector; +SELECT SHA2( x'becc72bd1596ed064bfbdc', 224 ) = '98ec4bf49071d1b164fdbb415c67db965b7c5f191bb1801c76ea9dc1' as NIST_SHA224_test_vector; +SELECT SHA2( x'635afe6c43cabe340d430b69', 224 ) = 'c3a2de40958d2a35e3775eb60aab09fb3097658ac96fe2e142d28dfc' as NIST_SHA224_test_vector; +SELECT SHA2( x'c997165324078ed6160077dfea', 224 ) = '17c6235304dd830349bfd8ce7f8f1f41e52fc53bec7bb23382d2d598' as NIST_SHA224_test_vector; +SELECT SHA2( x'f871896748653be45dcb64a2bd1a', 224 ) = '3ff8e241b0895a06854d6f660cd7ddfc9a6b36ca73092f2f0cf54109' as NIST_SHA224_test_vector; +SELECT SHA2( x'b0ccdd6e9ed398117e1d3cd94b89c2', 224 ) = 'f38dc0dc7f1f93e95030db63f1231df91de8aaef76a39b1c08a6490b' as NIST_SHA224_test_vector; +SELECT SHA2( x'0b6ea2ddda429ccbb8f5de3332ac8a00', 224 ) = 'd9f4451ec9baba4c98a9c02b41442c58e1cc3eeb1bcb6d00a2b488c1' as NIST_SHA224_test_vector; +SELECT SHA2( x'9ab41a3b8c6c886dc3a57fdfad67fc655f', 224 ) = '2b82967b0e46d8cdc7ecab68a69e177dc01f665dcecc8de824f1bc2b' as NIST_SHA224_test_vector; +SELECT SHA2( x'785eabb7e7ca7c476cdd9b227f015d905368', 224 ) = '5617b3824c26b7a8ed43d636ce27a8f1e65b23e307e4d05422d94b56' as NIST_SHA224_test_vector; +SELECT SHA2( x'395883570fbfdbf39659bc838fb802c5cc323d', 224 ) = '4169ffec25b0c49a22cc7912f830d443ca4d3b0377ea0d22ca17f4e4' as NIST_SHA224_test_vector; +SELECT SHA2( x'6e5ecbbc6f36ec985c253f7e4bb6b1f8ab6c4942', 224 ) = 'db29fe2091df09f0fb0483a11e8134ecd480a3e4ca60dd12bab1543b' as NIST_SHA224_test_vector; +SELECT SHA2( x'393d8ef3671232dc6efcb3d6426fc88f730e946b5d', 224 ) = '6d34ae1f00d1d63a39209d15acb2c2420ff0899e11c3e673cd51cd24' as NIST_SHA224_test_vector; +SELECT SHA2( x'f222e611d99b3728b5e308f9b9b637b9d493528c2865', 224 ) = '93552ec989b20284010fb79cc7001ba7a59754f1485f3a3c1b361d70' as NIST_SHA224_test_vector; +SELECT SHA2( x'16cd2320dd785b07b681c86ad39e56549ee4d71aa9e69e', 224 ) = 'b9920881629965613c70a9b0a65eb9cd9b08945135fd2113586ba38c' as NIST_SHA224_test_vector; +SELECT SHA2( x'ceef92454528483f45a6992d179abff266145f2da2d10eb1', 224 ) = 'b7c5e536233ce1c24c2ef6f502246fcedb0d746cade7c849f17d32f1' as NIST_SHA224_test_vector; +SELECT SHA2( x'c2770ed3d60c1e7aa1a794818c1fbb9ad5cc5ef7329a8802b8', 224 ) = 'ec36a23fc74263583f1ae65daa968636c15a02e7ff72b0762fb7779f' as NIST_SHA224_test_vector; +SELECT SHA2( x'cbf96bd642247c2dd8cf7593f3d88cf61aba22c059604751e737', 224 ) = 'db2ae7e115b8b441de017133c775496efa4a0958d5a322bab780f50e' as NIST_SHA224_test_vector; +SELECT SHA2( x'be0a3d0d539017795cc9b21a6a10cd3fdc575f9303bedb4e8464b2', 224 ) = 'c2684880b50e9e8b8adcf348b71ff4fdbde66fe0c6b6b7197f87002b' as NIST_SHA224_test_vector; +SELECT SHA2( x'8530e9fdb69ed9bd05466ab4639e47affb7a05c2212fb38c85f9b2bc', 224 ) = 'fa6d9af7f6f5d0da8ea58a00c3c8714673e6112a6405887fd77e56e3' as NIST_SHA224_test_vector; +SELECT SHA2( x'd564b9e358cbee4766391e8679cc41c7f1f64f3713765ea151860a40cb', 224 ) = '9b93bf21dd9b587b1e7dccf3cc5df4f193a744a1a082ebf8df65c577' as NIST_SHA224_test_vector; +SELECT SHA2( x'12841b7f08bf555156c996ad24ff5c6df0b23c1f25721b63f08ca1954fd1', 224 ) = '98586368ba2d17eef435c6225f3337e4ba21a8657bf3a84ae75f38a3' as NIST_SHA224_test_vector; +SELECT SHA2( x'c90824f4096dcbc0a6d70cc1937c1306f501c66c85484b133689ca0e19a474', 224 ) = '735ab14d634b95c24e353ccafd4ab40fa5718e18eeb568905e79cfee' as NIST_SHA224_test_vector; +SELECT SHA2( x'd28f6765c7c1e5f05c9ebd6065b9020d255f9dce6d2b932504d586b64b4b7ffe', 224 ) = '2a97b7e1e67a3e22230e51bd6d44a203ca4d3406a11e16f949b0a6c8' as NIST_SHA224_test_vector; +SELECT SHA2( x'7a4464bb000276dfc851d80f73dcd7775141e8c427c48e7f30457e99616f0247f1', 224 ) = 'cc70020d59321c4ab85d60278e94b224d4d5aaa8491ab6a4bbbb04ca' as NIST_SHA224_test_vector; +SELECT SHA2( x'852368eb5a59e558acd85299955c47760a17ffcebf045d8b45782dd575faad861254', 224 ) = 'f6da08d8f011b7c7b6feaa0e49a864499dfa6bd1e2da81d8c195884e' as NIST_SHA224_test_vector; +SELECT SHA2( x'c90e047cf70ea40566ebd269b0e0b2cbc63245b84a06eba13975278fcde2a312a28b74', 224 ) = 'ce4e5baa8acd7653a3a8e62f0464ca286b41935864378c7667db6afc' as NIST_SHA224_test_vector; +SELECT SHA2( x'887fd70602e7599169d276dfd8bf44f93fae5188b52794f40f7da3ccb1542769a4618dce', 224 ) = 'be05c2526351af82cad735f69f46ed8b3202b5c170098c932a8e9d84' as NIST_SHA224_test_vector; +SELECT SHA2( x'ec1cd5fa0dfbb142e3b222664e2dbbc209d09c00e6addeea5bfb327c3ec3c43ecddd66d1f1', 224 ) = '85956e2a952ecf3b845268708ded872e1b1366b84f87e4775e668b76' as NIST_SHA224_test_vector; +SELECT SHA2( x'b67734b20bbaec455be457845bf058599c33bbeaf734be122fbdd011d23298826022398eaf1c', 224 ) = 'd5ed34af21626fe43634ba7df4f569d8186d43c061e63cdb038dbc36' as NIST_SHA224_test_vector; +SELECT SHA2( x'e09e7100af3ead397f9f5812a74e19a6a7571c7fb1b8b8ac69164f13eaaf760909905620dd0852', 224 ) = '41bcff813625d927814a70e78b22597d2119174f08ef28a1d9d6e654' as NIST_SHA224_test_vector; +SELECT SHA2( x'1d6613e39dde0059bc3bfd6da940cd9d740a2b8dc5f31907ceb775407ed5cd5df73874354317d559', 224 ) = '675468fc5f71d5e53b913350355990a19c3677b76e0daf1dbac0aa24' as NIST_SHA224_test_vector; +SELECT SHA2( x'57271ff1795bf74ef6668da1fe8ab0ccfd5050547015eb0af8c449eaace56943b4d7bb18145990c6c5', 224 ) = '6e3d10fb8d3c815636455b08fb1a732fe6ed542ab2e8325c314b6e49' as NIST_SHA224_test_vector; +SELECT SHA2( x'3f91d8bf80cb744fe79360f6ecd3f482b95dc8f2dece127e46b82fd76a007fafc484767c8701f0798d35', 224 ) = '34233d574c300c57f481f0568cc43f71c07d9f25c59ef49de74ad2db' as NIST_SHA224_test_vector; +SELECT SHA2( x'2408966adf5d3fba570366393882c3d68b5140dd3749a310c75a6efa6d7d038047e90cb9e28a1a00fdaf8c', 224 ) = 'ff0c34018f6c80705cacb86180f887491cd98d4a573f33c87398bb7a' as NIST_SHA224_test_vector; +SELECT SHA2( x'adf2e47a62db5003a2d2893c917686cb8dc41fbbc92cd02b37eaba43ac93ea6d3feedec1f20645c0947d0746', 224 ) = 'e91f826d6b7fee1cf731fd3a47d00b17edf669e1471644f0a3bf8365' as NIST_SHA224_test_vector; +SELECT SHA2( x'a8f17ae01bd749341b1cea3f73ef22c3a84e4ac38276f497c79ed23f4ae4d4f82488910d4258e8f0206be789d3', 224 ) = '026f1a48b71cdddd0335fc736cc9f6877bd67dc31e43f87cc04efb32' as NIST_SHA224_test_vector; +SELECT SHA2( x'eab69fea2590a847e6046aeb81e201cf1797b8636baf7d30f09893bb27a987ad276265327df62b9f37067e573cb0', 224 ) = '7b626a24d06c3f41d458edb360bef9456fda3e90d3fcc546ad2a79cd' as NIST_SHA224_test_vector; +SELECT SHA2( x'de1c468c1f27fc265a9497eb8dba257c5dfb8ff708ec27309bb6803e65bd823aab7fbd439dbefec589e120fb4f9825', 224 ) = '02fb84e794a91206437848a4449a2389343f42cbd2877a42d270d51f' as NIST_SHA224_test_vector; +SELECT SHA2( x'8a01037a92ff0ba48edd3707f2533723890ade105ef3256fdddd73a236471b38027226ab29bb544e03285d81bd417c27', 224 ) = '67ab2856e368a0bd0fea2042217b31c238fdb73ff8f4ed33090edeb8' as NIST_SHA224_test_vector; +SELECT SHA2( x'c9cc53bf67d6bf14d67e2ddc8e6683ef574961ff698f61cdd11e9d9c167272e61df0844f4a7702d7e8392c53cbc9121e33', 224 ) = 'ec263fa2ddfe9c7c05c2a025271176f703d487ea6067e35372d8c75f' as NIST_SHA224_test_vector; +SELECT SHA2( x'6380c0a6b3439be6ba13bc10db16c212d8569eeb4567a56d3c49e341538fb32bcbc18d8f0a001e354be89e4995bb5ea6e9bb', 224 ) = 'c577e8faf9233892919ac571c2248d94d47cb7451b847d6628dfa52b' as NIST_SHA224_test_vector; +SELECT SHA2( x'85f318cdefb50f71afb880ee058ad2e0b4310223b511f3da2d1006b69df7eb75581bb7a83b3e36ba98b0822e73b9d428f13c9b', 224 ) = '41b8b1081eb8571a8dd2af57f28336a77a47d0bb4d5968ee65d96ba0' as NIST_SHA224_test_vector; +SELECT SHA2( x'faa67b20b0b7f00960a5681df1d18eeb0265b50e19e8195cfd0f686060d6810bc1d07ba691bbe90b95585c158b7a2a55105c6e06', 224 ) = '58757f96ba28896e079fd76a578bb1b98ac3c178af2840b327a238ab' as NIST_SHA224_test_vector; +SELECT SHA2( x'b1f83a5ea85d72c9721d166b1e9c51d6cb0dd6fe6b2ac88fc728d883c4eaadf3e475882d0fa42808941ceb746b833755bded1892a5', 224 ) = '0a53a62f28cc4db2025dd9175e571912c1a8bd0b293d235f7a0c568a' as NIST_SHA224_test_vector; +SELECT SHA2( x'ce2b647be7bf54ea15fe79121bb04f0a04cbc49bbf89f7f70dbe40a79d6970c674895a6d9332926ed4df7445160a684b99fa652dabdd', 224 ) = '0dd413647bb39859aa84933a49af8fc9009690be7fbfb05f7f383015' as NIST_SHA224_test_vector; +SELECT SHA2( x'80d1d261afc7a40e810609b92e3617f68a2770a77f705ec2bb562354a6ef8ac69787c25f47426c0b8603f35b2c8d1ccc53e8de4cc30773', 224 ) = '1d47aa5186c55bad63f8a13f0e4543a6ef86ce6a18faade4d4d65ef7' as NIST_SHA224_test_vector; +SELECT SHA2( x'3b51a4dbd579846dcadae119be589a91a7dd84a727595f6b1a0709946bf1f2222bb6d041e48b946f2a809ce174052a232aac1500ff30bea1', 224 ) = 'd9c6c0f3b8102496d408388660765ba83b601ee3bffc2d3013f095d5' as NIST_SHA224_test_vector; +SELECT SHA2( x'9c76043970f3e2e1f533f85d86b41d394d8570270afe3f500fae28e88f957e051993efb16021633d3d3f26d9f7ad4a62c15e477b842ae5dfdf', 224 ) = '94a7213f15373971b135b47986b3135df4dd45589ba91562313dd70d' as NIST_SHA224_test_vector; +SELECT SHA2( x'738b98206d062d99a1d1d7b43f6bed03e01875006c322ffb3bc0d6577a4aa2f6d1eb11f242a7e78e55ff736c72c315008e28fd440a1a35add7d3', 224 ) = 'c40bbb13d17298721c32ed46254a0cba547c4c2086902fadf739802b' as NIST_SHA224_test_vector; +SELECT SHA2( x'88ff5518acc6aa5484d8e68c5731a04e877c692f68924a6d4e3d6ed3ea411bddd69de71d6e0e28dde2d5ac0689baaa417851f95b547c80ee6431ee', 224 ) = '9716f750b69fbf537147d5ef468b807425127d6c1df07ab085eb3fa5' as NIST_SHA224_test_vector; +SELECT SHA2( x'eaf46a39648bd2baf7d240eb37d812ff9b0f8a838b097f41ba7f5265b69724debe664607d3b4f1871100387640c43ac1a7fb9ccf20df376472f70dc6', 224 ) = 'd180561849855da0369998d10c0ba2775ecd3bc7392a8da1014116f3' as NIST_SHA224_test_vector; +SELECT SHA2( x'ef15b0ac7f267e7d9f4fab40b52ee9321a877fcd72443eed39bab7329f2eaba59698c39e29a681e50f04771780dbb74b47988af619ee650c251e1868ec', 224 ) = 'e75969253ec7b8caba5bdb0b024948430a217b3076fa90d4c881a8fa' as NIST_SHA224_test_vector; +SELECT SHA2( x'71482c3b0c0b65470314c4028b9343cd9092579a4d3623501941ec7184dccefaa294ad8aa7a26ec7b46f66fdf1571209dcad0976e10030e52a9d2db2b855', 224 ) = 'cee2546181cf14a689f5c66a6141f171a0d2fb116e880778c13ba220' as NIST_SHA224_test_vector; +SELECT SHA2( x'de38350f3fe504643d318bd131e6fb14f24e0762eaf5995170b1c4f552e0fb49b0f180d111261e7eb0971bd2177b6944efa31ce617472145f3052c910727f2', 224 ) = '7741192f3dfc1a50166dc6e6f18f6e8580bf45f098fd0559139d8adf' as NIST_SHA224_test_vector; +SELECT SHA2( x'81675f6f8ac523cabf94a8a43370a91d9717826e5026e6cdcd23d49217c0c797a95e2ee483d11b8c7a633fd2d21b16900e3f5fda0717cfde3cf4060e6971c282', 224 ) = '3c699b3b62e432e10a255fa7f6a6dbfc6d4b5813d6dcae32142e09fa' as NIST_SHA224_test_vector; +SELECT SHA2( x'bd', 256 ) = '68325720aabd7c82f30f554b313d0570c95accbb7dc4b5aae11204c08ffe732b' as NIST_SHA256_test_vector; +SELECT SHA2( x'5fd4', 256 ) = '7c4fbf484498d21b487b9d61de8914b2eadaf2698712936d47c3ada2558f6788' as NIST_SHA256_test_vector; +SELECT SHA2( x'b0bd69', 256 ) = '4096804221093ddccfbf46831490ea63e9e99414858f8d75ff7f642c7ca61803' as NIST_SHA256_test_vector; +SELECT SHA2( x'c98c8e55', 256 ) = '7abc22c0ae5af26ce93dbb94433a0e0b2e119d014f8e7f65bd56c61ccccd9504' as NIST_SHA256_test_vector; +SELECT SHA2( x'81a723d966', 256 ) = '7516fb8bb11350df2bf386bc3c33bd0f52cb4c67c6e4745e0488e62c2aea2605' as NIST_SHA256_test_vector; +SELECT SHA2( x'c97a2db566e5', 256 ) = '0eb0281b27a4604709b0513b43ad29fdcff9a7a958554abc689d7fe35af703e4' as NIST_SHA256_test_vector; +SELECT SHA2( x'f53210aa6ed72e', 256 ) = 'dee684641421d1ba5a65c71f986a117cbb3d619a052a0b3409306c629575c00f' as NIST_SHA256_test_vector; +SELECT SHA2( x'0df1cd526b5a4edd', 256 ) = '47f527210d6e8f940b5082fec01b7305908fa2b49ea3ae597c19a3986097153c' as NIST_SHA256_test_vector; +SELECT SHA2( x'b80233e2c53ab32cc3', 256 ) = 'c60d239cc6da3ad31f4de0c2d58a73ccf3f9279e504fa60ad55a31dcf686f3ca' as NIST_SHA256_test_vector; +SELECT SHA2( x'5d54ed5b52d879aeb5dd', 256 ) = 'e0164d90dbfcf173bb88044fac596ccd03b8d247c79907aaa5701767fad7b576' as NIST_SHA256_test_vector; +SELECT SHA2( x'df866ecb67ab00515f6247', 256 ) = 'dc990ef3109a7bcf626199db9ab7801213ceb0ad2ee398963b5061e39c05c7b5' as NIST_SHA256_test_vector; +SELECT SHA2( x'0757de9485a2eaea51126077', 256 ) = 'c1c9a4daadcc8678835872c7f1f8824376ac7b412e1fc2285069b41afd51397e' as NIST_SHA256_test_vector; +SELECT SHA2( x'7c66f5d443c11cfb39dd0aa715', 256 ) = '6840619417b4d8ecaa7902f8eaf2e82be2638dec97cb7e8fcc377007cc176718' as NIST_SHA256_test_vector; +SELECT SHA2( x'329624fed35639fe54957b7d47a9', 256 ) = '0f5308ff22b828e18bd65afbc427e3c1a678962832519df5f2f803f68f55e10b' as NIST_SHA256_test_vector; +SELECT SHA2( x'c34e59652acc043873ecf6a4ab1060', 256 ) = '0fdf1604ac0d717ec9587b4de5444aaade807589d90eb326eaf6acb58a051e79' as NIST_SHA256_test_vector; +SELECT SHA2( x'fdf4700984ee11b70af1880d0e0fefd4', 256 ) = 'b01ae16eed3b4a770f127b98469ba26fe3d8e9f59d8a2983214afe6cff0e6b6c' as NIST_SHA256_test_vector; +SELECT SHA2( x'ea40aadbefedb0e0d78d067c6cd65c2c87', 256 ) = '36157bbe61931d58a3a644953eaf131bbc2591c673a1f20353f51ca5054fc1c2' as NIST_SHA256_test_vector; +SELECT SHA2( x'6d1092004670efab3af483d265d8e7b3da73', 256 ) = '67fbf35d360d72b101410794ccf197106c0e784afa9c80206a550b600dbf1f16' as NIST_SHA256_test_vector; +SELECT SHA2( x'55a10148ae7b09ac4e71df438135bc70e873eb', 256 ) = 'cbe7965513af46dfd596dc5839cb82a5c6c7328034b1dd0042a9f4b71fb14430' as NIST_SHA256_test_vector; +SELECT SHA2( x'a03f8fcd777bd933b4b0af8c5ce3d61308565649', 256 ) = 'ddfce4e8c7b38845e2a81b7fc27a06366467a9e111316014013f9701e2413ce0' as NIST_SHA256_test_vector; +SELECT SHA2( x'8e5d6cba8d4b206381e33ca7339bec504f3d6119ba', 256 ) = '92f678a3e59d0dd3610eec3222b8c6ebd28eead530723fbd226747534da22b6c' as NIST_SHA256_test_vector; +SELECT SHA2( x'96db1b62eed85f2628d0c25da534401fe80d13d09beb', 256 ) = '725bab4457c789d6a4cc4736b9c2c662cda18407150844d74d6aa4efd72dbb05' as NIST_SHA256_test_vector; +SELECT SHA2( x'1c482a45dfbcda549729126b533477edfaf7476fde498f', 256 ) = '6523f24f225b996aad1a8b317e6e0f8e97673dcff3fd62a27ff9f3888ea1302d' as NIST_SHA256_test_vector; +SELECT SHA2( x'0f677d8e4c6d6a057492670d99adb870adf68a36ead37919', 256 ) = '44acbbc6b48bf37ee088b9c8546fc46e5a5f0d637b5e444f628de186144087fd' as NIST_SHA256_test_vector; +SELECT SHA2( x'c09056d597816542bffe4bb33e475dfb2d6293016906ddc18c', 256 ) = 'f4baeaef70588a0820d63c2401dd84f98adf7366782d196f8698d7dfd3db1c29' as NIST_SHA256_test_vector; +SELECT SHA2( x'72f313fdcf52d0749c9937cc2e53f50b44d65a544876bab7d2f8', 256 ) = 'cfa67aa52fd675fca985f69f9ca58af62baead8c39723bb6bfbae8a5d4bb9beb' as NIST_SHA256_test_vector; +SELECT SHA2( x'09f6fe6cbe6744149f792a4a827e4e8909627abf75301bf7bbd7f5', 256 ) = '657633891dc6274d6aeda78e7313dfb960eac9a24d29293a057b9746a18de4ec' as NIST_SHA256_test_vector; +SELECT SHA2( x'9e1cfeb335bc331744247df4bbd56876a7f69298aaf6b9e7a8731889', 256 ) = '930058dd21cb48b2cf90eaca55322ddf48582687838a584928440504a2fde578' as NIST_SHA256_test_vector; +SELECT SHA2( x'b8913001efb1b7f4bd975e349c5b2cbe66045bf0d2fb019b3bc0f059a4', 256 ) = 'a0eb0b7fad1d1b6de4f9096724a621720538a9c3f2f6d11134d68cb9ee52fc88' as NIST_SHA256_test_vector; +SELECT SHA2( x'8f08537d50928c911a68b071d65b9e8f038264d3b62c5f33de18a484cde9', 256 ) = '10aad5cd4484387373577a881974f1a550782108bc88b4e2e8085e9c3e938bbb' as NIST_SHA256_test_vector; +SELECT SHA2( x'fd846162c4da936d004ffe0cbe844d940f1c2953157cf4765dceba2a6f4c64', 256 ) = 'c13ba769aea0e478816f2f608b5cec3fe14672ea033088a8641cfe69b4ff57cb' as NIST_SHA256_test_vector; +SELECT SHA2( x'8cf53d90077df9a043bf8d10b470b144784411c93a4d504556834dae3ea4a5bb', 256 ) = '56059e8cb3c2978b198208bf5ca1e1ea5659b737a506324b7cec75b5ebaf057d' as NIST_SHA256_test_vector; +SELECT SHA2( x'1bbc2b15253c126e301f9f64b97be4ce13e96337687e2e78fbfd4c8daf4a5fa1cd', 256 ) = 'd973b5dcdae4cf2599f4db4068e4aa354f22d8901adc463ca3938c465578147b' as NIST_SHA256_test_vector; +SELECT SHA2( x'c1bdb3bfc65dfe9a393331266c58d05fb9c8b7476bb717dadc29bc43dabd91504fc9', 256 ) = '57844e1d762e6b7bb86dbfcc5c5a59578d39cc665d1ddbe4de03a61778061af1' as NIST_SHA256_test_vector; +SELECT SHA2( x'26eb621a45bd9c9c764ccbb672b99f2a8379c7bbf4fb07eec58a8b0ea4747b72196ccf', 256 ) = '73dc27bd45daccd0f811381230cf7f2a1d3ed1202e9a770af733146b1e166315' as NIST_SHA256_test_vector; +SELECT SHA2( x'7e3e3986109162e0c56357048bbd86ff49b93644b7fb064e7280968650978466f02c9adf', 256 ) = '682c474799f5103252c3e2efef7f747783e514b54e93b8303b0e07ee4218f78e' as NIST_SHA256_test_vector; +SELECT SHA2( x'763c1a9ea50bd72bfc516989ddf3eff2f208f64fccea3cf0ca8dba7f3d10e237c99226510f', 256 ) = '54d6cb2b09825eab064c8952113b9897a3344737cd186a8e6be0a0b258da3e57' as NIST_SHA256_test_vector; +SELECT SHA2( x'e1a7ffea8417e7cd49b96e355fd44f3f7a150fab6dd8343dfba3b262eaf3a6175a3c4607552b', 256 ) = '83baa80caade404c446833ecef2e595bba6dce2cb7f7422fad2972a9fe327aca' as NIST_SHA256_test_vector; +SELECT SHA2( x'692a18effad8317a11a5cddb917f7389e1be6dba34572a300e52e056047e758bc363a0be53784c', 256 ) = '0c0c6a6b27a6d7a7a5130d70db3b8bc1bd8001d103efe72f45b082cadbd03742' as NIST_SHA256_test_vector; +SELECT SHA2( x'73fda1e1cb7dc9a9ece858d040d7105cc126eab153fb0bb55703f4317dfff97bd980f4523aee3a09', 256 ) = '9878f8804e00828b39261843f2b3eda19a7e9b9ff4cc2e23f7ea1f62f4491ff2' as NIST_SHA256_test_vector; +SELECT SHA2( x'2321d88c19e3e6a8309a09a5428c01991e16446823f13b2f0db4ade30e9a7c3521868fb99b440f4802', 256 ) = 'f1bd3a8a74c8f0093038499ef63794d86fc6d82602a802a435718e61e7b396cc' as NIST_SHA256_test_vector; +SELECT SHA2( x'b9eaebda29172b052bcc1e3a9c7f2eced43c084a86f89f61e7237425137c167aac29e4cac4071afafd3f', 256 ) = 'ea43ec91285145d8f29915b227a0e35c89f90d968f9a14332dad275cfd52d619' as NIST_SHA256_test_vector; +SELECT SHA2( x'332daf07d3a6775b18572549a6e12b8a27d81b7c4abcc5bd0b2b9ff936546b0026af131cd3ecd8a10c29ab', 256 ) = 'a573959ba6b1c3bebfd6288c806b72a65650d23bd46d123816a2a6a0e47d1e66' as NIST_SHA256_test_vector; +SELECT SHA2( x'30ac7eace1f2e41034c25a3d3e2db979c23dfaa7a4914b0da147625b3e1f12e9fedc1c41d8ee47dde84fb332', 256 ) = 'c0c3f40d34e711bfadf517b3a78140e379fba5f7edf2c1bc3ce82469dae4d2d5' as NIST_SHA256_test_vector; +SELECT SHA2( x'02c3964c4ad9c4af97d373099302c2cd770ad06c7d8bd11c970161d861e917a854265e223da28031ee38041534', 256 ) = 'c13c622bf08a3d3cf1fd6fa5e26e505e551b1643bc5a0f59ed29541235218f77' as NIST_SHA256_test_vector; +SELECT SHA2( x'b9eed82edcf0c7ba69f6f6ac5722cb61daecaf30437511582117ad36ad410ebc6582511ef6e32dce5f7a30ab543c', 256 ) = '6ac64caaeda4763d28a44b363823a6b819285410fb4162af6ca657396f6028d0' as NIST_SHA256_test_vector; +SELECT SHA2( x'b574865024828bf651df070ac0cec1849aa6470901d2e30fa01dcb43862d9827344cf900f46fa9ef6d709e5e759f84', 256 ) = '4c839e8f8f373c25a9a3351257c6152258ff8e6a88dad42f30f2bbecab56c20b' as NIST_SHA256_test_vector; +SELECT SHA2( x'eebcf5cd6b12c90db64ff71a0e08ccd956e170a50dad769480d6b1fb3eff4934cde90f9e9b930ee637a66285c10f4e8a', 256 ) = 'c117b9dce689c399ec99008788cd5d24d8396fab7d96315c4f3fe6d56da63bb3' as NIST_SHA256_test_vector; +SELECT SHA2( x'1b7a73770d168da45bf2e512eee45153e02f4dfe3b42e50304a3d63d7826f0469562be8fdc6569b056a7dafcd53d1f597c', 256 ) = '0b42cfc3dd3d3198f06c30e087837ec6a6dd35d08e54e886c682709f8f42457a' as NIST_SHA256_test_vector; +SELECT SHA2( x'0072ae2f3bda67736b9c66e2130260b3a4847bc3968e037cb6835efcc2014273336725cd5a94f592aef20a0a65b459a4415b', 256 ) = '217cf25b8b343c28336b1c1e9bed29e0c96045bc93daf426e490b608b0905c90' as NIST_SHA256_test_vector; +SELECT SHA2( x'2ac748680f3bc1bf098c4be38c7194643b0d009e51c43630404cdfaf9807aa9b299094916c9466c31fe37fa630c6d3eadc9434', 256 ) = '3ea59e2e79513679a22e962f22408306f7e8f6e562c2f1f210e279fad8eaacc6' as NIST_SHA256_test_vector; +SELECT SHA2( x'893d1a8863d234ee50e5a8c7650a4de047230ad03d268dde8921401ff97b79dfb97cf2426b0f782b79c7e75daa2155e1f4098ea7', 256 ) = 'f7808e03e5d5af43c2bffb66e35d1ecbd79f4d8fec44f821f73a235d17c70a89' as NIST_SHA256_test_vector; +SELECT SHA2( x'cf673b96eaf241cfa3e262dc6fe65f08bcc2be56d8a2c9710eaddae212ded6859f0ff83e5e57d0e80a968b8ed24e74defeb5bbdad6', 256 ) = '9bdb7cf0492ace4620a47660acd127f951767b0738b5504451d6ed56e4fa3cbd' as NIST_SHA256_test_vector; +SELECT SHA2( x'0d545be1f47b966214691c21278704e89a17d52dd96aeeeacc5325a9a1ddafdecd39407a4dfa72bd32856b4c5cc2ba838618830c8399', 256 ) = 'ad53e0db7e63211c8b00947908ce29660c4376e244e19cd30a659af65dc6f1fe' as NIST_SHA256_test_vector; +SELECT SHA2( x'9eabfcd3603337df3dcd119d6287a9bc8bb94d650ef29bcf1b32e60d425adc2a35e06577d0c7ce2456cf260efee9e8d8aeeddb3d068f37', 256 ) = '83eeed2dfeb8d2604ab5ec1ac9b5dcab8cc2222518468bc5c24c16ce72e70687' as NIST_SHA256_test_vector; +SELECT SHA2( x'2fc7b9e8b8dcaac64ecef4c5f91877543ac36ae494d9faf84b1d347b6cf925570db84043d6f500dcc153cef81d6f2437d913f3dbffad42d9', 256 ) = '6ef7e9f12267ebc4901267da147effdcdebcd6ec5393c7f62ec4c4f06ca72649' as NIST_SHA256_test_vector; +SELECT SHA2( x'cf95929ab732f9ef5e8c3e6b4ed753852ee74e4fddf31b56c29a6ec95d23fcde2209eb7288b787f05d9036735c32ae2f01fc650d9cce4995a5', 256 ) = '3e5854169da065407fa465a4694f3fcb1d141480a8f84c970a0f63364ec8f590' as NIST_SHA256_test_vector; +SELECT SHA2( x'826378013988684c40f4d917c7ed8b72aba66fd68f085d0b2eb20948ef3f349dbbc71f8e0ba845014586495a48902ee44505c673d2f76d473950', 256 ) = '5b506b823ef6658939aca22f52bbe5a4b849c31b8fa1d09139352e501137bc04' as NIST_SHA256_test_vector; +SELECT SHA2( x'0cab6d38ce9849fcbd589f7235a6d2c2cb933e26e1ca6f4e78189104452c280c069b024e162769373f409d5cd0cb8160f0239418325d23ee6ad1bd', 256 ) = '92943076cda4c46718e55df64d7580e12b8fb2c2911e87851246ccf6791fa3e6' as NIST_SHA256_test_vector; +SELECT SHA2( x'3fb4a8c5b57c14731179256608614c95c9725ddad5fbfa99111d4fa319d3015ad830601556e8e4c6d012d7da0e2c4f60f1605f6e4c058ec0f46988a3', 256 ) = '8e90da3eb146935264576f874fcc5a64b7a90ab6c8a36c15d855b0179f52f899' as NIST_SHA256_test_vector; +SELECT SHA2( x'9050a6d002c90f6036c592b0f6b866713e7894d29645f4a19e0858b3ebd8078711c26d2601ca104d962dc6ce6ae92634ee7f3ca6baf8810e2126097a09', 256 ) = '03c516677735ae83dbe5a7e4c22c1ac1bfedcd46e7dd785f8bfe38e148eda632' as NIST_SHA256_test_vector; +SELECT SHA2( x'd659ec136bacfa0b5c906aabedc93c01c5f1efa3f370a1432ea8778461703f0c67c454da12bac2da73b8abb755e5eaf10bddf52f6ca908d61bee80da0c64', 256 ) = 'fff2852957a0eeb577e73fd7d827f650261dfb9a8a65f52df4bbbc9b2d0ae50e' as NIST_SHA256_test_vector; +SELECT SHA2( x'b498555658332b197bc5cb7adc5c1997aabbdcf1f7ffcc2b6b82eb0f350019d247f8e399c3559d3bb04eb049f28b344c7989c24db83f839b59028dc82fa670', 256 ) = 'bfbbf242f79bff4ae0aafb4ccf69b24fdca4342d83db1dfd1822c74a9e218e8d' as NIST_SHA256_test_vector; +SELECT SHA2( x'3592ecfd1eac618fd390e7a9c24b656532509367c21a0eac1212ac83c0b20cd896eb72b801c4d212c5452bbbf09317b50c5c9fb1997553d2bbc29bb42f5748ad', 256 ) = '105a60865830ac3a371d3843324d4bb5fa8ec0e02ddaa389ad8da4f10215c454' as NIST_SHA256_test_vector; +SELECT SHA2( x'ab', 384 ) = 'fb94d5be118865f6fcbc978b825da82cff188faec2f66cb84b2537d74b4938469854b0ca89e66fa2e182834736629f3d' as NIST_SHA384_test_vector; +SELECT SHA2( x'7c27', 384 ) = '3d80be467df86d63abb9ea1d3f9cb39cd19890e7f2c53a6200bedc5006842b35e820dc4e0ca90ca9b97ab23ef07080fc' as NIST_SHA384_test_vector; +SELECT SHA2( x'31f5ca', 384 ) = '78d54b943421fdf7ba90a7fb9637c2073aa480454bd841d39ff72f4511fc21fb67797b652c0c823229342873d3bef955' as NIST_SHA384_test_vector; +SELECT SHA2( x'7bdee3f8', 384 ) = '8bdafba0777ee446c3431c2d7b1fbb631089f71d2ca417abc1d230e1aba64ec2f1c187474a6f4077d372c14ad407f99a' as NIST_SHA384_test_vector; +SELECT SHA2( x'8f05604915', 384 ) = '504e414bf1db1060f14c8c799e25b1e0c4dcf1504ebbd129998f0ae283e6de86e0d3c7e879c73ec3b1836c3ee89c2649' as NIST_SHA384_test_vector; +SELECT SHA2( x'665da6eda214', 384 ) = '4c022f112010908848312f8b8f1072625fd5c105399d562ea1d56130619a7eac8dfc3748fd05ee37e4b690be9daa9980' as NIST_SHA384_test_vector; +SELECT SHA2( x'333b2459200d2b', 384 ) = '5dc6eb1bf26c54f2e0409f5a31aa97c37c8e168d0226e7d2764a11aff3fb76d15e9348520386d730e1998e530c59b56c' as NIST_SHA384_test_vector; +SELECT SHA2( x'ad46049e0230c70e', 384 ) = 'c0bc9050670743f554a639e21a5870c864ef56ca831fceb7295b4c3050c3c20876839cfb0d1bcc11c9d64304ed008517' as NIST_SHA384_test_vector; +SELECT SHA2( x'ffa6f17b0798388a71', 384 ) = '026c58cab40b45e5909bde1af1bc1ab2669af98a9e3eff10d1ba68f5e3f2adf47038c03b3cc0e07d5353b6ed4d0027e6' as NIST_SHA384_test_vector; +SELECT SHA2( x'7eb8d60bf02398ffa689', 384 ) = '683c413c0bb9ecf3a0da7a88c314e85d4658ea4c7ea21b48ea5adafe66746a97e9fe40d7a3b4f1c3fd4a1fab75dcf422' as NIST_SHA384_test_vector; +SELECT SHA2( x'c0cf1a3f73dfae7c114118', 384 ) = 'be9839e9ac6ac7a06dbc494823e52b43427b649d6c00d7be2a4ee1c99e75096a82aa9546f804f4c5e2d62afe3b269b06' as NIST_SHA384_test_vector; +SELECT SHA2( x'ad5f06ce6e1632966e4a3bcb', 384 ) = '33e29cf43f8cf3c3680710b342126a020e72398ad4be6bae86511a7771d563bf6e76867eb8890d31fea793adb2843481' as NIST_SHA384_test_vector; +SELECT SHA2( x'cb3d16ad70bf80e5a9b1113cc7', 384 ) = '64ea8d5538a7ad26c87ac68f5e30c454d150cd3311066124dfc11fd58a56b1d42339f410a09fe7478ffad037f412f992' as NIST_SHA384_test_vector; +SELECT SHA2( x'842562ff1d0fc2c173825395a03a', 384 ) = '638c3239fa399faa786a12eae1acda4744cd8d65b7be4532d40de84a994096e929ac6d385d84183637cadfedf2941e86' as NIST_SHA384_test_vector; +SELECT SHA2( x'cc95dd4d94b075071b31eeecbe9421', 384 ) = 'ebefdbf6230a671d7b1e31b26fd386f792074f8a897e395c5cf327b5cf9019220e661ed1edd1eb35ca5dd8fb4ba90389' as NIST_SHA384_test_vector; +SELECT SHA2( x'daf8002b9394138220770bf3026ba123', 384 ) = 'ada9fb71becbea38bd3378b87d8b67906298d8a57b9c371462e88fce6528d30756dce80691c484f0ed787d4165d09aa0' as NIST_SHA384_test_vector; +SELECT SHA2( x'7464d6ecd83a91466fcb1b2c671fae075c', 384 ) = '1cfc153ff54c2eb7825a8772da16b2a39f817fe2e27ec73f7393b3999102d02b480d25b22112aed7f44207d81ead5e2e' as NIST_SHA384_test_vector; +SELECT SHA2( x'5520843bdf4af949ae3764b5a9c57c64f513', 384 ) = '8bbf382a606b530cae88e084c944cd32e1690139698e8c92edca1d330cc6675ecdc31c49101467737b0fca2ca71e83e9' as NIST_SHA384_test_vector; +SELECT SHA2( x'b2a41b40e3b53d1dc5e37570193f9f76bb80a8', 384 ) = '78df76c6bf5f95fdce5e015eaa37a7e0782b42185c9c989903c26fd43015dd93d949c9ef1a21c858901a60633e840ce8' as NIST_SHA384_test_vector; +SELECT SHA2( x'aa986e747d04b932ab8266f259f1ee18e87fd7e6', 384 ) = '81f50207238b98d4eac5907d3c61a982f0cd155a15a100659ea3cdd88cd705e282227161359cfed12ed384a82cf96bc0' as NIST_SHA384_test_vector; +SELECT SHA2( x'948b333f042cc18a82cec0177f33c3bdbf185b5803', 384 ) = '5ca83aec2a89bb12ba15cd5c28bc685998f6e62de2ea2706144aa4e073b6b97be7750d0fb86e4a32499920d721a8e59b' as NIST_SHA384_test_vector; +SELECT SHA2( x'57271feb9fadb6ef7c9c988258889583a7e2ed86bf7a', 384 ) = '8308f23dbd930f511998ec5cc95428870abb156729a166902b268bd6992ba335d81d9881035d4ec3509fea18015a4c4e' as NIST_SHA384_test_vector; +SELECT SHA2( x'b1e6d9be83ca63c0dfd043898cf49690b30aeff093a6a7', 384 ) = '3a94cc56c3c7cc17d54a836b2920edacb0e27a93d63cc152da25010cfab7776bfbb2505af2a0528a1f0198a6375dbcd2' as NIST_SHA384_test_vector; +SELECT SHA2( x'c030bb7a49275a4c0a80bc24c6c1d86f4467ca2aa1e6c900', 384 ) = 'ee66585df3f2e40a86d29f15a0f6e7674bf258d0c8dbf78698401fdf0f8b94fe45de202748024d244eb2b8d6e4bb6371' as NIST_SHA384_test_vector; +SELECT SHA2( x'aead39a90fed8eaa4bbbe3b2641ef21f8e89321e94af581e78', 384 ) = '55836ec67d5b81f77b38300b7d13db81bcac7fa6b1d8839f65806965978f4fab0db69e50b74d3d1698ab9e10131fe28d' as NIST_SHA384_test_vector; +SELECT SHA2( x'2b9e8d1adc0c06a4961299400245d54fd2258b6cff50314455f5', 384 ) = 'b858bf457211e1e10ceff855552eb4ce5067a7664d7008df210cb63502d04f5a03250b64acbdba78f2c30f4820204bb1' as NIST_SHA384_test_vector; +SELECT SHA2( x'8e4a0b1b68b8115aee9569c4a1f33109373b790be267a8a8d5721a', 384 ) = '8e97304e6222cc6a93fedb2d526aea034c3d706ff59c1bac6b9c88c3afd15d2328c1615e94c43262d338ec89a545b855' as NIST_SHA384_test_vector; +SELECT SHA2( x'300d1802549eaea76f75f4ad10b123bc55ca60afbc17353b369342d1', 384 ) = 'b9c1ea27080cffb70a36b07a44cefad77917d3e7c2429cc196175b21018c99d94e1bb125cb180d45b3241dc210536abc' as NIST_SHA384_test_vector; +SELECT SHA2( x'fd628596a69e7038d31e1cf2acba11fb20f7cf9ed72b658668e23f38cd', 384 ) = '8bbb105eb0be34dfcb9b3dae06f77a3e21cce06f701339cbc3844237383295270af51ca28dc893108de65b163a75cc20' as NIST_SHA384_test_vector; +SELECT SHA2( x'6d8393d6679e69244db604ea71226fdb4ad3e70e223832020f6032de245f', 384 ) = '4f200337cfa5b77032a7e5e0fa6dbd35a85e4cdba9e2d61d69f3d82dbc4d64e4ff2d029dc52cd2cff90270a0a5a016e8' as NIST_SHA384_test_vector; +SELECT SHA2( x'922110e043965d39c2c124499d47877f1e9e33a27b72365b4d4812f443620f', 384 ) = '2ec96054f9d4b87ffb2b447eff8aa44d40200a099c8f6698ae7c86889d3b2beb7ba60634525c4cd3f4635191c822811a' as NIST_SHA384_test_vector; +SELECT SHA2( x'b8211b7aa8ae99d26e35c06ea4b226e0a6e52172a40e7f0df5f67759ae2ee026', 384 ) = '093945494108573fbff96c4ea888181f798a022ee5e89137b688a15c5ac85c4da72b8c44558e62323b4de180962aea53' as NIST_SHA384_test_vector; +SELECT SHA2( x'6966ef05235dddff26bec1853eb36840434604a79cd4d11702bff9258664b633d6', 384 ) = '8de0abf7a039124ebaf3570db07f3e7547633a5ac56f8c86f8bdcea7296033d7e19c329c381afc050002b7a7b219234c' as NIST_SHA384_test_vector; +SELECT SHA2( x'11e8a909b7335c7713671d545943c7e24ec07a8d453935284dcfa67aa90c40f980c7', 384 ) = '4c07b1ac241d727cb0face5e306cbf5672f560acd8e26c7d6cf52782cafb5341733f167237ec56a8e245761c99508844' as NIST_SHA384_test_vector; +SELECT SHA2( x'508d360e41e4f2d5356d6d63d1069d21ebfb2e60a0cd2e3fa0320acecd5cb973057e37', 384 ) = '5933be6cb65ba0c9aa50377f93f5b4311961739ba8de3407284974e8a659b900289da049161036278c77dc3e4f16f232' as NIST_SHA384_test_vector; +SELECT SHA2( x'a382f5d82a34420b8779a3980ea138f4ea7aa5fe1074ae40760305727f455f40bae5cd4e', 384 ) = '381728f154103fc0de79131de07de5b81ab8e51a9b470e0dbf860f0f7cb6d8418cc604d00895634b2becea268c6e230a' as NIST_SHA384_test_vector; +SELECT SHA2( x'63fe4a7f46ad6ebbd8644a6750c601ed00357c5f3ff602bba68f086e7f744a167ae31a8ca2', 384 ) = '1a9bf6ca1f0f435da889c59bec482755926e80b06bd46f80bbda9bf4a30a1630db22837380522146a36e5fb954a7779e' as NIST_SHA384_test_vector; +SELECT SHA2( x'94d972dab4e15e51e8bf91890d2ef1a155e26ea03eb48fb7c5ff51c6d64a322208278996875a', 384 ) = '4926848163c834639686244f89c64bc90ebb2c57456a2c56705a7039dc1389fe81bfc3e4d4ac526173a53a2064604a3e' as NIST_SHA384_test_vector; +SELECT SHA2( x'0c555adb19cd55039a9e27028184e89f44a8725f28cfc457bfd2a43eaf4e89c6b69cb72ceb04ac', 384 ) = 'b00119ff6f8d405608c74185121c05f76f2268a3726bfe3ffadf7b338b1df0e0557080ae533c56a31b8959037a88d69e' as NIST_SHA384_test_vector; +SELECT SHA2( x'567c3828db664ac1e31624b8b5c7e344f39eebcbc43a2b0e318ca2a2d0e9219fa05d539c3543fcda', 384 ) = '636a24bf0d53cb13c27441633781005baec355c2ebd231e393df934275c404150b46d39f100b245064dd2d9f4e19f453' as NIST_SHA384_test_vector; +SELECT SHA2( x'32a59e2acdff4c2aee788ab4c7cc36fd477ade2a906dd512acdc86467b6f094ff0a3f4367d6f744acc', 384 ) = '0749c3b9c115b3e29731947878fab9c9cff2286e3f9a24d62240278514c41bef220bbde040f23db4692f915ef40cc92e' as NIST_SHA384_test_vector; +SELECT SHA2( x'cfc3ef84e70f9247d9c123de7be8c6e9ba4c7395dfa5556f110a707a1bac877e70c43da46cca7a40dde8', 384 ) = '2b3a9ee9aa7fdaa27d23fdecdf0a7da71d2e9b8e9948c5912f5d2d02a42f22d4e29c179b1c38a1e463569cdc9c2063cb' as NIST_SHA384_test_vector; +SELECT SHA2( x'eaa144363d47bcd68c0c950be45ce1b87043c87140256fd449af1f1cad0da3f33d5df1883c640de266802b', 384 ) = '5263e9f3e8a1bb5634050ca89916a961a0ced1a92950ec20aef411e431d16cf9f77ef414b75ad922d9308f9dfe571e75' as NIST_SHA384_test_vector; +SELECT SHA2( x'c63da62dc71e97de646f695b5a8c58fa6fae08e5fb622529a83a460976c2189802b5b8870771603b25a94622', 384 ) = 'f63558786f3f06cc84884f14a93a9ef96b1174af8e15296380f7057320bf21e2b5c0684b00a00d895267c3e1404142ff' as NIST_SHA384_test_vector; +SELECT SHA2( x'5225b6563257ef806fb0eea5df034cc319db7a5b295f1075887861e64b3653ce9a706e6464ab32f6513dae2bf8', 384 ) = '5be5579e0bc2404523392f95cac2e3e9e59d398b11143e481594edc57cd04247355bee2fa80d0ef2e5dfc0f6f45c4fb4' as NIST_SHA384_test_vector; +SELECT SHA2( x'c0b22bc12ecee79ea76f1907a8f435f657b7bb375c92ae11f2a248283e4aeca2df7b5c89c6332c704844775a7157', 384 ) = '1ea1bffd5aee1377de1af01d7c895ef5ebe1c1d72b532b43d5e264c158637414ad1416f21e9a32b194415d6e3e982906' as NIST_SHA384_test_vector; +SELECT SHA2( x'0dd0f1807170ea493604c82293732648a106786e1a1df10d6021a4fcc1b9e940f9410225f878fe8ee678de8965ecf7', 384 ) = '2482561cd0e3468a5d8c75c3a1261cb36257536cb165c0f29f817d80833b6a002eee5dc778a953124d79d4d4835b12c4' as NIST_SHA384_test_vector; +SELECT SHA2( x'78334108ce6261ddee5d98045bb307a6e8f3d0ee65c1d9bc7d28cd9edf3264fc9cb6e592d072e9238559616cd42eda58', 384 ) = '87feb45250c1e5b4cf701f86fb24d6a49b2c0d2de92db884e2fcdf5e323c0539c78e5a99fdaf56896eed27b897095741' as NIST_SHA384_test_vector; +SELECT SHA2( x'e9d96ef05a41486b10ea2e5a9c7059e227ac4d4b61db664cbbfdb488d67c09583b0e4fcb4cdc1feb7be49042b99c4d9d31', 384 ) = 'c0d72a3a4cbee53ce48df9574b65dd0791b15b03202f7c13ada8cde3a4e8c220d9f3d00a3e37b31f44cf6fb5c7134e18' as NIST_SHA384_test_vector; +SELECT SHA2( x'90413184900f9c0de1a1983e1eb348bd2c2654aa7b3e4474880d2df2a72f90afffb87f85d66b016d0f2db895f0b9c1b32994', 384 ) = '5c06fbe39a401c80f0463a485d6a32250218db63fb8ad77d1cfce824849d0a61b4acd5a36fa14b22a62beb758b780e6a' as NIST_SHA384_test_vector; +SELECT SHA2( x'630fb204cedd5efd2a3c272e318e3b1b3277f8bb12d90b139203d90acf251e780f07d380bafb5620a711c5069989aaa50a8ede', 384 ) = '73e862668fab744ef2768a9bd2fc382532b99c03c4cdbd88eea4a224c56c187d48f8f9985b73d283ce03d71d49dd1c41' as NIST_SHA384_test_vector; +SELECT SHA2( x'0f372d71e1c9941d7872956309db44db57108d8be1e0106859862f1a5989640052e0d874c55a3250b53dadb05c2d6efa1d50141c', 384 ) = '13712a36f85a7ff0b98838d674b058bafd11c8a3a9c5ce505bbab1eef6bd640644f94e47a73fd7cfda5a1ff30d830b2c' as NIST_SHA384_test_vector; +SELECT SHA2( x'50dd69e3080e0d8a9713202b68c4e87fa2b57bdb940a39a8568c9a13adfc2a0530a7d156a93a583ebed8290cd16a561a2436dd0041', 384 ) = 'd22632b3ed8e83b528e40beb2ae4e01bdcff0e62cd0d48a35f92cd2d286ce5d72a597e0ff2cafbe9ea7eaef32ce5343d' as NIST_SHA384_test_vector; +SELECT SHA2( x'ef4501c9eaca54649b6e7dea45005ec7716d7c787b37a79e5122de5178316db650d058d49853fca3349ff4662e273a3bfc1b8ef101db', 384 ) = 'a7574f6b0f1872483ee52be517172dd2193e67cf5b3994947dcbc2866274868c70391dadd8d81de7573ba658e2615871' as NIST_SHA384_test_vector; +SELECT SHA2( x'9fa31c5626eee059714e363391284189666594b7ab694f6732498b637138f9a73e43c5bbd73fc13f25ffbfc742ca3eea380b4a960c4b9d', 384 ) = '055c9415e4a5c921eb9721cb32a5c0b47fb57b1af4884332557946717942615ca6251694381537f2a7edc490dfaa82f9' as NIST_SHA384_test_vector; +SELECT SHA2( x'e2b76d556ee3b9475a1c54e18ebb0854c7971f543d1a25c9839bf0c7aee7dec0b9215ef828cdb23aec27f3ca87b9559a702cacc0b95f2f28', 384 ) = '6cae189d9765f9a56c825f5e24f5f5c9f60d80f57a35f788ea548e7755844e2592db2c7244a26d7c37ba9a3e5f744a3d' as NIST_SHA384_test_vector; +SELECT SHA2( x'd189c6cfa4c14712cfae7fae68d66907595151886e88888bac3d5c79e5cc473289b067afbf482ee6b4db5bed33db29637766c60c3d1206bb1d', 384 ) = 'fc72b66aaead15676fea59cbbc20d39c929c8590a50a0a05d146c41fd92272da3a56f58f6cc93149fd65e91b3f1655a2' as NIST_SHA384_test_vector; +SELECT SHA2( x'31981d12960c16661b3f7c7952871a7b00a975677da7557d5ed980f3523fc9e84a164999dda9edd7ea6a31b97f412a8ef924ca156de860f14757', 384 ) = 'a470316104c9828cd96f2b76886a37d01ae5c5a0e537097c4e397dda1c49c59a78d33f4c4d5dd634b7956920760eb0bf' as NIST_SHA384_test_vector; +SELECT SHA2( x'44eb420655c5cb6e54645bb6d41dc4f8d5ffafcaeb61e06d9cbebb4709c30793d1a5f35832b85697713e3bc97c7c9d89cf146f8d948ee0da0e38dc', 384 ) = 'b0b028aca4364c92427c4d8edaa5f6dbe2b30e626433d20ce27e5bb74b17dc59f3e9e23e08ce9d49882cc26118e8fae1' as NIST_SHA384_test_vector; +SELECT SHA2( x'0871e0c4f2885572f7847cec0629592df48515d2c3225be3248001f13ac2eb61a1a82c07afbd6ff7fad296971aaaa0f9b0f7d068a7850b41b9b68305', 384 ) = '503fb0ecc8b6bfbeff397b9fc02598651ebec429acd50e3add6a9752f576e24c5d933573ebcc23cdf06f807000370825' as NIST_SHA384_test_vector; +SELECT SHA2( x'32a5984a4510ac51a9b876ef1eaed25e82a9adab45a817721dd99ae9fbbaca1f3d7e1e8625b2feb08a201d56cdf4099e0f1d019da1f6061bbc26349773', 384 ) = '0ba492631a4261465c137033eb1492ff8cdb0e06f8494e2c52fcf029b157f2127e0f4f75b5d3a10209ba70bd7eddec9d' as NIST_SHA384_test_vector; +SELECT SHA2( x'3d62c78e081a996ea4ce2124d6816a62112b9c7eea5c142ecc23ba90ed2e8f6d803286be2d8e956fbe2b0b641ba624ba78b1db4fcdb6ff8486be89417c92', 384 ) = 'e6b6eb5d03c7caaca9f7a62c6cb48c0c5662686c975325d7b94878a43b64fc38a884b2c3635ba7f74df36402c974a7c8' as NIST_SHA384_test_vector; +SELECT SHA2( x'78817bc3f6285eca108e54b14091d1ebb9ecb1b7555dcc5acf07cbab32153ad591a0de59f9d24852a44caafd6fc6ea788ef5f5ca7fb256243c580767b56e86', 384 ) = 'a0ed388522b9bf2737b10071c9e22c9d6db99bb3808ea3248959d075062d845b872d2eeabfa4e123b4f738a685a3c41d' as NIST_SHA384_test_vector; +SELECT SHA2( x'58beabf979ab35abba29376d5dc227abb3d2ff4d90304982fc1079bc2b2880fcb0129e4fedf27898ce586a91b7681e0dba385e800e7926c0bc5afe0d9ca98650', 384 ) = 'a0888e1c4d7e80cbaaafa8bb1ca1ca912a932175c2ef982ce1f123a8c1aee9635ad75be52590a924bed3f5ec36c35690' as NIST_SHA384_test_vector; +SELECT SHA2( x'd03e8048b7c387b43067b039e5b9a0f353d94824862dc485235683daac63a9c90044b1ec218157253a2cb532e114ac81993b85459b8ad8c9d6c4ad0434b9e26f1f', 384 ) = '370629f3dc8c8d4b79c3fe8f9033de2a4bd42874f7b3ffedb4b38d73e7959896c45572f08f2974c86e7a51a6117d1dbc' as NIST_SHA384_test_vector; +SELECT SHA2( x'296a9a5b9a0d101f186d9fa6288c912202547cdf958569d2cbf235740eed38d10b0025dbb6de31058e98780d22149c19d4bcaf06dd7353fd91cd1f47e47f45622e14', 384 ) = '66d6336d30e32ca8ae874fd4869dc3ae94edd97484c385bc93a6384353ed358cebea55bfbda954ac16972596ea51384c' as NIST_SHA384_test_vector; +SELECT SHA2( x'fe4d2ae2bd5484c7782648130e33f1e478a2deacaca1572ac1f9cb9953e55b2729249da8154d998c1c63180ed7a91faf19b7b6e3d3ceed0a346921a114147cba9281bb', 384 ) = '1df79be52e4a50b6fd14cae825139a39c30829081342b9c4de4fae59df8a0ff20c8a9fe3c498c9ff567a89a32b2e7210' as NIST_SHA384_test_vector; +SELECT SHA2( x'6ff84418235fc6ab5d12c1bc6591c66a689e9f21b59e2b1d2c416929f265d2ad6a38ece7619d1c7989d2bb24294f6dd312f1aedbd557ae81338d5fbdd5e7cc3d3e30acad', 384 ) = '75df8657107143d13f309094728c3edc8e92dd36a504e0c0f5c9e8ce64bcc40af18630a1913e9f2214e6638c2bd68552' as NIST_SHA384_test_vector; +SELECT SHA2( x'22817ea8761a32516e99c2c00a4d4e6290b46f3d819bcb31cb87e77e40543d87471c8fd6d25a7a5f904f4e0963a51d6a145312d246c0048ca82b4b606f4ad35c04316fd5f9', 384 ) = '51c1275486c73022fe476005a436a0f8623683d568a7e804d81329726fb30a64778b559cb2152a8a7d7889b67c77b1ce' as NIST_SHA384_test_vector; +SELECT SHA2( x'd4070bd6e39c3da7751a714915e73e85b73ccb7857379044dc2c6105423da807f82af236876aadd5757a2f736975fb1b8fe540cc3ed8a328d9373e70f354e9b0b6c2b8378569', 384 ) = '87510a9917a6b12fadb3da68908606fab3c76b8e94e250eeae2817dfd4365991b1b517bcda578875fbfddcfdf1b7b142' as NIST_SHA384_test_vector; +SELECT SHA2( x'f61034de4f9b0c2d203170cf0d344bd869fba4fca977bb5218175558ccea5438d8048a49c322cfd93991512a014b2cba2f643bc79ba42d139176dbe5ca00d8509b944ab76d47f9', 384 ) = '4c0e7b2409850cb0d22b8944d44876f097a40ee7a5e3cc4a7a20269516d1a3ae5b0b52b5af33d7a7cc5c839966c712ea' as NIST_SHA384_test_vector; +SELECT SHA2( x'39b82498bfb4c821096255f6555e0638d06d9a7a4f62a8c83f4233e8dfa67edfad6121b81d635d8091ddad9586a69d210bdedfe178d19c2b5c1d082fb718397d6a6c39c7eb045ae8', 384 ) = '4dddda1188954064b4d134d8be7acc52207945894f97402cb0e8b2519c2b2ca449ca96a4ab4bdf078b0ef2fc9814a74d' as NIST_SHA384_test_vector; +SELECT SHA2( x'2477a617791efe62db70e5592e0f815edc0dacaacb0c92928ca37b08d504e56431dcd665f67b70727735c6267c08ee0cef7f58a7d8d55db68c5e1bb5202381a724cca6138ec45f4df5', 384 ) = 'bee03bed3eaceb6d7ddfbfd5bac017fe346928f5a128b2fc0bba965d80cdcdac653af7dd433feaa6fbbe4c415d24ff3c' as NIST_SHA384_test_vector; +SELECT SHA2( x'12812e2b54e6b89b199fbe3b695bbedaea02953969f5aa6cb6976983b50cf36ab241130ef52c75c1965512e09395efb3201d07943ebb85548f5937da69c7400d29ba0df5ca148a1cb665', 384 ) = '19227eb974a9f7079479e27ebd95aed4cdfed11ee12395cb5ac3ed04e384b6bbc174800ed6455c5a354f669b0ee90b62' as NIST_SHA384_test_vector; +SELECT SHA2( x'e4776aff9f9176054f80f5edac658c95b0aa114a039fa08ab765ec0e350cd40877f837a9788908e6e9fba57c268a643168da6f5d3c97d3aa3458d318dcca8244ef0a91e9cb5265a723d86c', 384 ) = '37d1224bcc443bfc2d1770098da71b98fdf3256210c1eb4b489d3766de535f7aac9431a6cf37cb87dc5cebb5adf220fa' as NIST_SHA384_test_vector; +SELECT SHA2( x'060e912736074954f440871c4b64d92e452ba79bb9dcad7f6510aee43cb867e30161c30c15b74d098e48ea7d888bc832c02192745f5ae6b813fb0882643fd885461b010beac67497da7915c9', 384 ) = '9f54ebcdfcf95e7acb00e6e99a8409c10eaf9cf9967266f8524f9467925b9525af07940227d2d947f9642eaab289bbc7' as NIST_SHA384_test_vector; +SELECT SHA2( x'647ccd775229a0b7b1f4c4f81e58dc2963432954edc0a06981d3403d2aa4a2d276e0d2d9e15d5d7592fdab4245d48f96898d1d072b09bc2df24a7ca98c90a965c9c1a01e070ee120eed466515d', 384 ) = '938e9d2cb62164167b2d8ba8300ffcf007e0fdcc80f236ce113c304ae4bc589fcae301bff4e72a7f5179f397fe012915' as NIST_SHA384_test_vector; +SELECT SHA2( x'717a756d3b651897c7dd97a926431d3277ca5d29aa2f7a3989a4245cf80d05ab7b6e5b75faa4e68ec15404e9cb221b69402337f53c94f4cbd2cc9f16516f98c2c5e5fa8fc10a7e645c279de77a22', 384 ) = '9ecf76b5e05ac4704389b2ef4f7205ace4d152ced735cdb451801eb709702b264aa02aa5efa9cb7c37b526ecd238a319' as NIST_SHA384_test_vector; +SELECT SHA2( x'95530985e73134f6fef027c8c61f4b9308afd67de19ce70173d0d2efda44b8b461685cdcf6c531d5dce0b8f6a06208bf4e77ae63e474b88307bc0d3df5e40065bb152412a8b2615d013b4765f672a3', 384 ) = '5f181e9003766e88b6118b2d9bc8cf9425e34a6881a91fd87c5bba87121e6954b8599d6dbed8f2e7a74f2ea0755909ee' as NIST_SHA384_test_vector; +SELECT SHA2( x'a707cfaea184546db789b53ac256c2f23563a767b1a11abed303d916513d546b45cca6b9c836ca64c3930cd7024cbd6b8a232b8b2d73d1175bb9ca053b548c4efa89d20864cadacfb138d16aa1668cac', 384 ) = '4a62f6f793b9f8c5e89498c5d45e52c50a3a004dd1c9213d9d1d0cb40f5fb0610cbe5eb261752764ff3fc35a32fd9aaa' as NIST_SHA384_test_vector; +SELECT SHA2( x'9241ecb23c7fc0cd69bdfb825614de606332f0256a5ef0df4fb60d51d8bb5a98bf107c0f067fa56f8b3dc73bdc6f015b4cec5e064745bee6e2031477b62fd2b1ef18a2e6a05057ed5af82380fc3d0ae3cc', 384 ) = '9c3bdd4f0b8edd507740d4bc873e35d0963e4cafd27188cc0d63341d25dbf09912ef03903230b1f5c2d0a1c1b9e4b1c9' as NIST_SHA384_test_vector; +SELECT SHA2( x'89f96eb0353730367f030d1e91b09debf27ab965570feb3ebd4e24f5b44eadfbfea2601558db1801984f665cf81986c3b2619139cddef3c83698206b12f3832c53e9b78a8997fa1dfbfbdf7df7fc435f66aa', 384 ) = 'a7ca6ca52bfa61a490b7de070ff6279ea87d816ad8754a6e529946141954aebcd9c1b1ca1d9fd39137f062c6a2eb7ddd' as NIST_SHA384_test_vector; +SELECT SHA2( x'cd42b8496d6c5f23b06b440d6a17f03991e02140eeb51d1e1824477ea3c2f03995cd6f19191074e27807999344443ae9d7118725fc57d70febbe403b7b16648b93f68df5e1a2fd86cf327fa7b3f142a04604e7', 384 ) = 'f9910144685987e9500f006d3360d1c270bbe1a90fe658e2a1cf87f4aa32d9e41097cd964964b78589db448fc4de3900' as NIST_SHA384_test_vector; +SELECT SHA2( x'105f9d121228137fa8138ca3c84d503d89a1d087874a2db18905fa8f616a438f147bceed3b7ea02aa908c3ba4e5b47fd5bf18770a759ae2552427970a8d63ee448492d7d85b1d61f0c18eb3fc7cf47e0020630c2', 384 ) = '8a98f8c9d86edaf0c6dc59be207cfc8ab18dc0b384d2fd9f4a358f42890a919de839eff5388327dc7b175f89e9168c55' as NIST_SHA384_test_vector; +SELECT SHA2( x'd7448b7ffb746ec0bdd88106a725b84b59cccd317c21d446f8bc1687671f1c23c99a0a81796c2f83602bd90d68666ec13388b80d0eff8168209e60d8e740d2b8e6af8cb897c41025a7cf7f6b6238aed86d677ba2b3', 384 ) = 'fcfbdf092f428b59a1c51c55d0c09d68863c0d2b76368d80f106e0d24b25c4caae1f8a18de689ad0bf6327ff118295c1' as NIST_SHA384_test_vector; +SELECT SHA2( x'd44bb6b3ebe582bec0c602118f430ac362547eb2ede95d78b681fe9a79f89a03caa00bb1fc94d3af4249604314668f68d4d66e7eb21b4641cde5d9f89ae3e8ee8ad9f826e7f3564bff5959e68503e7d434cf3af6b5d0', 384 ) = '4a6de936a59f5b85d03caece8be0eb1940a20afd38fcff9e83d3ca57d9da95344878528b42d4ce4931e8426a893124cd' as NIST_SHA384_test_vector; +SELECT SHA2( x'9082f0080bd1030f74595b75376a5b1f7b1ffd2fa3d9751e1beb110a51976451013aa35eb6c34fc38e6914883d9ef2c3543e9a69c40d1b649d60bde61c1a2dfce5dadb668d73a1a65b9da55750ea80c064fba0a913f3ea', 384 ) = 'a3336329854e6dcac625ab1f10cce649687e431009071c9d4fe91bd9da82badc84aeb107ce4d226adb32adc39b66412b' as NIST_SHA384_test_vector; +SELECT SHA2( x'14d5039c17beb28e8200a3d4a4febe87c23891c90d6fe903d00ba471eeb9c1e18c58b9b70b16123539d631f9c8d670c7ff8e7089afdbb194695c5f2dee1c6f4ce772eba0d6268ad24dd5840e5e97a4c052de9f9b9da2a4e0', 384 ) = '3af733d34b8905c0a06d8cb459e092546cc3e5b90b3e635bb090d871609932b2a219b577181edfbffa67ac7738450c84' as NIST_SHA384_test_vector; +SELECT SHA2( x'95c025f86b7d76b086a8c592b2e9eca1397b0717bc837c5762a0392335c33d0fc8415a351d26392bc7cd9e324cadedb0cd76eee1e95dcdc9deb3656df1bdbd4211c0d3e6b75b990e10193ec05e47aec29c035c5260963f1706', 384 ) = '1ef611d4aa2ee16894eb7e17905f3d66bff8596811f20ef5906d71f9bd0ee3040269efa8ca4273ca43387241c624144d' as NIST_SHA384_test_vector; +SELECT SHA2( x'984beb16e04ba209ff4dc567d53edda1de37eac9b8f805a5df924402bc63de4ade478f59870d3e8d6a28de1cb3a792ab4868141c4e8857a7f01d6b2c5b28a2c70dc5f1a650a5981701be05e59641f6e560cddfcc0ce28b437098', 384 ) = '47898d856fb815e3d208df5670acfec6c436eab9b0b1ec63f298a2b81e8d5d326562fbb284f3f7bc70024b5269e2ec2b' as NIST_SHA384_test_vector; +SELECT SHA2( x'964c2903d33e9c10b8a7573f4ebdc7178decba00cd7971067d65f6da1794b019532e34d19c465e42c0b9a1e1eb599ba3d64bec773cae49148e7dccf6e7b78ea342bd7833ebfb560f33ca2df96895cf4d043bac8625b5eb033df9ba', 384 ) = 'b7ed21b6f2e1370febc83bc27479757bee06c4065f143d6dd93553448950361815c7ee09e961a98ed21100934a13bc23' as NIST_SHA384_test_vector; +SELECT SHA2( x'00633ae4c920f41f16796c713bfd43ff92323a9b7b865350a088333a7e58cb9b215c372c2e35e6b127f2fcd0eb83f4237c708a8c05cbd8c91c63bf48443a883cb639cbf06123905b2fc8b5f68a7b90ca1fc5d4cde15bb96e514e576f', 384 ) = 'f0a86c75dab5034adf835bf62498226b9d4c5d0bf5237b371654058a024e06630c63c7d8ef8d0879e4767e9821d47599' as NIST_SHA384_test_vector; +SELECT SHA2( x'6ad118436ce2e22a2b8b7118c8bc081ca9925ddb6f7a37d528983beac66a031cd1a87196586f43ee2d9fe7a7528290faaeae89d5042cca2526d9c951660d92064e7b1a3a9158d06b40c0762841552fd3fe29d9a55ade9cf2e90bc3af60', 384 ) = 'b4460710cf4d9147e9f73e26d97f039533a98ab4cd66399451318bf09a912ccf5267b39a0c8d4c2eeca1e9370a998dcb' as NIST_SHA384_test_vector; +SELECT SHA2( x'330ecd4f7820328eb2d1442c9ff555c1c705cbac5f7223056e3936d32eb8bb7fb5bf0e89d4eb307a402f0e1aefb406e2c5e3a7b470c0b8ca91797ced1c3e35e70154e73a0c655e12091b72792ded8acab1385f68c09103af935a212bdb93', 384 ) = 'd8d0edefc5881544f7e72431b41b1b2fcfc198a47ae1b89d43bf118200b8529c60eab34963855283291386aadb0e67e9' as NIST_SHA384_test_vector; +SELECT SHA2( x'32d5e868b0b48239a6d74799ae8046f4d98faa564f9b80233541c108d4bc8c31f7b6b3bc945e796eafbb9aa57c408c8ec4a0059889e4bd29edba758f50103839b9e1e127774fdd9f08f332223971c09e8f4fc7e5e607aa5e585af3fa60e896', 384 ) = '01817497f65899ff7dbd32c4a1c34fb0f6d1c9dc426cdaf6bc42d14c68a6e610aac9fcc47c02076162f1510777a416a5' as NIST_SHA384_test_vector; +SELECT SHA2( x'57b51d10a4d2fb17ef0f204aa53cf112e1130c21d411cdf16a84176d2ae451ee5f66ae6875cfb2e6a586f233d5ee1bdab9f235513fe229722a7d812afc4f70751a3d128a2b5ef452c10cd71f3b3bb19bea0af5ff729814857319441f69298069', 384 ) = 'cb84599cf288ffa81aa50e0d1c4dfe30777e1b79d82fa05b45707a2e7dd747cd81b1af269206579cc183119f25997263' as NIST_SHA384_test_vector; +SELECT SHA2( x'ca536a7bf66c8b1e451edc371699dc1afb79cfd06ea20f19bf6fa3ad510d12c7062179e4f8b1dcc86a41bac3fe3ce43228968f48e2b0a70fa17c66a988e126dcdc6173ceb9f9650c03482cd19ef4ed86e24acd8549244b226b10d2ec2dae8e3035', 384 ) = '8a740cb9d4a5432fa53d497ee3620b675b770ab29cb9c51a5a55eef75c7421b4e0dc2399f1e6bbe54690a88f8afc356b' as NIST_SHA384_test_vector; +SELECT SHA2( x'bc57c2803382d1deb56a146767ac80c89183382e01990bb5aa1d3d2391168ad6eaf768fb7d738d014f92b14d7f0595306eb7441622a49800edee0134492d82320707fceba902af2e0c95fe634a85727bde6f022709a09248752db9a71941c7e75cb1', 384 ) = '33a9b367f842da5f8852a0c4c94594db7283f491ddc8b1cfcaf24681abebb912bd44abb46c18035ef2e4b6e009939228' as NIST_SHA384_test_vector; +SELECT SHA2( x'cd23cfb189f7797d05244e2abb0db5d26d3ca0f0b8a5bec5ec2ff1fb1b70028970b894d6c252562169067d2051e272e74d3bc70cadee700912eb30e181f55107b7a3987bbcab7836bb5f86c811782d40a413a34c76f91ba17a233d9da67ed32b49ebc5', 384 ) = '2880eccd4926d1ccb4a364d0d2782af372dd22d2b99d3d66849aa04748687ae8e43898e01690bec09725642042442a1f' as NIST_SHA384_test_vector; +SELECT SHA2( x'b85559ebc62b0b6fa87e6a8aef273808037cc5036a7e59b54753d68a21f69a79e62da39530bbf6dfc6d7415f66debf73c2455c66c8d11a44260ab3ed0eed806936e1997b24ec3e79a827755aaa6ff511255e431a74791b52cdab110b0bf37860b05983c6', 384 ) = '452ac0db3a324b2e6e566c7455e08b898ac5d87b401bef9cd5f8fcba22679a63ba70762127d44ad4c54d621dda18ca4e' as NIST_SHA384_test_vector; +SELECT SHA2( x'2fa9d04bfab983c02abc09c3a30c22a4c0b086c6ae2f700b12a65d8df219118fd207dcb31d411b6dc7fc01b7312498064df3027d02c30561d220c7ceba22d5a859f96ad355caefa7fbbabe9e25482b5061dfc5a24fabd93a4bad38364c0a3a1d0ca903156a', 384 ) = 'be7f7895d6e7642f417141319ee4d2921ff385ac2821eb66f8fa4309de24d0986dee9040ec25a80f18738a7a48260374' as NIST_SHA384_test_vector; +SELECT SHA2( x'beeb5575701b32d3b182bd37bb0692d7b9b2dd43cdae7bf5576f5c29752b2cefc690327e74b578cb71512c5a002b465478d16bdb448d119a2f95e5a0df82696e9e03e24e61d371e702e8800fd1ee5fe04bf32f0e296400779d3836fcd86b3190cfae2d8e3f5d', 384 ) = '4b4dc610f079c44075d6b171efc637ae14777331bfe9cb8fbc2f7c0123b37fb978ed15adab3ddcf821cd5457fb996217' as NIST_SHA384_test_vector; +SELECT SHA2( x'e4a7bb1d0a354ced4b9fc7983c37002b06900ef50d920a3bcfcd132d0e0e95193130cbdfe83583a50f9622cbd5d6e7211d5d745824848ab764ed140fb91567f1c32cc81e8b242e3f69084ad7258fc5755cf1c92e25f9c24af55b663ec049f3db6141b7c43c29d6', 384 ) = 'c21e70712390ea83b033043f31e866b2c466d5371568104b00d788e6f1e66aab07a214484531e4d6293e7d38ce09539e' as NIST_SHA384_test_vector; +SELECT SHA2( x'2dbf241980678ef9c529d4bdf273c2d44dc5e36bdd5a96331e0c6464f9729102f24bf15fa41ffde16a232605605e6aa48a0a2475523d28d438c80fc1c55fd02cc0fb9170a57dbc1d539454fa05e08a4a83588b4f9ae99d0dc95f6a503d899bf00098a9546dc9f035', 384 ) = '266afecf77e96fb08c2daa5f64c0da97c7791e0ae23bb22e7427226c717bcdcd5aeced0d942d5d10990a4ab37a6c6cbe' as NIST_SHA384_test_vector; +SELECT SHA2( x'8bade35ccd57d6f8e2a3960cecf685c3787daf4b0f6efe360791ad219f00fe944c2b302a4d1eabf285077f148af20cb8fad802230ed88d2371c4c9ae52df7cc6b8e5049f154c8e041fca89f7db175b98faf45248696cdd0d245afc384b2bf54677e549054e68e6f855', 384 ) = 'b56d9b3094271468e18c7a59187c5eb1c29d3bf681c72941b13c30505ebddee94c004552cd766f69d734e2d82e644ab0' as NIST_SHA384_test_vector; +SELECT SHA2( x'd5d4c78a18de6c9070dba887c956e407ec435936f69e228f084e96e2414fd69ce910a249ef1a715796f3c01d6b42aa1c7a33b984c11dfcfae5635998249825358be6f2e769b0a8c70376d8f489f94cdb49a0e3b5231b9c503d46f013f850653d221c606d6de73a671f2c', 384 ) = '2c8050c6f7b38754ca49ea444852d09a41d785a05844755ad6d7b731016b96a9fac81394af2bf24a4ba174d5b5f5cb13' as NIST_SHA384_test_vector; +SELECT SHA2( x'2beec0efa2362159f8b84c089a0320ad88ded8e8f48d3cad0b4f18ec132bee71b6ece8099d6b10e6410cc344fe8b634d6af94d3ae4010bbc7070ca9ac2f50e9b9824a4a64dc1d928ab3ce9b60278baf476d0cab59d5c66634a701ea2a36675307a9edd0fdac2e2e7df4fa5', 384 ) = '833547cc4b44fa04763f5780be550528bc895ea70484fd53115993753236b514794a702b80bf50936b57093c5c0ffc28' as NIST_SHA384_test_vector; +SELECT SHA2( x'31dad5b0ae329c30ef6c36cc1d1fadf533638b9faae39df25533f7438a64384282d60f75024efee53b485e17f08fa43dd60ae2ae40d99194fba18de4772361942814c5082c2865cd2e71e4898ae72132b248b97fd022cd9cad2d0522d1dfd446ec3bfe5174ea5850908ccf0c', 384 ) = 'df5bf69680ba0d6cbbb7fb564f13e41725c0de4bd7ec79dd01ffc138d1e9806360004fd836276b8abfa73f740dcacead' as NIST_SHA384_test_vector; +SELECT SHA2( x'452faeebb6bf93bff2216f6788f66e2f2585cc300a5eec18bd3ca42eff30db90fffc57bfcdbdd05e11ce4937fde8a07f808e635bbda8e5a3bb6e91e55e877fad96724503d6261036c8f5f3d83fb67e0a6d2393fa568075a9847e22f2fc5ee3c8725921bfb9407acd7d60145234', 384 ) = '4c60377833fc16e4462001dd21a12ac0f0dd4f7f711f22595af6421f5f5f58d51e22a3b480bad1408f00868e9181eb4e' as NIST_SHA384_test_vector; +SELECT SHA2( x'6a253181a99b76fd9206fe4e25fc55def54d5a217339a16e6fe1150ddcfce291d4cb9267dc4f75b068b9474ca2220d37677c401992c92d187e8b9cf1c67bb0474f7d0e3b89d4413cf1925e20db53e3746e2be511f0dd6bf0444e1540b03901b5e423ee223892a24a367a8af458f8', 384 ) = 'd1181abb0c8d93a166551accff380396e5ac90144416766108907e9dec4c514219bdc7fb3db6ae68eff12bd4d5765894' as NIST_SHA384_test_vector; +SELECT SHA2( x'fc25ba418cf60566488551d34fc1e48246119bb0063739e1917aff244b047d986789a72f9f292bb228980205e57c45addb16438fe525d0faa807e0e8ca2254815f8213e1a4c35d1bf0325c7ee72ffc17f1d6fd76ebde47b51cc07db76a1cd4aecd5926e0058d42aa889c87c5bfa3b1', 384 ) = 'a4d8781fc35d998a62237b4344f8e1c26feecfba971adc0d7e09e887340cbe745778f714638571a813df1da0222e4011' as NIST_SHA384_test_vector; +SELECT SHA2( x'0f44a8a890cd290806ec8fd8d502fcbed910c4cfa8e1d25c1886480f020366374548ad610d63442855f39a4eaae04d0b32494ba4eebe37403cb00ef8a0250a2dc3b0c61ebca1a4b98f796cb2f3a135d3595b899329f8c4e94f4cbd62f65fa87293653b0726f01064bd654b2d39ac7cbe', 384 ) = '0040f15059fb0fb7ad066670f88f23fb2c640459ca4682547e1d910187012c5c2dcb0c0113b049b73499cb596b0ecedd' as NIST_SHA384_test_vector; +SELECT SHA2( x'7330de53e9fa3b47273102ec8b4c22841ebc8e421a6ae65ca9605362f0c6b3ce4c11f6dcdb77c79c3fa66f459eb5f7cced5b8db56f5f2a2a784f714a7775d9c333070ea3559e956b27e9af659ba381388fc271ba4ff2d3055c41c5cd6c1c57f1b17af04f5e57eddd68648af689fd06f18b', 384 ) = '95f2071081e32a72f1070ca99b9aeec8ee3a2ed9e5fa2d1cf5f16aa2bc98f5e0f9b5a6008cd2ce75e080d1b385df0782' as NIST_SHA384_test_vector; +SELECT SHA2( x'95322db3ee47d16157f4508f0d52f3b1c31b1afaf2b12e7d7162d69245ea6e7bba39b547b377c5f73e4649e06b47ea505fdf0a74a43bb579c391d4f215a9a47ad69d679a7bdd5aed4575e68117931a81854359112d7e507a4a632b8786c4092f10e4ad73ef7f768a960b913cb83e6d8c5dd0', 384 ) = '21289bb824ff515e45c237d1c79891377f04c40107e71e1db95a9b83b088eaea76e7a4f3019bed4a759f236b2371b76e' as NIST_SHA384_test_vector; +SELECT SHA2( x'845b92a5775471ed2fb6eae84e70bfa0c28184a8e0bb5403b7c6c2419e6912eb1005aa21ba62c382d1ae644ca9c391c484a9c0d9a85c8c04b4cfad7233302865726ec3d88ff9bc62d3c9ba5c41a104466f95f16795caa0b4e47de8f319469220519ec6101fa0c454dc0cd5603e9180ed2c4c00', 384 ) = 'a43a1e67855b8d2864e8c8b9eea2875f5ce21f33eb2ee9048e90a9665471653330df8f8b5209194125d8e12239c2d56a' as NIST_SHA384_test_vector; +SELECT SHA2( x'6a34a6d3f5032aaf62f4eedfa3038eda5d0efe173fdc7b2e935dc13a12337f81fd72085769a44b3fdb110554143d35e72eb1d16ae8feb78c3f00e6a63e60ee56165ca56971cb1cff045bd1e9631e26561a4512aff92b17bfaf9574179b389bb1de7be5d3b57f8536065cbb6838ae4a6f48512baf', 384 ) = '0026006d0a5b8f44291f4a8ff8628d8dc428544eabde63c6be478fdbacb6215a4f35bc4e1dc66dacd1020d3012bb01e9' as NIST_SHA384_test_vector; +SELECT SHA2( x'ba362b818e274a898553d9eb777e934416e3df2f238ea5c6e2076166cb3076b38270c4dc09117c2135e733925e3336195bc61ebaad6aa41afb7db63ebfdfca963e0f723abd903073f2928c7db9ce658b08b2850c25be782d162e9d9f5ad97d9ad6595c22126c0e89a59a0c35ee18c7a305ed3cacf1', 384 ) = '13229cc315e40b044dc9953a5c460b627113d5241885c37f26801c3aec167a3986ab60cdb4a41668c514d9df51a18405' as NIST_SHA384_test_vector; +SELECT SHA2( x'17a761e66e007e550ab117c35550fc0fc34d6bccaa7986e855c4038b544b26421592ec5db90d8a9620e615f346fa83edd325d2d1edbf876751665ad2a2fe30b700f749a1ddcebba40cd71f411b398a8ae33abf865dbda2d7b808f09aa8cb2e8f005edf7a834bfac9f70c9b767c16f92f1c1698b5a37a', 384 ) = '60044682f7c4736dac3652052ab1eb5d48a24fa94e43b2a5ce55db1c9e569012a392ee690d5e17384631aba65e7533a1' as NIST_SHA384_test_vector; +SELECT SHA2( x'8ae7073088b58154a7f6257657ea7e0615a7a0d834c60c7ade5cd4c5562c00b27f1a2f6fa2e382b26c0cb54e36188f048afe7d9be2da7a32b2e331d6a99d66503450924045b8cd7052fef162a0e7fd2bc14cb7845cca961f2cbade374b630d6bb16f76ccf79c2c3561b421db1cbf8f24c47797bd2afc29', 384 ) = 'bda24dcb1a3f7f52addd1baa0677918927656d7b458c11034f2166b2f8d72db2d1101e589541087ed9c72191260f8318' as NIST_SHA384_test_vector; +SELECT SHA2( x'7b0f2d2f4522e57a4d9237d8778644360fead8815db49c0b796c8d3161ebac3b4963f783329f99dabe8c5e2743f969511e9b295f4a5489de31b46783c1c14812c3f34a7e68835a5225e6a64fc1945557ad0d768a931e37ae316058d46803df3890c90c6a0f558fab2aa6f99a1bdf71106349a848619a0f43', 384 ) = '5341d46e6d469718f54e0ad44e5e8cbfb091d9a156eaa1d7695764e6fd70770933f86090701b0404c0a2c9944a49c7f5' as NIST_SHA384_test_vector; +SELECT SHA2( x'b98c44b9f1339dfd730270012ebcc5bc0c317aa777b4e5cb1cceb91eee342e0f6ef75c602afbe83484aae369b5e9ef27124ba4b98d85329c7e2347d6a479338966db4ac85f1189a91a057d9c1abf61fb1e9387e2a399f940a95e5f2ebad9238029a1d49a985dc886bc7b06436525625fb870eac8bfd781df25', 384 ) = '9bec1d2fd1e4ef91dc70589e4c50c06673b134720f1e0faa14a94c65fc6c3ff6c1934768b832da6d6342800b46c3a558' as NIST_SHA384_test_vector; +SELECT SHA2( x'48e12a838c285b198e16f759d75ef1361c35b9316eb710d8b1861c8d4fb4b7892ee30d21dfaa6647183b40536443a1041912abc18afc71257fff09bbe2a6e306bb2c58c55fe58674e3da5c16d7b3f13231db1a1c88de3b7583165df590868168d90634f774a164a9d93b722a9a7688ca4ed72dc8ce2517d1a512', 384 ) = 'b6efc213b9396389f4ce18e2cfd22733dca2be8c611ee5b94a9a7be1e8f9c78d7736b49520d8ba9ee09ce16ab76fbba0' as NIST_SHA384_test_vector; +SELECT SHA2( x'a34dbe4c6f53b1a60cba0260124ba5b3a72395bb4664bccdbf2a130a7fc10a3412152ac1e669f92e524c1e96d6c9c583a5df45046031000025fd8bc9c85210f4607ef06906c6acb6d95b05a94689621d863073146778140650c174797fd976d29672576b56d392e5aacd00c0e7f1442852006612e3a3be88485c14', 384 ) = '723f8ef0f28a234f8dda9f687ab51b2874b91a69ac7a20b107064e7b7c87c849f3ea39471e11ba43499d458e9044d4c4' as NIST_SHA384_test_vector; +SELECT SHA2( x'd800e0a7cdd96a08ecf6e65dd4ca095605237cc6970932a62ce9fa5d23f3503f0ec079536638cf597eb3590bb65e9ea4f1e1bb9f493eb4c101fc0859ba8688c7eace683b8b3597bf10af4c789d22e2287710e5f8ba766d754af4aad80b2dc18a5571d6e7a29a6a438a33e82af2e07aec80f92159527905caef170a61', 384 ) = '0e1c22ae4d049d23cd7b332359a246e199d4d9b417aae5695874d5cd9ed61d76d2cde81cdb2beac9c4f1d53e00fa0c7d' as NIST_SHA384_test_vector; +SELECT SHA2( x'cc8470e78492e4ed8598fd5f35ae83b4c49a37781bf066930f7ebdcedbe65f93cd8d35f43fb485f0c9e5c7f1b591b498b3f79fbdce4708b29f086fc8c1b7661585b1ea74e653f3ccbf5f4a963ba19b998dd3cbf8e2bf8b6f94a32edaa1d9b7f75bb7376c61b5560ccdcd2f56af28613ebbf662313e9e17535717a20b63', 384 ) = '3ff1a9007cb18a7e8be1e151ed4ec424bc1c813ab05a092d655d48e69a3cdcf395d204bf3979b0499b1cb18bf80bf8ce' as NIST_SHA384_test_vector; +SELECT SHA2( x'30b06afaba1d3f66f8213d8f52cf3bc3727f3ebeb0739271ceba1a02e655e413a0990047a8d4930260332771d2e345cbe87746d6df8a66acf9a51abf7263a41bb6d2e4ebd11d713f2768e80c65fc8474b7a4ef483c5658ccb716c6ba8718ac89d925bdee1c3f01a4b5882969f460204947cee21eae2191586fd7c6fa0bbd', 384 ) = 'e399f9c298dffebc1ef90faca476ad2c478879705b9d988f66f320c7c8459fc6f42ac53197fddf3b1654157e3874e8ed' as NIST_SHA384_test_vector; +SELECT SHA2( x'9551164bd1bcb607023b4572bd5c2e19e7bf9b4a28c08dd69d562c15cd3b5c2bdf4e908a0a35e3b84c4665535fa8b252e9b5ca8df3a31c809c64e44b0ecab7feb2ef5c14a0d4de3d5a48df61b90c2fe127349e200fd00e4292cccc337c1520eb76fd22f17de1d01e92095ea4b3cfcd4f0b04bf0a668f8aa4e7578bd4fd64bd', 384 ) = '4c41ea97b719f84239b3a19f96cd19e39daed16913d1d8767eaba572e29b0cc24bb864a4725d1f55440a5df7c35ee686' as NIST_SHA384_test_vector; +SELECT SHA2( x'e06e21e2449ad75182808668167ca41150711fd4a8c64ffb51ae29f411adb5f84f58c2ea6e5cd88259c16eaa5f705d2842f3957e8a7d0e0e1f2a028217875a6bcd556628338ad00a6999d3b68ef3a8cad6ce41c3dc253a1e3a000dbd58f5858d81ef75663c2ea932d98f1d524a0e6d3d34898d6a46c7ba71cab8b06d79fe1ea4', 384 ) = 'fa707a7639a6ec82ff72db0490409ef3e8cef1cece79f11600cecd1f7ac71c13b09975f1e2a768840dab12863bc69b1c' as NIST_SHA384_test_vector; +SELECT SHA2( x'8f', 512 ) = 'e4cd2d19931b5aad9c920f45f56f6ce34e3d38c6d319a6e11d0588ab8b838576d6ce6d68eea7c830de66e2bd96458bfa7aafbcbec981d4ed040498c3dd95f22a' as NIST_SHA512_test_vector; +SELECT SHA2( x'e724', 512 ) = '7dbb520221a70287b23dbcf62bfc1b73136d858e86266732a7fffa875ecaa2c1b8f673b5c065d360c563a7b9539349f5f59bef8c0c593f9587e3cd50bb26a231' as NIST_SHA512_test_vector; +SELECT SHA2( x'de4c90', 512 ) = '33ce98281045a5c4c9df0363d8196f1d7dfcd5ee46ac89776fd8a4344c12f123a66788af5bd41ceff1941aa5637654b4064c88c14e00465ab79a2fc6c97e1014' as NIST_SHA512_test_vector; +SELECT SHA2( x'a801e94b', 512 ) = 'dadb1b5a27f9fece8d86adb2a51879beb1787ff28f4e8ce162cad7fee0f942efcabbf738bc6f797fc7cc79a3a75048cd4c82ca0757a324695bfb19a557e56e2f' as NIST_SHA512_test_vector; +SELECT SHA2( x'94390d3502', 512 ) = 'b6175c4c4cccf69e0ce5f0312010886ea6b34d43673f942ae42483f9cbb7da817de4e11b5d58e25a3d9bd721a22cdffe1c40411cc45df1911fa5506129b69297' as NIST_SHA512_test_vector; +SELECT SHA2( x'49297dd63e5f', 512 ) = '1fcc1e6f6870859d11649f5e5336a9cd16329c029baf04d5a6edf257889a2e9522b497dd656bb402da461307c4ee382e2e89380c8e6e6e7697f1e439f650fa94' as NIST_SHA512_test_vector; +SELECT SHA2( x'c197f08557e421', 512 ) = 'ce69dec20db2e702f51c6232ab79f0890d6f82aaed54d8d0b15d8b02095957b4442a23b8d164be7b1f3669c7981b58ff6cd853149a625771bd666b19d8f0c35d' as NIST_SHA512_test_vector; +SELECT SHA2( x'a90596a7112d3b9f', 512 ) = '7c42d9b5f5a215db32cfbff9e0e57716e2e4b1a7f87a7bc8121229c6d1fe5989df3dbf20fc71281dcbeb55743bfeab9346e7feeeb07e3cabfb2aaf6cfbc02bfa' as NIST_SHA512_test_vector; +SELECT SHA2( x'3ae1953415660623c0', 512 ) = 'ac2501818c6d49f5f20534fbaf751f4d6f7288252298ea5a7011f2736200cd9721ff64ad6e672b08bcb2f463a251e9533c3f77465f4db3dd69be1d8b2c52937a' as NIST_SHA512_test_vector; +SELECT SHA2( x'2bfc3a1b9cdf3485939b', 512 ) = '59dff49557ca098bdbb60cf9934f038890df27431b81369d0fdf92d22ccbbd3a90bc5d060ab2e974af784872e4567d4e2c42bb6375fd9a4ed3a434fc9f23a918' as NIST_SHA512_test_vector; +SELECT SHA2( x'50f3b7d106cd77e9eec0d6', 512 ) = '814a68eca10f8861b7ac73d9d10a83d1d2f546dfe4c989b49fe9f17cc27d2897245b02f4bbbed4fda8d230534f0caaf2556126d69095e9bc8a4bf5eda4c351f8' as NIST_SHA512_test_vector; +SELECT SHA2( x'3f08c108cce3eaa5f3bfa6bb', 512 ) = '8b7acaf0d36f877ece73f9318b20828fd79d2a3f28c71069b61ba88d455e4928e9744029bc7f12b417700fd195ee49ef337877bca76251123dd72365f10e36ae' as NIST_SHA512_test_vector; +SELECT SHA2( x'1e1c81a3f9b48383e68487560f', 512 ) = 'e46861bf4c6b85af4366d6917b19f51efe66eaff16c7865a28d267125f8849244fa04b0b07f07274de2ca150a0549edb3628b87d4a5f73791de0930a702f604d' as NIST_SHA512_test_vector; +SELECT SHA2( x'b48ada2484dcd78e6617c724b537', 512 ) = 'a1886c390fdd1503a6659f615403d0df814a50bc27854836ea40c90a04680a092733ea4deb7edf2d8cb6a35cef40f20d7b0f9fb0e42305087cbd813aabf599a6' as NIST_SHA512_test_vector; +SELECT SHA2( x'bbd0a4de4250249c873f5b289159a7', 512 ) = '90953e45ef6c1fe975805ee62ab6431834c0934a81205d7e089068c157c9e2ddced188d869659457788f472f777273c76cb97a00807c83a769e651e11fb59f0d' as NIST_SHA512_test_vector; +SELECT SHA2( x'cae35cda11064e34b54647556c105523', 512 ) = '72ee08a00931be0bf39f68575c256a1c5661a1b0ed3599c684be4d1f4412094178294773dd23a6adb8f6daebed0683f5750a59602a7244a667d5d8f74cca5b18' as NIST_SHA512_test_vector; +SELECT SHA2( x'625656f0bf2e3f1dc2c9c4d310c650e016', 512 ) = '47eb9110c93ff62130fa987478cc72b403e019aee6a1c20d20a7d5122bc1ad9d97dbdc40346aa9c624054f76ac7fcefb72975ed946a4c1af04f82f5c137439d2' as NIST_SHA512_test_vector; +SELECT SHA2( x'c7b15d4f0ace943eba8c3af2f51913285149', 512 ) = 'b0ce8a67c15c98176b787459fe2f1bb5fb01d505930805c0cd9f363f24f5b8dc4a16bd4c9c8ba354f726ca60cccc28bc540819ae1bbe50f6b6acfeeb86f03e88' as NIST_SHA512_test_vector; +SELECT SHA2( x'62149e4dcc5b79f473d115629f2da21d8c4ad9', 512 ) = '15c77f321a179485aea271dfd0c1be284ecac543fc96a478a0ba93fb640ee708a6367c7123d35cd39be323c9beacb42c63046d7ca8f9bc749f800dde0e4d0dcf' as NIST_SHA512_test_vector; +SELECT SHA2( x'5b9d847b7ef0965dd053a4d2da3b1e1637e71095', 512 ) = '9681299a52f5949e08b35563d6d35e9f72169f84ba76b9c01be6fbc81dee6000134e691a9b9bd7bc8940de1fc7e173261683b5c8ef7b0fc5bc014714971b0146' as NIST_SHA512_test_vector; +SELECT SHA2( x'1b1045583ca3e8a0116521b9bcbd4dd7b613c34b1d', 512 ) = '888e6d7fea0c37b40ec32852879131cb0068c580e4280e80b74d204f9c90ea3e943fd27cf2b7ba3111340f8be68b5af89a4b5086de075de25697b9272e0c7278' as NIST_SHA512_test_vector; +SELECT SHA2( x'938d2d59a18fdf52c343b632301344d6a5d9c70a07f4', 512 ) = '42d70b8a3bedcc1b23f7466f34aac87241c807a87283686cc15cdffed68a257dce74bfa708cc684f1c93142cbeab751070e9852d368a378495e6ad9f8d27e873' as NIST_SHA512_test_vector; +SELECT SHA2( x'77d59ae1bbd09376bcc9f5ac46ee834bc979e07ca5e2f4', 512 ) = '9c229867a7f26055471f0174fa141f8a5e6ea6a11fc9efdc6cebac2f243467804cdc2e617be5a99e32e10a00550995f728c72c4fb25cb2b17164058ab4f7f3f6' as NIST_SHA512_test_vector; +SELECT SHA2( x'370995549d249c7eab97a577c09920c3df6c545fa885f4ff', 512 ) = 'bb607aa94d04f3a81b6b48fdae601e15ba8d43805f5a0b096b843ae6a2b25ba58b8b4f78257b8110cac1e61d27c01a2c6e3738cad3a01150cbbc332b8ad42dd6' as NIST_SHA512_test_vector; +SELECT SHA2( x'8a639dcf06aad53bc991d177c3d7a1661c96431876790f9d72', 512 ) = '5613c1ef219d4de9a3dd4081bb121671060616b3ec8b5cda50361c3d03a362e2c8559bd8cf421834109684adcac9bcfaf6d47e02ed3a39cd7bc2f52d0c81b329' as NIST_SHA512_test_vector; +SELECT SHA2( x'9f311495c97643482637b51790bd1e3086571f05c4a173ae1605', 512 ) = 'ddc9b2687ab1d99038032deec57fed9f19e69fc2c550d9074099490d1e72751fd95cba099f5dc9c303a3b3e22b949ba8a04d26de046e14339333cc31e78f4f7e' as NIST_SHA512_test_vector; +SELECT SHA2( x'69b522dae987f8b48864744dd571b39efa0051229011dc80b81989', 512 ) = 'd2f7740090d249237cd1acdbefc584b79aaccfc0e90e19a9f822f9e041e519928e5755a8ce91b4ca67c1355134e22a33fd5cad20d35f3fc58415fc12c6602acd' as NIST_SHA512_test_vector; +SELECT SHA2( x'c9260d92c68ff1c5cae8f7c3e98869b66f13aa8b6cf1d5ff70ffa1fd', 512 ) = 'dcc1967130f155cfe1422048b8a7b559ce90b5182528310f9fdf93dee9b72029bda0b5a9c474c48c38ccd63915fa60197a87043fd9c399117dbc4c47a4ae5389' as NIST_SHA512_test_vector; +SELECT SHA2( x'baf280aa618c46d1b4713d42a324e34fc13a8fc33e7703261534443c86', 512 ) = '40f3057c2e02fcff3915744d2a87a7cbed4d1ace0a62658694a5c0ada892dcf25202a5821f37f4842c4d631fb0b5795f3d252e6ab914556801ec99c4002c0510' as NIST_SHA512_test_vector; +SELECT SHA2( x'9f91b4d09ebfef181f76596bb060085b3323185cd786460f47d6bac72188', 512 ) = 'eda1dda078e4245c51e837c2a8360b1440acfe2d58f7f32ea9a63dc2105e80ec5e162a23d8041cac382de7464c166e7162c620bbcc11d14d8e9b3cc88692b5f3' as NIST_SHA512_test_vector; +SELECT SHA2( x'376549419a41ecf6e1776679cc9b87a4ddf70a9daf8880fd894a8a3233b64b', 512 ) = 'a971341f79a1081653952b717c7e18e2e2289a4551cec34eb15944f28abfffc7b23e6121ea52efdd4f5c615414d2a59df02392c4740d8f678a773f1e6cce2fe2' as NIST_SHA512_test_vector; +SELECT SHA2( x'5f264a9fce6c0416c3c399c6a2912a5f33125616a24a5b3cca3e7e16b263aee9', 512 ) = 'dadd0e04ad21dee2937facaf3671e0e026b0d947b377bab623ad45e94872ee8767c2983a10f53f92072eabf9fe3b41b12211e442763274a24f553c658bdabeaa' as NIST_SHA512_test_vector; +SELECT SHA2( x'6989bf1032bcbf82c96f7a140042dc9ba9cafb5d439be5c6daa69b5d28c65df600', 512 ) = '0044e76560daeedebf0b72b9be8a1437f5a9937e1f6ec8efa0bae0a490808e9d0d4babd3683b4414baf0e033c36b7748635ef9e745cd1dbab547af8e287d9644' as NIST_SHA512_test_vector; +SELECT SHA2( x'4edbb49bbf3acb02ce83c5cc7f83d2c386e873ada14976712b67277cefb3c5633a10', 512 ) = 'fbe69d13bbb3b9aeb8fb67cea126302adf2984ed02168a13519dca66e56eb0b189587b3b6ca9f14efd8e0a434db7b0caf337d62b4cc0752ccb942f3ca29b4596' as NIST_SHA512_test_vector; +SELECT SHA2( x'f0b1231cf60536f768e62f79dae86374660bde91a2e2fa94cff531e2536530406ace2c', 512 ) = '9bf2258b1ce68fa5982c296fec10c8343fdf5f995e82ea985b93f5437ab48e6615c7b7e9847c3c545ab909d5e54a6c3ea0166bb0bdfe838278dfd9834f5d25b0' as NIST_SHA512_test_vector; +SELECT SHA2( x'785db29d4a665e802b68a406cd21dc776ea84e4daaf5a1df93a4973c03f6f75a3119ca70', 512 ) = '6e659b4a07e3aaaea4b49c211a2720f5db8fc81d9749c0a8c0ffce189de896cd3dcc1a1b6381e3d82230715840d4c6ada741d64bf76234ce98b28b2afc96ad74' as NIST_SHA512_test_vector; +SELECT SHA2( x'8efcd15f3ff1156dcd64ad17bb1566c466429842f2cbb40a84941dc6b12b391037abc77deb', 512 ) = 'bfd174600f799e4a9aea0739fe5b4deb43baa809ee46ac27f59ab5e44d10f9a69c81eed24cfb1b4c6e6fd1c51925fa0b380e5d0cc9f36262d6e0c0cc1abd6331' as NIST_SHA512_test_vector; +SELECT SHA2( x'807eb33d10722e025b01739f82d7494d242cdf137f510df5d888db691d19470acaa2439009af', 512 ) = 'c2c8abde43c0c73fa9392e7b262d453a3c0ee4aca293dc866defe6e07c0d717319eb3fe6a33775ca5949b20617df03152339af03bf89634d9865f7f1eff633d1' as NIST_SHA512_test_vector; +SELECT SHA2( x'282cd5ebe30187854c5fdd6b1ab4e49143addc3dc0f12561900e6328ffb3dacf28211ab6b9dce1', 512 ) = 'de42e2933c0fd240d4025dfea77fa4763b55620230668acbfd2e6a6426c2d6446de71976009e77f7b3e17bac91259902f7dfe4f8142f7e65008b6ee2207268d9' as NIST_SHA512_test_vector; +SELECT SHA2( x'4fb6eb7cec250c1763280b41b215f89791137212a67c758afc867478b223a800f025a72f1fa63881', 512 ) = '99ece2524110af64cf89eaed97b520343a97c859e3873860c2077b06e33337f0886af348bbdba1b41c0366d8a09db1ce2fb726d5d282525fcd1cc45aaf0e75dd' as NIST_SHA512_test_vector; +SELECT SHA2( x'dbc0d771769987ed9c9a72a44a5728f929653d3d12c9efc7d1b109472962085719727b535e37b06b39', 512 ) = '1aac04e1cc461ca665bf12a578f8f32a6ebb7725686b5a6f461a5a035dad6d7565831caad2364f063ad73edcb210bb2fd04c2539c6eda849ec79baa934d7af94' as NIST_SHA512_test_vector; +SELECT SHA2( x'b8c17a3fd266ed0374f61c19840f3db5f819271c9029acabc5252a1bfd2a5d03002a779eafda73cff4cb', 512 ) = '4800cbfbe54fbcd8c012180ccd82bbcc783b3413cdec87bd236786ebcb40eb3ad23f509eec53b23c2655959a0a2c53e81b5f3177e6c57883c0e09b48a09050b7' as NIST_SHA512_test_vector; +SELECT SHA2( x'7ac3e7ae32d0677b28165d829a6b966b5fe032eb25f40299fe0735fd1b1134ead693ca0ef6ce88c82f3468', 512 ) = 'ebc398731a33113646c7c4dfc01fb0aa35214a2de32cbfa99f300b2feb1dbdce203fcea6625b7c2a7205ff1b08096b29b58581a2ea7326163a4f52cdbccd2b44' as NIST_SHA512_test_vector; +SELECT SHA2( x'4c2645d588b606782a6f45c3725d69d31a251115e6494cad7ca80c197644d811b648c2b2f94a99dcafcd5fd9', 512 ) = '80d1d9053acc378f88f37cb828d3140a16f10810b3a515af301dcc1c7f030d752599a5f437bcde5ecf288afac9e1fb6c9a5e365c82afdf900a0eed6517d4be38' as NIST_SHA512_test_vector; +SELECT SHA2( x'85ae73d64a09ac922396f80bd94d868a2359e3361bbe0fdbef3fd6e9d97f5dc05166fc2a81c64b29f93f80f4a4', 512 ) = '6a2ff2ef58640bc69dfbff046c6d8fb4a59a85dec77bf06346def8026dfa954e07992ffc364ccfe179e2949826b65db58dc53a05f61c5d6a279193203de9a2f9' as NIST_SHA512_test_vector; +SELECT SHA2( x'b63a627c6923e0998c8c789f56dac741fe7c567cdb7bd4ccca52a39fd001970a005dfabb9faad32f876b6725c979', 512 ) = 'fe69011bfeb12b7987a1251b225575448d22fb46ca08e909574b96a1611433e0109619cb4c1489e101283d7d2c2dc163cac3ce2416cb06dc27820818f482b3aa' as NIST_SHA512_test_vector; +SELECT SHA2( x'0261fbf7d72dfa185d1fd999c17e588ae37d6a646505e7ef03b581622228f9ccab7693b419fdc7fcd161390cb2d1eb', 512 ) = '29f146b6ca892586f198f2ba3f58c67d17199e34c19ac32e284047181d57e6bf4c176eb6ee084171ff2a96bd4bc312014351326ea3387e78e78687ee3127426a' as NIST_SHA512_test_vector; +SELECT SHA2( x'7486acd86f8813a2583ce981d1cc8602864594b611ea132b1bce9f1cc4a2f6e545cbb539d4b86217c972affafe74fd51', 512 ) = '65cf4354a97b963597884f00701b8d4399e9b80612c3410bb223ef4523dd9ee19ab348e8a849128377a6c75622ef06e844b2b758c4aefa5d28c46d6e4dc7cba9' as NIST_SHA512_test_vector; +SELECT SHA2( x'c33fe419b91191e51dc9fb32d40b43701e63d81d11e3918a460df9e1d2f3ea67779c5dff1caa80f07b3a09e71a0cca407c', 512 ) = 'ed5c3016c805319872023a70d900cc8a301738149ea83dc130a6ca19fc5348b2f4d7fc3b456d0cda749a72da116e6491dda0855ea7aa9b5bab9b7ce5efa423e0' as NIST_SHA512_test_vector; +SELECT SHA2( x'bd50e2fe1f8f39f96e2044def04afd4c16c01bb1ed7694bab5b2610ece66813bdcbd40f023f4b96e336b9a39cafc2713f68b', 512 ) = '729c1246e155e8b36e92a6fafcdff556df95e7c131c65df68e710b5f04f6552914ee5aa2faa33e8c5827e1781c5af5320f158cebe481d7d0ac54be07c865ba39' as NIST_SHA512_test_vector; +SELECT SHA2( x'5178db5a599b0664da75988433807d0a44a73d6e754220e3f948952e54c0d4b91a79c3e3fafb169bfcbdbb2d0799755ba67cc7', 512 ) = 'b3723d26e481feba3e3dbae2e36d9b29dd8636d34570d7ea3d6bbf8ce7a254ba2677107fad2decee62d8f27728d9cc433cee34e42b2c4f473153f697145684f5' as NIST_SHA512_test_vector; +SELECT SHA2( x'e42a2a5e142f98e06ec42f5c78684269c4719c3317a4c5b8c90381386fe69ae6b84ddfe495756d6e9da92d56af5b9eb0d973d5ce', 512 ) = '5f51ff37bb70ceab5c1f5feb33f4f6ddcb7545d22249cff63bbe1a57be8e0ddd7d86131306b599fd8bd5a044daf9bcbb2a8c80eef2079bbd377e0b4acdd408d6' as NIST_SHA512_test_vector; +SELECT SHA2( x'550495b8bf8bf10bca9a70cf0599a6cd61c1bd22da2e2def5935c753d9f7f896c9364ca7b26831c91a0afe89a83733f38979020511', 512 ) = '4cf0a13f66ac155088a8da8a344b1c4c62ef13ef0237966134345abb11dd0c456f25710ab13148510a6fd615e1863970e8277f45733b95fdf627a4321a48c595' as NIST_SHA512_test_vector; +SELECT SHA2( x'b6cc4def48738118c35fe4bab82fa61ae8efb930fcf428aa7606aa34e8c577f763455a5f33fc0722c9deb07ef9c6d3c26618560f3aa4', 512 ) = 'e04a1c30b76920518af66f5db87d7642fc1ef2b903e45a8215bf1a5b6de6772427d9b576329c28b3262ff0c1802dc0e6c7b2ac21a0df26a867abf509619c8403' as NIST_SHA512_test_vector; +SELECT SHA2( x'143c7d79790a56697dc803ec93e6c68f27f6761ce9b374bf6843e167e2b90e6f5ade347eec3166ac5e2cc3e6f7c9f0939445c677f82447', 512 ) = 'c9e076e1ea43672b08036e87afb175e32013da88408c92e5895165fe31a1c02d09c6246fe17e9e1696614e28b53ac0a6c50ade5f10949730b98d110c92cbd9b6' as NIST_SHA512_test_vector; +SELECT SHA2( x'bb9e6086c137d0c68e6ba728f8c516a65b3ffe303d58b1593266fd51fe2e6713fab2b4dfb94aaeebeaf6245680f3335d118cc4d17c3356c8', 512 ) = '1c0294a68024d098e7fdc14490a34dd579f47a6abd96acddca73a450dc608a840cf308a873376b6917e17c237df0ab76a736105734623e72024b41504e0ebeb9' as NIST_SHA512_test_vector; +SELECT SHA2( x'8dbe0cf088e68bd30156ebdcad3cb932a69bf8a11c36719948b04a7aa2f1da0e54ccbc57eede228c5bb96c5e1442fa7f93573e650bb5154c56', 512 ) = '77d81a877dab2228601a42bce6839f31b21e2b7964c308555a5462516b635e0f4d4d56b39778987c24b35f666b1667aafa4ecb3784d2ad130fd9882ecf1461b5' as NIST_SHA512_test_vector; +SELECT SHA2( x'2de3f31fb5182e1cef0f982d0e001be75dda7753d3877f4fe8718530a84513ac06f7dcf87206f12dae0138f0dd4a1b52dd1a7df5d6c5f271133f', 512 ) = '588da105790cd974ecb2988ac398a72ceda9c5bcde026877b67b21443acb4434b78923a57341cb3da465b44a21717c42603bd904e2213b562c732342e26e61aa' as NIST_SHA512_test_vector; +SELECT SHA2( x'c7680a02334453cf17fa4cd27cbf668e6cc12447aa0d710aa0b037ed991c2d9830cef104082e5683beb7ff011c572d899019d50bdc01f65c0e3729', 512 ) = '94829820a81040b549e89e7df9ac1d99851d57805a95cfd4044d09432f9f3abc803580a2397f38231ad391a1634c2f879e790f6e85045dd972dc080e3e7bc1b3' as NIST_SHA512_test_vector; +SELECT SHA2( x'ab1d93fdd1d247ad983728157e634612c12d6d5223e204aeea3935ba2c884f9a49376817b97546f2082b80771e2ee056c4b90caf641a656c10ab30d3', 512 ) = 'e7e13c2abb76234415acaffa97ff804f22f20c9ef692044a00d4d49bf656963ab0770d19640081dbc9389d1382bad4fbc3dcd47fb1da671d0d046c34aed476bd' as NIST_SHA512_test_vector; +SELECT SHA2( x'd3ad500384e30bf680afa762bbc558be9f7281ec53d51d113d4b5da5c62b92c65db44ed2be43c63474c97b7e9c7d1ab9edcea0f8f59cc134a5a78b5310', 512 ) = '54a49b06b483faa6d34a8e1ea7ff5bbc44af9bfceba30f62993093e0bef1134ddef01355b04b5b7678f8446b6cc9eb017d79723de360ff9c6a0adb3679cd03d1' as NIST_SHA512_test_vector; +SELECT SHA2( x'9c542e4dd9a660850dc22a081c07453f233148f117726e00a9c59a536d7f98133c26a61ad78733a8cc03e6589e2ae253208b49c422c9fe8c4ff2b036560d', 512 ) = '8377f49071ee63696d231d960fc8f37f4a7751ece2121c4f59e00bec6a38f19148269e385a0d66b10246d3837a7eafd259dfa827fa0f961ff4baa9008bf81fcf' as NIST_SHA512_test_vector; +SELECT SHA2( x'7bdee3f83c1af1cb0ffe6f1235d44f88d2436f234f211b8efd88d4dafb2c4f7159ebc14b7da65a64c6500f6d70449dc1b8dccb9c403fef87b47ab317aed319', 512 ) = 'b908c46311cf787a042a54756dc751d995ea57a76624940f70a18ae369ae82c9ce61ff819dbe95f2dab0886718055cb3a39e39a969277205290fa090d3d7fa6d' as NIST_SHA512_test_vector; +SELECT SHA2( x'095c7f30824fc92858cc9347c085d578885ff3614dd38ee7ee94a0f44072c877047ee2ad166fdba0e744c3ed2c2b24c9d8a2934648dc84d3be666302110ae08f', 512 ) = 'd5cdaf83bb4a27eaad8d8f18e4bee9c25be949a761a0fd0fb2284cab143cad60beb5688734b2f81e9e2d640b425fd32ccb3d20d02d63c2c94c03ab3d9e7d9b4a' as NIST_SHA512_test_vector; +SELECT SHA2( x'baf66cf83ab8a22878d02194b7c56599717cd3db4a594a8942a7fce32e3a7cf9695217b5c7c3681bca5327d0196442d92dd32fa64e1f804fbeceb81d340c5d4c8b', 512 ) = 'f63022f528910ee310028dfb0782db51b79f4b8063543f15eb008618c50f9b8721603f7381baf083b34beb01cbb8d985db3b8e1eb53854ce3bb62ce7434373b3' as NIST_SHA512_test_vector; +SELECT SHA2( x'aaa20338001d524041919bbb13926d0729a099c27c599598d8ec22599bd12d4fbab8f3ce04bf690cabe7db3300c9d3b57e853ce00afcc7b2793f8eee5346f86fd6e6', 512 ) = 'af4a2fc9681166fe70d4f0fb8d219d56a1f4ce532a7db8f94c4432ac41e370295977dbb0c4e356a8d2b1d791d513029f96d144cd92f45bd4230cda84bfd04a69' as NIST_SHA512_test_vector; +SELECT SHA2( x'8cf929dee0a854f7071f7062c911338e298655e0462f97a983f60455e6da77e5befa5d9f89efbc03145f7502e4cfc66bd5b912a601dfe5a4e3de3316bd06e0dd366985', 512 ) = 'f499e9f1b19c614857b63bb44c095cb19b7cf48c5d6e0a6eb15cbe0eeb61e0bdf7bf0f049cd3d146748196718698248360a174f878113305c6633f10ddff0b8f' as NIST_SHA512_test_vector; +SELECT SHA2( x'47b8bae735771d17d740f537bfeeff1d4012d80379e81d238e89d1843961ff1382e4a0f5ca7dbe1c0ec7da186a008c30dcbb69b24bd42987c8a90a0a13876f1b6163cd6e', 512 ) = '6869157dbbb2117c0cadbd3402203fd7ccf22acb6a85b9efda4f3d3f54903a65b39260bcf8fae978f1559492113081171b7425bbd15b40a2a1c7d2557fe7cf44' as NIST_SHA512_test_vector; +SELECT SHA2( x'eac31a21d4943d32747d63604d09b9b29a97f0a632b04024af98adb1cf2389e51bca3a1fc6fe3d77d7bd6bf48b627b00f4c1c918e77355c8156f0fd778da52bff121ae5f2f', 512 ) = '149e8b8ff19a532d22a72d9d0390d51a365f0c2fc288acffe99efa5cd21c37f9d39cd307faca020df2aab996fc6b46815133c52a87a3b1ae350833e3e6adb1ba' as NIST_SHA512_test_vector; +SELECT SHA2( x'28cf2204c192776c904b1288b5b398f99c9189cd6988c4f69a334efbe7744fee6d085d9e0c5ffd0d0eab672509388aa606fb5063e26d23aef59ab011f274eb3f0e6e53496546', 512 ) = 'a6f42a3755bd9940d2f464b2efd42e26e7ad63b2ce26d39dccfe73aa7017e0d5babdc6ca8b8b0fdb27f014537863db09b92f100ea503490e4d1c7a4618372777' as NIST_SHA512_test_vector; +SELECT SHA2( x'6efc3166fc8a21022171a50e793248b418dfe339c180728058b420d09a9ca4d60cf4d0ee3183679e00b63063958848b127a4bc353ace575d167fb91a77cfa9e58698ad0008d9d7', 512 ) = 'ce34cabc906f67243ccd62ea6363f7ecbb7da3c8640799ddcb5783946d54d68f98e743b4028c5800a7716d524b171920b3b3fa95b19991032622ff9ee90771d5' as NIST_SHA512_test_vector; +SELECT SHA2( x'f278f968b3b8eac25ed38b4ac7d605930510bc8531c62eb06a281de11c84f0f382ba57e86af02e393986a4692e4c9ce0ebf353f731c24350eb8a48686edc026fff797a57950a082b', 512 ) = '08cfdf043c67b265027c343e05e188a78646414f7f2adbba5fe0a9409b8ce173edc93db26e0e79c191c909ee21c7307ea7c582be30d5377512088c791ea20bd6' as NIST_SHA512_test_vector; +SELECT SHA2( x'816958892728429100099fbfe5512a367cd7ee2154c6fe99319f67c9a47d6350df9dcfe6c81ddf434c04113df6835f30c07bb9a2293eb227879a7a839f140c0f7371a85e5b7b841f57', 512 ) = '901313c1af212cdcb56cfdd1e2642c0387d6152368a8150cfb3ec6758b45eebced1a50dfbb473c9809accfb575e1eb653a8138080ae08fe85c7010ba8626853f' as NIST_SHA512_test_vector; +SELECT SHA2( x'a2a1de6f0ea927b132bf987abdaa725b0e1e274e46830e99a2f75af608964df0dff9a99024fc6839bac5acd10202f921ac71a27fcda681aa3109ebf5f21ee3a849098ea3a551e844fae4', 512 ) = '6985aae9d3e97d29b4ba174b4aed7abc5beacc4946a00e6b0921f7978b8cd62fdf897a9ecf94ea2e053bb732f2d6b1a44c1eff9c0ce43bd5ad2aff41121aa12c' as NIST_SHA512_test_vector; +SELECT SHA2( x'e17c9c1af29e6c3c10f97fdde3a35cf4d37157176fc711ef10ae42eab927b62f42c096d7b664e95af9775a47ae233c3957eccb06be8bb53995f9d9c359ca4eed7cbca791c290758aec180e', 512 ) = '07d0426622c4f5c5dadfd3978fe9edd52b90bd8a9cea32eec6dfbb5cbbaa2549bc7ff15b8568ec716bf315e28b108f35274e4d4cba1f97e7dd7d54d63f8128f4' as NIST_SHA512_test_vector; +SELECT SHA2( x'45527df1eb7033e31c0733d7a384c642359a6118018ad43488a2c5faaf035d3b12a841589ca4c4ab55ab5b227ad4512dd39dbbdb4130af4097e5b119aa076eb3acdbad08b5de822ba34fc4e7', 512 ) = 'ac0fc8acd30a0c7d4e1a3f965d157af94c4c9d0fa172ad1d4e6b200cec02cf345f0318cc11aa2c9de2867f7c6768aa75548c30c6ae711a6e68ddd0b27be808e5' as NIST_SHA512_test_vector; +SELECT SHA2( x'eb41a4fa67ff100792cdf1b7c3b8f88dc276ce1a2c3f9d7219dfd1defb0820d0caecc71c5e0b17641c4a31d4d4460e10eae7c26bb438015a2476e228a767e3eb4cec2db629da1a10fb06f5a50c', 512 ) = '382ce23a5bcd95acfb9dc3c9e6962a8ceac1512a0df09ce741fe4c2890e268c637826ee229869663dd8dc9cc83ca5802aba02a769a667dc0d180a24af90dec7c' as NIST_SHA512_test_vector; +SELECT SHA2( x'dde16e701bf40e42cbb1ad213a84167da405963befd455b699c7e504f0481c7a81f81f72d299c04b542a0ab293531920b00430a4115a05e357c25f5d9060e3f2aeb22ba43970199e40b76b769567', 512 ) = 'd202fc7a97202fea9fdffda2f7cb874e2054c7d6747f904d198cf8d1831eadda653fe79198fe264ef88e480ec731af47165b080ea6078cb7c5bc71dc3fd4c65f' as NIST_SHA512_test_vector; +SELECT SHA2( x'a530841c4cc46eafe5435317a3651d69db7aeb1ab75062092f5743c0350343f73072175aac4fce8d50f6636c10d99397a422ec2e389a27d965c9b70c605fa28971d29026a74921d0cbb984d0924d46', 512 ) = 'f7cedc950dd26e26b087940306a92f43f77ae039c34144aff8c5c2cb01214f18108f913e81d621e45a53e035a7f578fbe2d7831bf39c71ed9e7694d95d69efa5' as NIST_SHA512_test_vector; +SELECT SHA2( x'd7289cfbdbb66582d93c8d1f03f9e3b4c57955c69a18622623c2d2d07afca413c42848f205040ecb3975df36a0832b3059a42279323d273abf6681eba9ee5474499ed09275c2a97d9ae6c7c80bde3e88', 512 ) = 'c527bb959f9b7314e10b83a89e22d52e9a47437050b67bf47be7805eb151e5bb08e3ecf4b78d3fbd40c115dab9ddd27fe033cae82e259a880872f74413d2945a' as NIST_SHA512_test_vector; +SELECT SHA2( x'b6aa7703b126ffbcdaee16664e82ce20be9a90fa0968575a101d1b9fc6ae910586d811c8aa62d78d59a26ffda0426bb3c4445758d744ef0c8afd8f08420fea826e00ffd1178049d2b8f1368a5126db0db7', 512 ) = '0b54fd35a70ff3abc587670afba9c671c57a50bc6a2cdc2deae2a0c98495adfa4559519184f9812c844eb3dd4621facac85de88fdb2eba9fd38cbbea697923a8' as NIST_SHA512_test_vector; +SELECT SHA2( x'1263458e97c49296f48ed339144f682a6fefb11b824c20807c2192953b2cdfa27690af7d3c7890519dfd469fa74a628294fd173741d148dce27ae578f5d1783c7431fb094f21ed321933a582012ce5810564', 512 ) = '4961166aacf83cba8b42614ac5e699788a995462be37019bc6d8281dc84ff07a19840d9e2e3f1fcbd995903b537de325087d81a85bee94430d96de56c2d6a275' as NIST_SHA512_test_vector; +SELECT SHA2( x'caa784bf0dd2605026635e8b19db46249da32fe523fda345133afe3b592e175420e12204dd87d53990b2ca3647c7259fe3ae76d01ecee173cd397c526323f869b79984400770ee783c7b0ba36f015a59ad6de4', 512 ) = 'f6335ee270b1a6795528df400d0daec52eddfd0571a2c2c3722047fc1e08498263d43e2900150fc2d098ef1b72c6a28054a620d5f2bfde80714f0f07093cc14e' as NIST_SHA512_test_vector; +SELECT SHA2( x'e1b77436f6d15a209fdc68a636d96cf38c6850d388dfe369119ddd242e9c1def6c4634a8818a27d42e2e71916a6748cbbca721b3e9b6766dcf04c709913edfb5f41f5831098961830dd4bfeb8d661219cd835a9e', 512 ) = '84067e9bd1a74088edbab9182a39a43e8fa9669a7918a5dd2b0dabe0daf2395b6d41ec828e89ae9ac5e63f54a0dbf7659c13ddc20d2d3d33f30fe5d1747ac341' as NIST_SHA512_test_vector; +SELECT SHA2( x'cff920294053417495f5ba31281eda43e264ef8bad555fae2c5ff419a9ed78434fd3823299ec8f410a0154201fed531c82ffada180a037fdbd36cf662648f13f28e285971f3bfbf312959a4d9d65155c2eb4601675', 512 ) = '7a1d2a43df8e5f2521d93269d5fe069a555e460d0fb72bee3795c018d77ced248876f86f4e668756f035f2af5fb23c78529278c2a8d773eb060713c450f94559' as NIST_SHA512_test_vector; +SELECT SHA2( x'03a0c0668e3984b2292d9bd4cf57051ba2240b053b9a2a5f3e9954ae316158ce8e559ed916ff174b69537463d43896cc6a44467c56c727dd6f0ce82a0ddbbe1c1b4212c76e9677be55b4de7e728c0d0ac8e14dd2144a', 512 ) = 'f1c616ce75361a068fc44e8626712dfd535dd37a0a9e8b3b1dfe9cc7b320864664b96193c3728450114c0f4093595202f82b7dd2a37d4b55f01ac24e6f108366' as NIST_SHA512_test_vector; +SELECT SHA2( x'814c6906076a3a531d6cabd94025549fe78576b671bd8c785ca42212b75aea40da2b0d5854b6bf8a254e16662ea01c9ee596230e4d7c58f926629b9660c18ecbd661ec3839791d774a1907a24dc52616ba62df77355711', 512 ) = '52d5bd5dad0f1340fa3213ba2e94db95ac2bffacea3647bfb94163427fe7eebe5fe6f49160776da6cd9670a617aaab39bb73c5307424e61eb2cd03bdf186eeed' as NIST_SHA512_test_vector; +SELECT SHA2( x'4edbba7c47286bdb1343da9127a036624ab9a42cec0e3412ba6a13d96f670392ed34097a8c96651eb22dc7c3a4f9c0049b1d77bd1be29d2880fea346da172a81fa83bb8fcd52b899e98e929d66c13d11efb8e1c91887d31a', 512 ) = '036b62ec6673ed63f225f6feb88933809c32edae2292925fb888181c1a0b36cae40e22aaa6db0061e92001e63e4e25886c1d5e8d49b84b928161ddcde950ad64' as NIST_SHA512_test_vector; +SELECT SHA2( x'267b4d93feba7d7927ea2def7a11994cc35a8d3dc50e85607fbf130eaec7817893f1b7f5f675609a6b2a490cd4f70992278ae76e724df86e1c9688be6d1fbb0050b5749e5834765f02b2ca393afb6067203ef9bb0b054334ce', 512 ) = '7e2ecfef69de2b9fbf553e274dfdd983bf712ef581c4996c0e80590cc7e4e884842561a4690bc5e7c3b5299565f9374b0c97f8e966982a5b15699113541ba784' as NIST_SHA512_test_vector; +SELECT SHA2( x'ee4ce14bfebdec4ae1b84d73bc62e143ec3098f5905a1e99478dba663be176515e0a80dff3d2d03751c70b7be330a758744651dca9a18b88cff19aa7d7ee9fde9f92040374851932d4d9ff1e78f7c6a692d9d2a9537a831ab08b', 512 ) = '3f2f168af618dc5fcafc8dd644295da4a022f975e3518ec5d1046a3e9ed16756dd5019e98fb85cdea2abf5e47c955c064f7bcdefb02d49c1f92b151c215217ea' as NIST_SHA512_test_vector; +SELECT SHA2( x'e742e8c107336988161ca3343f532b59df8e6c02dceb9ce03833efa8e65f0ab6dc5bbaf6690be604c98cc292f7bc460bc2fcdf752334649cce184b6d07aa1da0b700279abf4873918c09f6f1ebac0bfe1f3a20bb3267af0b88d071', 512 ) = '745f4cbc34ca7727bf2ecd38aa24126e0566eb0ed633b5f3ddd92ecd74fea28059fd5d7b0810177f22be7d776aba3f63269328b7451b336cdfc78724c6c329b4' as NIST_SHA512_test_vector; +SELECT SHA2( x'1511d4d2b955be39525983b9a9144e9f60eff6362928d3493675d1e3f1ebc259ec1df98a1b881466412f19ada882c5f9158420fffb2d5512ef0dc1e95c334aa1784df2057611ab0efedb6ea6da9787b1f2e1334e7a6b6c5a6a9f0437', 512 ) = 'd9bcfb54e8dcea3f8d6c7110e7fd397e52d6d62be2fa758e30d79c7ae89ddff0447e01414c7b9b6057fa1d70f064c27da9f5c4122d46c91ee2c1573ccc65c24c' as NIST_SHA512_test_vector; +SELECT SHA2( x'5a040538682bda120fdc18b072408abd5f7627681d43f0b865051c1faee97353ae5ef8591dcacae2bc7b4cdb96e0844085f9c131f90c8147f59a91285a91765968c30c5482976ddb31fe148b6ca943b4177aa168c93828d2d2863ec97d', 512 ) = '45e61293e86f22b3a3f24f21a9297dbfda1c414d691606599030816332a0f73ca3e7f6d6cd5120e1274e91427e4305cd4599d60f8d2b3069430da6caf8fce103' as NIST_SHA512_test_vector; +SELECT SHA2( x'a9abd6f42a85681483904d9a94b70dfec552f073495865bea4d0a4496a8993734a0be62b4ccd8bbd57a945ebf68c97405b72e3a1a592d3255ed5f827488db19959644f9a0492764bba54c6dfb199bbf2e4fed21c5bfceec5ac60f93bc2fc', 512 ) = '7aebcf0b69968dec55525b90722e5cfddae97e4bc0dd6630a88c24560ce7f6dc5ad365e1394c162b1fbab7dd159fac8d10e036e12da9102b36541486bf3a9273' as NIST_SHA512_test_vector; +SELECT SHA2( x'55218435049cb8e9346c6e9602c3601c9fa5d2bf0c9c757d21ae8a9ed48c4a8eb80c86e8c4d98bd3566948917730b355611468553f209321337c11339d9dd2c79bb982edcc7e68dc5a038e8937ff2278a6391cd2fe3f21b9aa5ba7d875c35b', 512 ) = 'd78f40b72a42cbd0309417deea33ea3a317869e5242a6ef94aed63b96bfae036acdcd5144761e5077f8faf79d10c681a7c1144de553bdd9b742eb9aab76edd2a' as NIST_SHA512_test_vector; +SELECT SHA2( x'e9a6317e3bc4d6cdd5a0833e52fb48baca16a9ba9b6c8ca469a0555763b54f04c87d4e41aa549258f30eefe5a52d2ba06657a8773b0842e094857b6d8911d6a0636280025e56356fade362b4bf4c875cc19be0c6644b447be0454dbf390eb966', 512 ) = 'b79ba8a1dabe9a89a383e8bb61750b4b84c90846671129abd1bed826345d97127c406b447664e3cf5305b5709baa29998c0f74b9f0038965be53a7620917d9c0' as NIST_SHA512_test_vector; +SELECT SHA2( x'8d3108ebfbd2a6d248234e4eb76af905a899a886bcdba67e3a6d0e2eb2af8e1ce07b6a09d2b5c4244d231a7d6e7f10bc8dcb701366e56f717b5b32f9b48090b249c01a80e1305853fc69569e8e975f0beccd096dec9c72f548e3c8aa44e80f1391', 512 ) = '6d32fec68eba7bcd27a1ca2395e582add90bf74c8cc0926249dcfc333240cbec609976134c541796ff86e6c4481960339b06d00b4a4c55b423ddff52e9595be9' as NIST_SHA512_test_vector; +SELECT SHA2( x'71599aa11c29f6629aacb58f1478e19988a504746cdeeb4894b7aa6a5541e08aebdd3c2e184d405f0e1145a18ff0c02953d5c34baadcc73262ada8d3eb09f123b9a25a88ea308f8e29c133dcd2502566569a02e4e22deb823bc288d9edcc4c1ea451', 512 ) = '30a38eaecdf787a4a2bc2e7e31e1c908112cea639cd882c0e88f0b3b8c131b5d791028150a3970ed79aba63421fb7735c068ccc3ef2ce500ba574f4e0515c360' as NIST_SHA512_test_vector; +SELECT SHA2( x'c436115d8fa97b11dbca495353e7a37a82b0816c44e3c1647a2977f2023b8443e7486aa2d49b5e3fcf799f2f234807b59ef7dfc0fd99f8b4a553f76d9479f18296f438c6bce774150a92f54d7076479afcb907f74dcdf6f14b4d4cae15274f2f3b0023', 512 ) = '9a3bf2d701b6817baea83cd359257da3f6eb8cc34bf5169ec22a1dfc33001d6c4e7f866c2fb863dbe06106471437d0094215b9b17e7e27e90bd2eb05006e3d6a' as NIST_SHA512_test_vector; +SELECT SHA2( x'5e2a3dcd2f860045cce291de5f501048a724cbacf9f1604085b4221adb4ebe42ae381f0ad7728ea29cbc1ee73309477c8231d11c29e6f32ec2e9bd9a677db3dc751dbb57906a39ebe86778c9bae84c861948f56fee5b471d3ea30849abc79ae13e40d95a', 512 ) = '2828051603cc729ddc9feede736ca9f352b69ab5a916042cf1f9f90cf1d529d7dd0577da13f11f4f7bfac4c4f2d9a327d4c9924ccc93b8c14428c6824c939a14' as NIST_SHA512_test_vector; +SELECT SHA2( x'e5f4f4d833fc49da6dd083442214cb70d889efbefd2efdd820ac113b61f06bf3261ac4a51096e2d32e886b5c706ef7425e0168b0095b7e3c425fa6690b5613704bd61040c6e895c34b6918632fb1a5cdfb7331f462e42c597620558b1bc9d2e9bbf180af3b', 512 ) = 'bb66ae70b600735d0e9098f12fcd9aaac1f2141291e9bf54bb8e0013fce25ac1b878dfa5d0378814d84dd8892391da402891fbd7bcfec344ffe3272c5be7be66' as NIST_SHA512_test_vector; +SELECT SHA2( x'85c2ce900c00d962f759c2091dd6c2e9211c36f7f7e348caa3aaccf444a968925208f822244e3095b51c83a5a71b446988330c2755fe5b693c7c8253a608c033758aab5a8aefd12b8bd6a071e38c83f60a3b4e51065edcff3278f6b53e0677f577b2aee048c9', 512 ) = 'ef50d18489656f7af6148e897d4ab3e631f0fd4f9fbd7f232a0ee288980b4cb10c2a1f890c77d13b4646ef133bb8816998dc8f88d5798ec7515f2c8ce607b655' as NIST_SHA512_test_vector; +SELECT SHA2( x'f7f7f3bc1615653f479acd63042a0d15d636a071bdd02433d2bd156f2bccdc83ff6708490a68db91332e08ce6defbb0fdb4fda3137328a5374cff68ba2074cd713f40757bcc474b9ddc86ff4e5c86e39909ac22652f2193ef87c46968d2845d07ac6794df2d239', 512 ) = '11eb07f3a5c143026a7824197c02e2a52281fa82e15ef976a7e63941e16951f00321f206f09c2ebc0bf6fd00bb879df894952b98151b0e8cc27b34515e1bf4c0' as NIST_SHA512_test_vector; +SELECT SHA2( x'd12a258ef4cc5ae35ba4e63aa23165945516f464aa098b966feb8ecf41389ef7ffa2b5f57ef972b97e4eb180dd585f530b178dd1beb6c22fe7b6967de4497c2bf7fce0cbf7997218454cc13802040b3e7f1c53f3f53bb5d67779f76124c3608ea180cd9ac7740109', 512 ) = 'a8e4b47f67f1541c7fc0f2a13c5abb33a1d4a5d733d794f22edf760b146485ac53bd03038ee76e322fcc23667c4c209f6c61287a8c9c044f0c9922752a9efc0c' as NIST_SHA512_test_vector; +SELECT SHA2( x'a71a304ec61763764ad7881d54fe7d394e658e7588253ce223f23ce92fabc385102e01af2671eb19adcf3e1ee19fc1f9660bca36e8200367ff216e185521a7050ad06a8a5796545a72deee74b2b5e753f493a1653d78f0bfa13b1e0f631f32d25da871c7a2ad26a363', 512 ) = '2609ef79ea747fe6b00a50a2316c9d3ed2946adfd71cb3b1ad1262b3911add77c2bc76d121444c905ae865703e208bffd759b222b42b02cd13764c04298aab15' as NIST_SHA512_test_vector; +SELECT SHA2( x'63df67c7eb2829ee72dd694949d92a24a0622c8f54ab6003089d9e4877d79a9508f415faa40c50fbc47dc67eceeb1ae7a1854f816e8a3720cb0c2e0402f50801af4747dd8aa891fa811d62340a16ff0db7abab080a251c528cc030a719afdd747e6166394603d532d046', 512 ) = '42463a62b1c92b3982dc4d666f8bf30ad5b3f383fc00ae3e65b5d4787ba0ce9f0c5e6d4d6446f1f480460fcac237dd1d82657b14dd8e4044954321ccba7f478f' as NIST_SHA512_test_vector; +SELECT SHA2( x'b95900674bc78a86f4f9b2203b2950f6eac9a59665804c833b6f6e90fbb8368d4941842530b5e607baccc444becddaf8fa51eb2d6149b4fcb64220f55ae8bac263c96706ed5c558bb5422f9de4cb93b128bcc54b0950a51e7b7cde74af7761d02f7a12d22ac5c05c0ce25b', 512 ) = 'd420448ee2c6eabadfce5856fe93383ef559d144c97349bc0af48b1c19a926bb40b62d3cc9334804e6991cb073baf976dfb52ddee24b5ce36d1f6789eed83574' as NIST_SHA512_test_vector; +SELECT SHA2( x'fe59b2da7c365a64901f6a132c957105844578ee0a2c955f9dfebd49fdc9dabd83d51df50fd096984127023aecb7e422c7a5d751668a22c069d48de8f46973875f8d19a22e053ec6437cf3945227ad7d96a599c9c2292fde3bda0abf847af7d3f9464ce8c11e7b77fee6e629', 512 ) = 'cc7cb1a4a616ae4806e48cbc176542a4d75a5b07c25d9324c124db13328e656ccd1cda4f946f0425c5d79c1ba165b1a12933b92f7bc3296fe98c72b15cad2d51' as NIST_SHA512_test_vector; +SELECT SHA2( x'71f7ff4ba87d2bcb5ff81a1f42f47756f5189e6b5458011bff6ccaf41680c2af412d71bff4a8872af1397a980eef71a93893618cb8da75ceb5deb46ffacfde3bfae69657119bc61b0d18401fededa199e9057be6b2d9b366fae3278d37569437a40cb83c89c0b345bd7db3de69', 512 ) = '31b446c44b0aa2791cb7ab5834e4b8cdd2e3c5b4a96234b338c7b9431dab2bc532e4d71c7f84f07372c8a3f08feac37d0254cead9a9aa619d312a3c006992caa' as NIST_SHA512_test_vector; +SELECT SHA2( x'52b5a7af72437136650e64a49078aa831d8d715c46364c88d0b0d543d53d9802c71a2c07b2b0a332c10e251a0497d75c70f80133285e7149fbe51acd2d5301c67a065aa7582bed237d31bf42a17defb58560de673446925488305d9ef164b9dd726277b7ec1b19b29f5e7c45ee93', 512 ) = '02bdc51f3e4e129a4b21347d835b3611165424eb6607440c816979e6806e27df12c50413740b1602da26db7ee3e55e5ab4a62a8eaae24ef1c68d1510fc824932' as NIST_SHA512_test_vector; +SELECT SHA2( x'b698108304a44fda03e02fbd13bdaf3ae1c7786de61f7796312bcc6e678ce3bc0850e023f369413e2d5ebeefde4174f39ce143baec4075760648a073d9b9cda64f66d988d2a11c250ff4496ffa1295d9120c1c21e6c8806dd8b0d39a21a7b7d11541c35ba83329b6320896e86f165a', 512 ) = '131ecdf4840cdc45557516205f07cc277b7641d05afc57cb7fe534f59d9cbe611e0e6a7b6aad61f1d39fdc7559f3048ac4d0a41234ddf07423dc61dbfddb7a65' as NIST_SHA512_test_vector; +SELECT SHA2( x'65f571e86f04f86dca7079e2ce8619a1f52057fed7cc9e88592a1a8c2196ccdb4d07d9cd643728868c052b78fe17fd29b8c3ae377130db99d2b88127e391125dc4adc95c9dde3b31d73e305a8dceb0863d5d619dc4ac100089cf8d12f8d6bcf732ade99c02415cf714e42d9061f35a40', 512 ) = '0cf871f3af1d3e5c9965619f479ba6b75be338afbf32b2a1fdec9361164357b2c4faebebff6e4a5af00389336434b5872285adb1e760ae99b19a812236000d22' as NIST_SHA512_test_vector; +SELECT SHA2( x'188d1fc4347ad766311a74574b46be4c30886742bfd1eec90f6ac4a3b32dae8d3cf56a5d0053954d1a83cc97b29e12427f10713b894de4a734c075787a04a33e785706402c4c36cc7dc0e8cb7b0e5a98e987f213f91c22f1565e8e5667a971a5d39b3c9740cb818a61b8101c2f0060f976', 512 ) = 'b67a29b2280dae77184e2e7839a7f3b48f4054f9bd0ebf5ecf1694151966756ec4542b2285a53fa37515116c7db4f1aa492f9db0bbafa0567bdaea1bf0f26abd' as NIST_SHA512_test_vector; +SELECT SHA2( x'9bae33d315dd0e4fbed1a571e7e5f902c9c027817679f46810ffaab139b92399ca6923a4c856ebe194aa0a6f61197740ebc3dd1d675c36eab58a9b2cdd8e5ac8b9274a0defb35bf5239871a86ae27342012e9ed63fc620b3c80de2e6041ea500cfb05019723d8814d2638225e88a159171c7', 512 ) = 'f3b2f66f9a9673ffc47d2c510d6de0a3ac90d59e9600f2600777b1d84446cf94588231a8b48987081209e320d62ae85acb4895731bef1710923ef0fa983340d0' as NIST_SHA512_test_vector; +SELECT SHA2( x'a7d58b5cfb1841f6387ff658cfc44c2b14fbd1579f6d8276f2a38e885dc15ce81f16ce7fcef0c837f9b5ecb20b2fa83d722873ff0137537693d9a325f2c31386f777f046f216a6b14b75836c6a72bd62d589b70098a280a5ea2d9c540d7108ad7621781b2e31e34e78e741ecb4359483834625', 512 ) = '90fd55013bb36a390be5bbc34bf9ef76ab200deedf3844f79bf5128fdf6fe71332a612e5bb3c4a2bfaec1bcc5510f6f8ec8414d5e13b0ebf2a67e84ce2282d2b' as NIST_SHA512_test_vector; +SELECT SHA2( x'c3bd6ef24c7c64ba3b198a8949bb824b4642b6910b72edd8af531d0efed7805226beeafcb4b75addbfc8cfc863ef5d50720a7fd465f4afb999f134f7b84c3cd7743e2afb7c12319ea887221d777682b6bcb4e090943a65fc9b83adfb6036d5001605d6f78cd511855f1f2b926e961a058e0a80ce', 512 ) = '99163db3dae57ca20c4327b88851f3c63187e5a2bbadf3c3dab341040619d2196c84c196cee861deea363f48a9f728b4816d2831033ab472f1c92e1ce748ba4f' as NIST_SHA512_test_vector; +SELECT SHA2( x'9b6b821c5f536bbda82ff5036b6de56eb046a596469d9427b52aa12a74d718865c6abbc65d65151c702a0ba6cc63b4f15da16bbc724322feb69af92a614b0fb1aff497c892122f6da3226ea45f06bc0790ab677d09e9f34a96aab148334f93737c4f3eab652161b62b5d45858b1ea6b831aac26473', 512 ) = 'f65de5d478319608168bde654963b9d410b6aa5bfd8d25bf2165a94b5d2ceba0eb792a7bf132c6c189748ef16fe87e196c862a884b6e2da9804c92b60bcde824' as NIST_SHA512_test_vector; +SELECT SHA2( x'616ab1a4a7782b8e1cc098b3ae4c70f7bec742fd7681a9475dba7b9f281c43b6d489f20cf117d10f4159ba8781e188318702ccaa8ddbc28fcd9083e34edb7bb1fdc41ef2ffacd7b04690416c628c9abe9a9e753b3cadae9b31caa31cd4b5a12105a39d1f783e25b953ee962af9578ee42023a4762a01', 512 ) = '43394563a74a6d0a036b1dfc206a2ff1e8a2443d8f69b63372fa959360fafd5178d8e8793b2a44116a64313797b60cea5c93cba97a1e6309c2aa9436a2815c21' as NIST_SHA512_test_vector; +SELECT SHA2( x'9bf0e5967fc1359ec7093f1db06144268e176e08098ba9d085d8b50fe2b779dd66a19b1df7344d038ed86ad4e8a2c1ed7f79b107b877f6b95e91c23e4f7b0f7975c63436f84cb7b3b2cd635fe4da9ae127f2ec5ca5ece8f288943187b399d5c7b0a7db6aead01bb61d3053460ad1760b6fcc479036b127', 512 ) = 'abeb62f84f587b997e09ee255819531b986c86e2568df29ed77b68a597331f2a977203a2f66566e37cbfdacc090d0464c49839cee7a8ff569c008758b0b1172b' as NIST_SHA512_test_vector; +SELECT SHA2( x'a19949a0d6340be4a91b7973b705bddb2021a0d58f04aad474e68ade940fb99bc48c5bacf126663d649505de44f03f8e5d68d4191f3667a5ead2e2878966175bfc82a3537a1118cfb68c5b2e626d4ae4f1e7a2cda2d420c2baefe76910432251cfe3ea3e78dc6ac12668410c166427056604d4991dc61e53', 512 ) = 'c7a4313191d56ef7a73064e271ac720322866a6ef82a42a2faeafdeb8d4da7df5200baaa286ee50c9464d0eb229b036c333ceae7b6a511af5c51dab79508641e' as NIST_SHA512_test_vector; +SELECT SHA2( x'a949427f3fc83e578d9cc7ef6a510759f697bbe97d9739329e87b130ac7cb3c75480f16c80e547237cd9f8a9573a3bf28dabf6d6e2e7c90791554e46a6dd9fd6a9fb19317c1160fb8602a33412fc22b1f195edcd671aee5c452329e0526b4300efdf4135fbf593c7f53f51f86040c47e6c7e2837d2d8b01900', 512 ) = 'fe3347c05519b9c4a61fa289af3153c56f96d04f67041697ba09bf9722a04be2bb15ae2399170a9fe206db8d60cb9940c6d6826db99860f31fd83e9eb9f72c73' as NIST_SHA512_test_vector; +SELECT SHA2( x'4157af0b3e7d291add80bdc7dac297a15861a6e66db24599e1eb1bd6331f3f63dd70a087d980a51f642810ee026d2835c2af1783c32491cff785b6c427073a5c388dc3b0ac1c920f6c8f664dc48c9d5dafb69d2255247283d213b8be39d7bcfed818de2fbe3a3a117b1d878b27073e43a6deff6b299b32def8fb', 512 ) = '6d90357d4fe398642e7b6099fa2fb2383dedb02db019e90b2ed4058dd55311156e79b8aa970035d098fd3c0e26626ca9af42af491b36eb40097c6223d21201ba' as NIST_SHA512_test_vector; +SELECT SHA2( x'bc79986ccacf533b9ddbe2bcd15958c3bcd86063f325dc051007cbb8b32c70c8c764b192070dbd96c0cef1ced889fd3f0f8a42cd85057f537dbfadf3600b27ab05f80e292fc9ece157a5975cac9059d3599a4dfc06560c24a18e897e5e353abbfc9d79da4beb2942ebc79c0e5658b4a8206f49997e02cb9f06dd29', 512 ) = '1e1d4bb3839438383be702d61d60f098d70257baef0f4058260e8d300ece538a0c3133b327a7f25055916dc8c8a5c7cd419c95d0664aa53742e8be6abd4b22f5' as NIST_SHA512_test_vector; +SELECT SHA2( x'0a45314284915ec9021fdd121a3c99e7c01bc73b696d26607131857abace8734975fa3b1e84e6ec686241d66e19f455de706e64128b9a8a6380c64925555e6314a44f2c9937384efc23e5cfc22d5babb998f6764d382f4ce9c5046e08e435349ed9d2670cf2929ae8016a3bc240580679e61518bb1ef933e65a6344c', 512 ) = 'f523ebd51c0f1d8e32a299f762f50826fd2341b8ae44d0c4841080bb626112ae1eafbb089b7adfd6e6668ac7ab684f78da2a23273058973e4cb660c297733912' as NIST_SHA512_test_vector; +SELECT SHA2( x'8beea2e048193dfa755a594306ad9825c77659d037092ee09a6f91394a68d2364eac54042d76f9480443db08d7d73dc82582c1f3bfa1db7dda6785c762de34c391280b58c10b4f087ead1cd0e09b564f1710e12b487515b198246cbb86717ed77deb30a5a9df28810b1e8462c800cb02c7a923407a8bc5c2fc2cafde5d', 512 ) = 'a71b1ce1e582bca53d7615488335ca1ff351eb33a8c2c0105bec7ffcbd55e4533ee68209ec8b009066a2ff60b418d6b943816cca9b53b7bf64a34feaa4d63600' as NIST_SHA512_test_vector; +SELECT SHA2( x'f4259473bfd39877bfe9597353d7ce8dd520c66d1fc7884e4e03b655c63a7721762dd4a35d7163304c1e23d4eecba8ea07b978e9f94eb4818cc5fbe7ee258b6df96fa955b51c44e71ec6d5c12726896ffe3ea23b92d71a46532e8ad838eb4bf50752db31d1bd82c5bb4a35e105d1ba4444190d0bf24b03c629a62dd1ac75', 512 ) = 'c8a04bf3881d0582e03563af73a675e40dc9918fcb5a138b8c6fdd057df0c11b112a6dc0664a0dff8a316c3a645ac87dd25b644d061700306bbd7dd805879b55' as NIST_SHA512_test_vector; +SELECT SHA2( x'd60da691585b7c0c3714905411ae8e3515e8490dbbaf07d1b2431f501a96c7bcf4f52766d7e9b2c9e460b5cafc08303e30fce6ad78a2b055a8d31672a13d20bdc4066a33adb277171d47473a37af2c7af05dd989c134bcf09ea48e532c1628f62f8a9880417e74ffca126e2d2c6b29f23e554b29fc2cd4a77dfcae7925e784', 512 ) = 'ec83376ff6f633ee2d898d87a6a91efb0788bce188fac7d3c4c35f81ba6015640dbfad1f8584557ec210478a0cb566f1490643ce602aa5abfab63d46f7f1d4ee' as NIST_SHA512_test_vector; +SELECT SHA2( x'b7d5d5f8955d1ad349b9e618c7987814f6dc7bdc6c4ee59a79902026685468d601cc74965361583bb0a8aa14f892e3c21be3094ad9e58b69cc5d6d28a9bea4afc39dc45ed065d81af04c91e5eb85a4b2bab76d774aafd8837c52811270d51a1f03300e7996cf6319128be5b328da818bde42ef8a471494919156a60d460191cc', 512 ) = '6e7fb797dfca7577432c0b339fe9003b36942a549b112d32016b257c9a866e4385e01d4e757d4378b8e61f5a8a29aa73f2daafdaab23dfe4e0b93df21374e594' as NIST_SHA512_test_vector; + +## Test some unusual parameters items. +## First, the ones that must return NULL. +SELECT SHA2( x'ff', 1 ); +SELECT SHA2( x'ff', 2 ); +SELECT SHA2( x'ff', 223 ); +SELECT SHA2( x'ff', 511 ); +SELECT SHA2( x'ff', least(123, 42) ); +SELECT SHA2( x'ff', 10000000000000 ); +SELECT SHA2( SHA2( NULL, 224), 224 ); +## Second, things that mustn't return NULL; +SELECT SHA2( SHA2( x'ff', 224), 224 ) is not NULL; +SELECT SHA2( SHA2( x'ff', NULL), 224 ) is not NULL; +SELECT SHA2( SHA2( x'ff', 224), NULL ) is not NULL; +SELECT SHA2( (select x'ff'), 224 ) is not NULL; +SELECT SHA2( (select x'ff'), least(224, 500) ) is not NULL; +SELECT SHA2( (select 1), NULL ) is not NULL; + +## Verify the digest lengths. +# N bits -> N / 8 bytes -> N/8 * 2 nybbles +SELECT LENGTH(SHA2( '', 224 )) / 2 * 8 = 224; +SELECT LENGTH(SHA2( 'any', 256 )) / 2 * 8 = 256; +SELECT LENGTH(SHA2( 'size', 384 )) / 2 * 8 = 384; +SELECT LENGTH(SHA2( 'computed', 512 )) / 2 * 8 = 512; diff --git a/mysql-test/t/func_encrypt.test b/mysql-test/t/func_encrypt.test index 879732fc81f..18fb072966b 100644 --- a/mysql-test/t/func_encrypt.test +++ b/mysql-test/t/func_encrypt.test @@ -1,4 +1,4 @@ --- source include/have_ssl.inc +-- source include/have_ssl_crypto_functs.inc --disable_warnings drop table if exists t1; diff --git a/mysql-test/t/openssl_1.test b/mysql-test/t/openssl_1.test index 8ca70258bc0..4b16f9ba699 100644 --- a/mysql-test/t/openssl_1.test +++ b/mysql-test/t/openssl_1.test @@ -1,7 +1,7 @@ # Tests for SSL connections, only run if mysqld is compiled # with support for SSL. ---source include/have_ssl.inc +-- source include/have_ssl_communication.inc # Save the initial number of concurrent sessions --source include/count_sessions.inc diff --git a/mysql-test/t/ssl-big.test b/mysql-test/t/ssl-big.test index 91103f1d782..59825a148a4 100644 --- a/mysql-test/t/ssl-big.test +++ b/mysql-test/t/ssl-big.test @@ -1,7 +1,7 @@ # Turn on ssl between the client and server # and run a number of tests --- source include/have_ssl.inc +-- source include/have_ssl_communication.inc -- source include/big_test.inc # Save the initial number of concurrent sessions @@ -62,3 +62,5 @@ disconnect ssl_con; # Wait till all disconnects are completed --source include/wait_until_count_sessions.inc +## This test file is for testing encrypted communication only, not other +## encryption routines that the SSL library happens to provide! diff --git a/mysql-test/t/ssl.test b/mysql-test/t/ssl.test index 936652eaa3d..2526a52bec6 100644 --- a/mysql-test/t/ssl.test +++ b/mysql-test/t/ssl.test @@ -1,7 +1,7 @@ # Turn on ssl between the client and server # and run a number of tests --- source include/have_ssl.inc +-- source include/have_ssl_communication.inc # Save the initial number of concurrent sessions --source include/count_sessions.inc @@ -23,3 +23,5 @@ disconnect ssl_con; # Wait till all disconnects are completed --source include/wait_until_count_sessions.inc +## This test file is for testing encrypted communication only, not other +## encryption routines that the SSL library happens to provide! diff --git a/mysql-test/t/ssl_8k_key.test b/mysql-test/t/ssl_8k_key.test index b4203e68445..a07d0eb7d02 100644 --- a/mysql-test/t/ssl_8k_key.test +++ b/mysql-test/t/ssl_8k_key.test @@ -1,6 +1,8 @@ --- source include/have_ssl.inc +-- source include/have_ssl_communication.inc # # Bug#29784 YaSSL assertion failure when reading 8k key. # --exec $MYSQL --ssl --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem -e "SHOW STATUS LIKE 'ssl_Cipher'" 2>&1 +## This test file is for testing encrypted communication only, not other +## encryption routines that the SSL library happens to provide! diff --git a/mysql-test/t/ssl_compress.test b/mysql-test/t/ssl_compress.test index b6e11621bf6..e8aff942b9f 100644 --- a/mysql-test/t/ssl_compress.test +++ b/mysql-test/t/ssl_compress.test @@ -1,7 +1,7 @@ # Turn on compression between the client and server # and run a number of tests --- source include/have_ssl.inc +-- source include/have_ssl_communication.inc -- source include/have_compress.inc # Save the initial number of concurrent sessions @@ -30,3 +30,5 @@ disconnect ssl_compress_con; # Wait till all disconnects are completed --source include/wait_until_count_sessions.inc +## This test file is for testing encrypted communication only, not other +## encryption routines that the SSL library happens to provide! diff --git a/mysql-test/t/ssl_connect.test b/mysql-test/t/ssl_connect.test index 31e581c9342..05d6dc45c74 100644 --- a/mysql-test/t/ssl_connect.test +++ b/mysql-test/t/ssl_connect.test @@ -1,5 +1,5 @@ --- source include/have_ssl.inc +-- source include/have_ssl_communication.inc # Repeat connect/disconnect @@ -11,3 +11,6 @@ while ($i) dec $i; } echo completed; + +## This test file is for testing encrypted communication only, not other +## encryption routines that the SSL library happens to provide! diff --git a/sql-common/client.c b/sql-common/client.c index cbd3477d58a..ba8923097a6 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -1275,7 +1275,7 @@ void mysql_read_default_options(struct st_mysql_options *options, case 12: /* return-found-rows */ options->client_flag|=CLIENT_FOUND_ROWS; break; -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) case 13: /* ssl_key */ my_free(options->ssl_key, MYF(MY_ALLOW_ZERO_PTR)); options->ssl_key = my_strdup(opt_arg, MYF(MY_WME)); @@ -1303,7 +1303,7 @@ void mysql_read_default_options(struct st_mysql_options *options, case 16: case 23: break; -#endif /* HAVE_OPENSSL */ +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */ case 17: /* charset-lib */ my_free(options->charset_dir,MYF(MY_ALLOW_ZERO_PTR)); options->charset_dir = my_strdup(opt_arg, MYF(MY_WME)); @@ -1736,13 +1736,13 @@ mysql_ssl_set(MYSQL *mysql __attribute__((unused)) , const char *cipher __attribute__((unused))) { DBUG_ENTER("mysql_ssl_set"); -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) mysql->options.ssl_key= strdup_if_not_null(key); mysql->options.ssl_cert= strdup_if_not_null(cert); mysql->options.ssl_ca= strdup_if_not_null(ca); mysql->options.ssl_capath= strdup_if_not_null(capath); mysql->options.ssl_cipher= strdup_if_not_null(cipher); -#endif /* HAVE_OPENSSL */ +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */ DBUG_RETURN(0); } @@ -1752,7 +1752,7 @@ mysql_ssl_set(MYSQL *mysql __attribute__((unused)) , NB! Errors are not reported until you do mysql_real_connect. */ -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) static void mysql_ssl_free(MYSQL *mysql __attribute__((unused))) @@ -1778,7 +1778,7 @@ mysql_ssl_free(MYSQL *mysql __attribute__((unused))) DBUG_VOID_RETURN; } -#endif /* HAVE_OPENSSL */ +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */ /* Return the SSL cipher (if any) used for current @@ -1794,10 +1794,10 @@ const char * STDCALL mysql_get_ssl_cipher(MYSQL *mysql __attribute__((unused))) { DBUG_ENTER("mysql_get_ssl_cipher"); -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) if (mysql->net.vio && mysql->net.vio->ssl_arg) DBUG_RETURN(SSL_get_cipher_name((SSL*)mysql->net.vio->ssl_arg)); -#endif /* HAVE_OPENSSL */ +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */ DBUG_RETURN(NULL); } @@ -1817,7 +1817,7 @@ mysql_get_ssl_cipher(MYSQL *mysql __attribute__((unused))) */ -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) static int ssl_verify_server_cert(Vio *vio, const char* server_hostname) { @@ -1875,7 +1875,7 @@ static int ssl_verify_server_cert(Vio *vio, const char* server_hostname) DBUG_RETURN(1); } -#endif /* HAVE_OPENSSL */ +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */ /* @@ -3036,9 +3036,9 @@ static void mysql_close_free_options(MYSQL *mysql) delete_dynamic(init_commands); my_free((char*)init_commands,MYF(MY_WME)); } -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) mysql_ssl_free(mysql); -#endif /* HAVE_OPENSSL */ +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */ #ifdef HAVE_SMEM if (mysql->options.shared_memory_base_name != def_shared_memory_base_name) my_free(mysql->options.shared_memory_base_name,MYF(MY_ALLOW_ZERO_PTR)); diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt index 31110c5e201..396c8b1fd27 100755 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt @@ -41,7 +41,7 @@ ENDIF() SET (SQL_SOURCE ../sql-common/client.c derror.cc des_key_file.cc discover.cc ../libmysql/errmsg.c field.cc field_conv.cc - filesort.cc gstream.cc + filesort.cc gstream.cc sha2.cc ha_partition.cc handler.cc hash_filo.cc hash_filo.h sql_plugin_services.h hostname.cc init.cc item.cc item_buff.cc item_cmpfunc.cc diff --git a/sql/Makefile.am b/sql/Makefile.am index 696f608c879..93595a964eb 100644 --- a/sql/Makefile.am +++ b/sql/Makefile.am @@ -167,7 +167,8 @@ mysqld_SOURCES = sql_lex.cc sql_handler.cc sql_partition.cc \ sql_plugin.cc sql_binlog.cc \ sql_builtin.cc sql_tablespace.cc partition_info.cc \ sql_servers.cc event_parse_data.cc sql_signal.cc \ - rpl_handler.cc mdl.cc transaction.cc sql_audit.cc + rpl_handler.cc mdl.cc transaction.cc sql_audit.cc \ + sha2.cc nodist_mysqld_SOURCES = mini_client_errors.c pack.c client.c my_time.c my_user.c diff --git a/sql/item_create.cc b/sql/item_create.cc index beb7b40dc18..5f30a10d1e0 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -1834,6 +1834,19 @@ protected: }; +class Create_func_sha2 : public Create_func_arg2 +{ +public: + virtual Item* create(THD *thd, Item *arg1, Item *arg2); + + static Create_func_sha2 s_singleton; + +protected: + Create_func_sha2() {} + virtual ~Create_func_sha2() {} +}; + + class Create_func_sign : public Create_func_arg1 { public: @@ -4363,6 +4376,15 @@ Create_func_sha::create(THD *thd, Item *arg1) } +Create_func_sha2 Create_func_sha2::s_singleton; + +Item* +Create_func_sha2::create(THD *thd, Item *arg1, Item *arg2) +{ + return new (thd->mem_root) Item_func_sha2(arg1, arg2); +} + + Create_func_sign Create_func_sign::s_singleton; Item* @@ -4973,6 +4995,7 @@ static Native_func_registry func_array[] = { { C_STRING_WITH_LEN("SEC_TO_TIME") }, BUILDER(Create_func_sec_to_time)}, { { C_STRING_WITH_LEN("SHA") }, BUILDER(Create_func_sha)}, { { C_STRING_WITH_LEN("SHA1") }, BUILDER(Create_func_sha)}, + { { C_STRING_WITH_LEN("SHA2") }, BUILDER(Create_func_sha2)}, { { C_STRING_WITH_LEN("SIGN") }, BUILDER(Create_func_sign)}, { { C_STRING_WITH_LEN("SIN") }, BUILDER(Create_func_sin)}, { { C_STRING_WITH_LEN("SLEEP") }, BUILDER(Create_func_sleep)}, diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 9ae15322265..32baae87c50 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -29,6 +29,8 @@ #pragma implementation // gcc: Class implementation #endif +/* May include caustic 3rd-party defs. Use early, so it can override nothing. */ +#include "sha2.h" #include "my_global.h" // HAVE_* @@ -94,9 +96,9 @@ String *Item_str_ascii_func::val_str(String *str) Used to generate a hexadecimal representation of a message digest. */ -static void array_to_hex(char *to, const char *str, uint len) +static void array_to_hex(char *to, const unsigned char *str, uint len) { - const char *str_end= str + len; + const unsigned char *str_end= str + len; for (; str != str_end; ++str) { *to++= _dig_vec_lower[((uchar) *str) >> 4]; @@ -175,7 +177,7 @@ String *Item_func_md5::val_str_ascii(String *str) null_value=1; return 0; } - array_to_hex((char *) str->ptr(), (const char*) digest, 16); + array_to_hex((char *) str->ptr(), digest, 16); str->length((uint) 32); return str; } @@ -216,7 +218,7 @@ String *Item_func_sha::val_str_ascii(String *str) if (!( str->alloc(SHA1_HASH_SIZE*2) || (mysql_sha1_result(&context,digest)))) { - array_to_hex((char *) str->ptr(), (const char*) digest, SHA1_HASH_SIZE); + array_to_hex((char *) str->ptr(), digest, SHA1_HASH_SIZE); str->length((uint) SHA1_HASH_SIZE*2); null_value=0; return str; @@ -240,6 +242,144 @@ void Item_func_sha::fix_length_and_dec() fix_length_and_charset(SHA1_HASH_SIZE * 2, default_charset()); } +String *Item_func_sha2::val_str(String *str) +{ + DBUG_ASSERT(fixed == 1); +#ifdef HAVE_OPENSSL + unsigned char digest_buf[SHA512_DIGEST_LENGTH]; + String *input_string; + unsigned char *input_ptr; + size_t input_len; + uint digest_length= 0; + + str->set_charset(&my_charset_bin); + + input_string= args[0]->val_str(str); + if (input_string == NULL) + { + null_value= TRUE; + return (String *) NULL; + } + + null_value= args[0]->null_value; + if (null_value) + return (String *) NULL; + + input_ptr= (unsigned char *) input_string->ptr(); + input_len= input_string->length(); + + switch ((uint) args[1]->val_int()) { +#ifndef OPENSSL_NO_SHA512 + case 512: + digest_length= SHA512_DIGEST_LENGTH; + (void) SHA512(input_ptr, input_len, digest_buf); + break; + case 384: + digest_length= SHA384_DIGEST_LENGTH; + (void) SHA384(input_ptr, input_len, digest_buf); + break; +#endif +#ifndef OPENSSL_NO_SHA256 + case 224: + digest_length= SHA224_DIGEST_LENGTH; + (void) SHA224(input_ptr, input_len, digest_buf); + break; + case 256: + case 0: // SHA-256 is the default + digest_length= SHA256_DIGEST_LENGTH; + (void) SHA256(input_ptr, input_len, digest_buf); + break; +#endif + default: + if (!args[1]->const_item()) + push_warning_printf(current_thd, + MYSQL_ERROR::WARN_LEVEL_WARN, + ER_WRONG_PARAMETERS_TO_NATIVE_FCT, + ER(ER_WRONG_PARAMETERS_TO_NATIVE_FCT), "sha2"); + null_value= TRUE; + return NULL; + } + + /* + Since we're subverting the usual String methods, we must make sure that + the destination has space for the bytes we're about to write. + */ + str->realloc((uint) digest_length*2 + 1); /* Each byte as two nybbles */ + + /* Convert the large number to a string-hex representation. */ + array_to_hex((char *) str->ptr(), digest_buf, digest_length); + + /* We poked raw bytes in. We must inform the the String of its length. */ + str->length((uint) digest_length*2); /* Each byte as two nybbles */ + + null_value= FALSE; + return str; + +#else + push_warning_printf(current_thd, + MYSQL_ERROR::WARN_LEVEL_WARN, + ER_FEATURE_DISABLED, + ER(ER_FEATURE_DISABLED), + "sha2", "--with-ssl"); + null_value= TRUE; + return (String *) NULL; +#endif +} + + +void Item_func_sha2::fix_length_and_dec() +{ + maybe_null = 1; + max_length = 0; + +#if defined(HAVE_OPENSSL) + int sha_variant= args[1]->const_item() ? args[1]->val_int() : 512; + + switch (sha_variant) { +#ifndef OPENSSL_NO_SHA512 + case 512: + max_length= SHA512_DIGEST_LENGTH*2; + break; + case 384: + max_length= SHA384_DIGEST_LENGTH*2; + break; +#endif +#ifndef OPENSSL_NO_SHA256 + case 256: + case 0: // SHA-256 is the default + max_length= SHA256_DIGEST_LENGTH*2; + break; + case 224: + max_length= SHA224_DIGEST_LENGTH*2; + break; +#endif + default: + push_warning_printf(current_thd, + MYSQL_ERROR::WARN_LEVEL_WARN, + ER_WRONG_PARAMETERS_TO_NATIVE_FCT, + ER(ER_WRONG_PARAMETERS_TO_NATIVE_FCT), "sha2"); + } + + /* + The SHA2() function treats its parameter as being a case sensitive. + Thus we set binary collation on it so different instances of SHA2() + will be compared properly. + */ + + args[0]->collation.set( + get_charset_by_csname( + args[0]->collation.collation->csname, + MY_CS_BINSORT, + MYF(0)), + DERIVATION_COERCIBLE); +#else + push_warning_printf(current_thd, + MYSQL_ERROR::WARN_LEVEL_WARN, + ER_FEATURE_DISABLED, + ER(ER_FEATURE_DISABLED), + "sha2", "--with-ssl"); +#endif +} /* Implementation of AES encryption routines */ @@ -510,7 +650,6 @@ String *Item_func_des_encrypt::val_str(String *str) return 0; // ENCRYPT(NULL) == NULL if ((res_length=res->length()) == 0) return &my_empty_string; - if (arg_count == 1) { /* Protect against someone doing FLUSH DES_KEY_FILE */ @@ -583,7 +722,7 @@ error: #else push_warning_printf(current_thd,MYSQL_ERROR::WARN_LEVEL_WARN, ER_FEATURE_DISABLED, ER(ER_FEATURE_DISABLED), - "des_encrypt","--with-openssl"); + "des_encrypt", "--with-ssl"); #endif /* HAVE_OPENSSL */ null_value=1; return 0; @@ -661,7 +800,7 @@ wrong_key: #else push_warning_printf(current_thd,MYSQL_ERROR::WARN_LEVEL_WARN, ER_FEATURE_DISABLED, ER(ER_FEATURE_DISABLED), - "des_decrypt","--with-openssl"); + "des_decrypt", "--with-ssl"); #endif /* HAVE_OPENSSL */ null_value=1; return 0; diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h index e3008a5daab..7b7f8d3308a 100644 --- a/sql/item_strfunc.h +++ b/sql/item_strfunc.h @@ -82,6 +82,18 @@ public: const char *func_name() const { return "sha"; } }; +class Item_func_sha2 :public Item_str_func +{ +public: + Item_func_sha2(Item *a, Item *b) :Item_str_func(a, b) + { + collation.set(&my_charset_bin); + } + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "sha2"; } +}; + class Item_func_aes_encrypt :public Item_str_func { public: diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 2bc47849915..b35e2545a18 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -957,7 +957,9 @@ static void openssl_lock(int, openssl_lock_t *, const char *, int); static unsigned long openssl_id_function(); #endif char *des_key_file; +#ifndef EMBEDDED_LIBRARY struct st_VioSSLFd *ssl_acceptor_fd; +#endif #endif /* HAVE_OPENSSL */ /** @@ -1003,8 +1005,8 @@ static void clean_up_mutexes(void); static void wait_for_signal_thread_to_end(void); static void create_pid_file(); static void mysqld_exit(int exit_code) __attribute__((noreturn)); -static void end_ssl(); #endif +static void end_ssl(); #ifndef EMBEDDED_LIBRARY @@ -1524,9 +1526,7 @@ void clean_up(bool print_message) #endif delete binlog_filter; delete rpl_filter; -#ifndef EMBEDDED_LIBRARY end_ssl(); -#endif vio_end(); #ifdef USE_REGEX my_regex_end(); @@ -3916,11 +3916,10 @@ static void openssl_lock(int mode, openssl_lock_t *lock, const char *file, #endif /* HAVE_OPENSSL */ -#ifndef EMBEDDED_LIBRARY - static void init_ssl() { #ifdef HAVE_OPENSSL +#ifndef EMBEDDED_LIBRARY if (opt_use_ssl) { enum enum_ssl_init_error error= SSL_INITERR_NOERROR; @@ -3942,6 +3941,9 @@ static void init_ssl() { have_ssl= SHOW_OPTION_DISABLED; } +#else + have_ssl= SHOW_OPTION_DISABLED; +#endif /* ! EMBEDDED_LIBRARY */ if (des_key_file) load_des_key_file(des_key_file); #endif /* HAVE_OPENSSL */ @@ -3951,16 +3953,16 @@ static void init_ssl() static void end_ssl() { #ifdef HAVE_OPENSSL +#ifndef EMBEDDED_LIBRARY if (ssl_acceptor_fd) { free_vio_ssl_acceptor_fd(ssl_acceptor_fd); ssl_acceptor_fd= 0; } +#endif /* ! EMBEDDED_LIBRARY */ #endif /* HAVE_OPENSSL */ } -#endif /* EMBEDDED_LIBRARY */ - static int init_server_components() { @@ -6434,7 +6436,7 @@ static int show_table_definitions(THD *thd, SHOW_VAR *var, char *buff) return 0; } -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) /* Functions relying on CTX */ static int show_ssl_ctx_sess_accept(THD *thd, SHOW_VAR *var, char *buff) { @@ -6690,7 +6692,7 @@ static int show_ssl_get_cipher_list(THD *thd, SHOW_VAR *var, char *buff) return 0; } -#endif /* HAVE_OPENSSL */ +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */ /* @@ -6781,6 +6783,7 @@ SHOW_VAR status_vars[]= { {"Sort_rows", (char*) offsetof(STATUS_VAR, filesort_rows), SHOW_LONG_STATUS}, {"Sort_scan", (char*) offsetof(STATUS_VAR, filesort_scan_count), SHOW_LONG_STATUS}, #ifdef HAVE_OPENSSL +#ifndef EMBEDDED_LIBRARY {"Ssl_accept_renegotiates", (char*) &show_ssl_ctx_sess_accept_renegotiate, SHOW_FUNC}, {"Ssl_accepts", (char*) &show_ssl_ctx_sess_accept, SHOW_FUNC}, {"Ssl_callback_cache_hits", (char*) &show_ssl_ctx_sess_cb_hits, SHOW_FUNC}, @@ -6804,6 +6807,7 @@ SHOW_VAR status_vars[]= { {"Ssl_verify_depth", (char*) &show_ssl_get_verify_depth, SHOW_FUNC}, {"Ssl_verify_mode", (char*) &show_ssl_get_verify_mode, SHOW_FUNC}, {"Ssl_version", (char*) &show_ssl_get_version, SHOW_FUNC}, +#endif #endif /* HAVE_OPENSSL */ {"Table_locks_immediate", (char*) &locks_immediate, SHOW_LONG}, {"Table_locks_waited", (char*) &locks_waited, SHOW_LONG}, @@ -7103,8 +7107,10 @@ static int mysql_init_variables(void) #endif #ifdef HAVE_OPENSSL des_key_file = 0; +#ifndef EMBEDDED_LIBRARY ssl_acceptor_fd= 0; -#endif +#endif /* ! EMBEDDED_LIBRARY */ +#endif /* HAVE_OPENSSL */ #ifdef HAVE_SMEM shared_memory_base_name= default_shared_memory_base_name; #endif diff --git a/sql/sha2.cc b/sql/sha2.cc new file mode 100644 index 00000000000..1a9de86f2e0 --- /dev/null +++ b/sql/sha2.cc @@ -0,0 +1,68 @@ +/* Copyright (C) 2007 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + + +/** + @file + A compatibility layer to our built-in SSL implementation, to mimic the + oft-used external library, OpenSSL. +*/ + +#include +#include + +#ifdef HAVE_YASSL + +/* + If TaoCrypt::SHA512 or ::SHA384 are not defined (but ::SHA256 is), it's + probably that neither of config.h's SIZEOF_LONG or SIZEOF_LONG_LONG are + 64 bits long. At present, both OpenSSL and YaSSL require 64-bit integers + for SHA-512. (The SIZEOF_* definitions come from autoconf's config.h .) +*/ + +# define GEN_YASSL_SHA2_BRIDGE(size) \ +unsigned char* SHA##size(const unsigned char *input_ptr, size_t input_length, \ + char unsigned *output_ptr) { \ + TaoCrypt::SHA##size hasher; \ + \ + hasher.Update(input_ptr, input_length); \ + hasher.Final(output_ptr); \ + return(output_ptr); \ +} + + +/** + @fn SHA512 + @fn SHA384 + @fn SHA256 + @fn SHA224 + + Instantiate an hash object, fill in the cleartext value, compute the digest, + and extract the result from the object. + + (Generate the functions. See similar .h code for the prototypes.) +*/ +# ifndef OPENSSL_NO_SHA512 +GEN_YASSL_SHA2_BRIDGE(512); +GEN_YASSL_SHA2_BRIDGE(384); +# else +# warning Some SHA2 functionality is missing. See OPENSSL_NO_SHA512. +# endif +GEN_YASSL_SHA2_BRIDGE(256); +GEN_YASSL_SHA2_BRIDGE(224); + +# undef GEN_YASSL_SHA2_BRIDGE + +#endif /* HAVE_YASSL */ diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index a5e5b4ec2a1..f8be3ff6d4a 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -929,7 +929,7 @@ int acl_getroot(THD *thd, USER_RESOURCES *mqh, if (acl_user) { /* OK. User found and password checked continue validation */ -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) Vio *vio=thd->net.vio; SSL *ssl= (SSL*) vio->ssl_arg; X509 *cert; @@ -946,7 +946,7 @@ int acl_getroot(THD *thd, USER_RESOURCES *mqh, case SSL_TYPE_NONE: // SSL is not required user_access= acl_user->access; break; -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) case SSL_TYPE_ANY: // Any kind of SSL is ok if (vio_type(vio) == VIO_TYPE_SSL) user_access= acl_user->access; diff --git a/sql/sql_connect.cc b/sql/sql_connect.cc index cfcf1754581..e2d0977def7 100644 --- a/sql/sql_connect.cc +++ b/sql/sql_connect.cc @@ -36,7 +36,7 @@ // reset_host_errors #include "sql_acl.h" // acl_getroot, NO_ACCESS, SUPER_ACL -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) /* Without SSL the handshake consists of one packet. This packet has both client capabilites and scrambled password. @@ -52,7 +52,7 @@ #define MIN_HANDSHAKE_SIZE 2 #else #define MIN_HANDSHAKE_SIZE 6 -#endif /* HAVE_OPENSSL */ +#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */ /* Get structure for logging connection data for the current user @@ -654,6 +654,7 @@ bool init_new_connection_handler_thread() return 0; } +#ifndef EMBEDDED_LIBRARY /* Perform handshake, authorize client and update thd ACL variables. @@ -667,7 +668,6 @@ bool init_new_connection_handler_thread() > 0 error code (not sent to user) */ -#ifndef EMBEDDED_LIBRARY static int check_connection(THD *thd) { uint connect_errors= 0; @@ -749,7 +749,7 @@ static int check_connection(THD *thd) #ifdef HAVE_COMPRESS server_capabilites|= CLIENT_COMPRESS; #endif /* HAVE_COMPRESS */ -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) if (ssl_acceptor_fd) { server_capabilites |= CLIENT_SSL; /* Wow, SSL is available! */ @@ -827,7 +827,7 @@ static int check_connection(THD *thd) if (thd->client_capabilities & CLIENT_IGNORE_SPACE) thd->variables.sql_mode|= MODE_IGNORE_SPACE; -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) DBUG_PRINT("info", ("client capabilities: %lu", thd->client_capabilities)); if (thd->client_capabilities & CLIENT_SSL) { diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 3cb1e90b124..ea86bcc227f 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -1923,7 +1923,7 @@ static Sys_var_set Sys_sql_mode( sql_mode_names, DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(check_sql_mode), ON_UPDATE(fix_sql_mode)); -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) #define SSL_OPT(X) CMD_LINE(REQUIRED_ARG,X) #else #define SSL_OPT(X) NO_CMD_LINE From fad9478ebad33523bf66e65930056929847cb7b1 Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Tue, 13 Apr 2010 20:10:51 +0400 Subject: [PATCH 20/26] Post-fix for Bug#13174. --- include/sha2.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/include/sha2.h b/include/sha2.h index 3c10be8958c..e67a4100ff2 100644 --- a/include/sha2.h +++ b/include/sha2.h @@ -18,11 +18,16 @@ #include -# ifndef HAVE_YASSL -# include +#if defined(HAVE_YASSL) || defined(HAVE_OPENSSL) + +# ifdef HAVE_STDDEF_H +# include # endif -# ifdef HAVE_YASSL +# ifndef HAVE_YASSL +# include + +# else #include "../extra/yassl/taocrypt/include/sha.hpp" @@ -63,4 +68,5 @@ GEN_YASSL_SHA2_BRIDGE(224); # endif /* HAVE_YASSL */ +#endif /* HAVE_OPENSSL || HAVE_YASSL */ #endif /* included_sha2_h */ From b8d014b8f6671395b9965b5a9953f5b2efa0fd15 Mon Sep 17 00:00:00 2001 From: Konstantin Osipov Date: Wed, 14 Apr 2010 01:56:19 +0400 Subject: [PATCH 21/26] A fix for Bug#11918 "SP does not accept variables in LIMIT clause" Allow stored procedure variables in LIMIT clause. Only allow variables of INTEGER types. Handle negative values by means of an implicit cast to UNSIGNED (similarly to prepared statement placeholders). Add tests. Make sure replication works by not doing NAME_CONST substitution for variables in LIMIT clause. Add replication tests. --- mysql-test/r/sp.result | 103 +++++++++++++++++++++++++++ mysql-test/suite/rpl/r/rpl_sp.result | 45 ++++++++++++ mysql-test/suite/rpl/t/rpl_sp.test | 50 +++++++++++++ mysql-test/t/sp.test | 91 +++++++++++++++++++++++ sql/item.cc | 4 +- sql/item.h | 7 ++ sql/share/errmsg-utf8.txt | 3 + sql/sp_head.cc | 11 ++- sql/sql_string.cc | 10 +++ sql/sql_string.h | 1 + sql/sql_yacc.yy | 35 ++++++++- 11 files changed, 357 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result index 5a746b330bc..7d24e6db920 100644 --- a/mysql-test/r/sp.result +++ b/mysql-test/r/sp.result @@ -7192,3 +7192,106 @@ f1 7 DROP TEMPORARY TABLE t1; DROP PROCEDURE p1; +# +# Bug #11918 Can't use a declared variable in LIMIT clause +# +drop table if exists t1; +drop procedure if exists p1; +create table t1 (c1 int); +insert into t1 (c1) values (1), (2), (3), (4), (5); +create procedure p1() +begin +declare a integer; +declare b integer; +select * from t1 limit a, b; +end| +# How do we handle NULL limit values? +call p1(); +c1 +drop table t1; +create table t1 (a int); +insert into t1 (a) values (1), (2), (3), (4), (5); +# +# Do we correctly resolve identifiers in LIMIT? +# Since DROP and CREATE did not invalidate +# the SP cache, we can't test until +# we drop and re-create the procedure. +# +call p1(); +ERROR 42S22: Unknown column 'test.t1.c1' in 'field list' +# +# Drop and recreate the procedure, then repeat +# +drop procedure p1; +create procedure p1() +begin +declare a integer; +declare b integer; +select * from t1 limit a, b; +end| +# Stored procedure variables are resolved correctly in the LIMIT +call p1(); +a +drop table t1; +create table t1 (c1 int); +insert into t1 (c1) values (1), (2), (3), (4), (5); +drop procedure p1; +# Try to create a procedure that +# refers to non-existing variables. +create procedure p1(p1 integer, p2 integer) +select * from t1 limit a, b; +ERROR 42000: Undeclared variable: a +# +# Try to use data types not allowed in LIMIT +# +create procedure p1(p1 date, p2 date) select * from t1 limit p1, p2; +ERROR HY000: A variable of a non-integer type in LIMIT clause +create procedure p1(p1 integer, p2 float) select * from t1 limit p1, p2; +ERROR HY000: A variable of a non-integer type in LIMIT clause +create procedure p1(p1 integer, p2 char(1)) select * from t1 limit p1, p2; +ERROR HY000: A variable of a non-integer type in LIMIT clause +create procedure p1(p1 varchar(5), p2 char(1)) select * from t1 limit p1, p2; +ERROR HY000: A variable of a non-integer type in LIMIT clause +create procedure p1(p1 decimal, p2 decimal) select * from t1 limit p1, p2; +ERROR HY000: A variable of a non-integer type in LIMIT clause +create procedure p1(p1 double, p2 double) select * from t1 limit p1, p2; +ERROR HY000: A variable of a non-integer type in LIMIT clause +# +# Finally, test the valid case. +# +create procedure p1(p1 integer, p2 integer) +select * from t1 limit p1, p2; +call p1(NULL, NULL); +c1 +call p1(0, 0); +c1 +call p1(0, -1); +c1 +1 +2 +3 +4 +5 +call p1(-1, 0); +c1 +call p1(-1, -1); +c1 +call p1(0, 1); +c1 +1 +call p1(1, 0); +c1 +call p1(1, 5); +c1 +2 +3 +4 +5 +call p1(3, 2); +c1 +4 +5 +# Cleanup +drop table t1; +drop procedure p1; +# End of 5.5 test diff --git a/mysql-test/suite/rpl/r/rpl_sp.result b/mysql-test/suite/rpl/r/rpl_sp.result index 7f810c5c128..e054ad09e10 100644 --- a/mysql-test/suite/rpl/r/rpl_sp.result +++ b/mysql-test/suite/rpl/r/rpl_sp.result @@ -1230,4 +1230,49 @@ a drop table t1, t2; drop function f1; ERROR 42000: FUNCTION test.f1 does not exist +# +# Bug #11918 Can't use a declared variable in LIMIT clause +# +drop table if exists t1; +drop procedure if exists p1; +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +create table t1 (c1 int); +insert into t1 (c1) values +(1), (2), (3), (4), (5), (6), (7), (8), (9), (10); +call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT"); +create procedure p1(p1 integer) +delete from t1 limit p1; +set @save_binlog_format=@@session.binlog_format; +set @@session.binlog_format=STATEMENT; +call p1(NULL); +call p1(0); +call p1(1); +call p1(2); +call p1(3); +select * from t1; +c1 +7 +8 +9 +10 +select * from t1; +c1 +7 +8 +9 +10 +call p1(-1); +select * from t1; +c1 +select * from t1; +c1 +# Cleanup +set @@session.binlog_format=@save_binlog_format; +drop table t1; +drop procedure p1; # End of 5.5 tests. diff --git a/mysql-test/suite/rpl/t/rpl_sp.test b/mysql-test/suite/rpl/t/rpl_sp.test index 362bfa17ef3..342ae258a3f 100644 --- a/mysql-test/suite/rpl/t/rpl_sp.test +++ b/mysql-test/suite/rpl/t/rpl_sp.test @@ -679,6 +679,56 @@ drop table t1, t2; --error ER_SP_DOES_NOT_EXIST drop function f1; + +--echo # +--echo # Bug #11918 Can't use a declared variable in LIMIT clause +--echo # +--disable_warnings +drop table if exists t1; +drop procedure if exists p1; +--enable_warnings +connection master; +-- source include/master-slave-reset.inc +connection default; +create table t1 (c1 int); +insert into t1 (c1) values +(1), (2), (3), (4), (5), (6), (7), (8), (9), (10); + +call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT"); + +create procedure p1(p1 integer) + delete from t1 limit p1; + +set @save_binlog_format=@@session.binlog_format; +set @@session.binlog_format=STATEMENT; + +--disable_warnings +call p1(NULL); +call p1(0); +call p1(1); +call p1(2); +call p1(3); +--enable_warnings + +select * from t1; +sync_slave_with_master; +connection slave; +select * from t1; +connection default; +--disable_warnings +call p1(-1); +--enable_warnings +select * from t1; +sync_slave_with_master; +connection slave; +select * from t1; +connection default; + +--echo # Cleanup +set @@session.binlog_format=@save_binlog_format; +drop table t1; +drop procedure p1; + --echo # End of 5.5 tests. diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test index 310803531d9..da949016a03 100644 --- a/mysql-test/t/sp.test +++ b/mysql-test/t/sp.test @@ -8599,4 +8599,95 @@ SELECT * FROM t1; DROP TEMPORARY TABLE t1; DROP PROCEDURE p1; +--echo # +--echo # Bug #11918 Can't use a declared variable in LIMIT clause +--echo # +--disable_warnings +drop table if exists t1; +drop procedure if exists p1; +--enable_warnings +create table t1 (c1 int); +insert into t1 (c1) values (1), (2), (3), (4), (5); +delimiter |; +create procedure p1() +begin + declare a integer; + declare b integer; + select * from t1 limit a, b; +end| +delimiter ;| +--echo # How do we handle NULL limit values? +call p1(); +drop table t1; +create table t1 (a int); +insert into t1 (a) values (1), (2), (3), (4), (5); +--echo # +--echo # Do we correctly resolve identifiers in LIMIT? +--echo # Since DROP and CREATE did not invalidate +--echo # the SP cache, we can't test until +--echo # we drop and re-create the procedure. +--echo # +--error ER_BAD_FIELD_ERROR +call p1(); +--echo # +--echo # Drop and recreate the procedure, then repeat +--echo # +drop procedure p1; +delimiter |; +create procedure p1() +begin + declare a integer; + declare b integer; + select * from t1 limit a, b; +end| +delimiter ;| +--echo # Stored procedure variables are resolved correctly in the LIMIT +call p1(); +drop table t1; +create table t1 (c1 int); +insert into t1 (c1) values (1), (2), (3), (4), (5); +drop procedure p1; +--echo # Try to create a procedure that +--echo # refers to non-existing variables. +--error ER_SP_UNDECLARED_VAR +create procedure p1(p1 integer, p2 integer) + select * from t1 limit a, b; +--echo # +--echo # Try to use data types not allowed in LIMIT +--echo # +--error ER_WRONG_SPVAR_TYPE_IN_LIMIT +create procedure p1(p1 date, p2 date) select * from t1 limit p1, p2; +--error ER_WRONG_SPVAR_TYPE_IN_LIMIT +create procedure p1(p1 integer, p2 float) select * from t1 limit p1, p2; +--error ER_WRONG_SPVAR_TYPE_IN_LIMIT +create procedure p1(p1 integer, p2 char(1)) select * from t1 limit p1, p2; +--error ER_WRONG_SPVAR_TYPE_IN_LIMIT +create procedure p1(p1 varchar(5), p2 char(1)) select * from t1 limit p1, p2; +--error ER_WRONG_SPVAR_TYPE_IN_LIMIT +create procedure p1(p1 decimal, p2 decimal) select * from t1 limit p1, p2; +--error ER_WRONG_SPVAR_TYPE_IN_LIMIT +create procedure p1(p1 double, p2 double) select * from t1 limit p1, p2; + +--echo # +--echo # Finally, test the valid case. +--echo # +create procedure p1(p1 integer, p2 integer) + select * from t1 limit p1, p2; + +call p1(NULL, NULL); +call p1(0, 0); +call p1(0, -1); +call p1(-1, 0); +call p1(-1, -1); +call p1(0, 1); +call p1(1, 0); +call p1(1, 5); +call p1(3, 2); + + +--echo # Cleanup +drop table t1; +drop procedure p1; + +--echo # End of 5.5 test diff --git a/sql/item.cc b/sql/item.cc index 209d5aa0197..4199f8a409a 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -1186,7 +1186,9 @@ Item_splocal::Item_splocal(const LEX_STRING &sp_var_name, enum_field_types sp_var_type, uint pos_in_q, uint len_in_q) :Item_sp_variable(sp_var_name.str, sp_var_name.length), - m_var_idx(sp_var_idx), pos_in_query(pos_in_q), len_in_query(len_in_q) + m_var_idx(sp_var_idx), + limit_clause_param(FALSE), + pos_in_query(pos_in_q), len_in_query(len_in_q) { maybe_null= TRUE; diff --git a/sql/item.h b/sql/item.h index 4241074c659..11b4199da2c 100644 --- a/sql/item.h +++ b/sql/item.h @@ -1302,6 +1302,13 @@ class Item_splocal :public Item_sp_variable, Item_result m_result_type; enum_field_types m_field_type; public: + /* + Is this variable a parameter in LIMIT clause. + Used only during NAME_CONST substitution, to not append + NAME_CONST to the resulting query and thus not break + the slave. + */ + bool limit_clause_param; /* Position of this reference to SP variable in the statement (the statement itself is in sp_instr_stmt::m_query). diff --git a/sql/share/errmsg-utf8.txt b/sql/share/errmsg-utf8.txt index 517782cb0b4..3acf990e00d 100644 --- a/sql/share/errmsg-utf8.txt +++ b/sql/share/errmsg-utf8.txt @@ -6327,3 +6327,6 @@ ER_LOCK_ABORTED ER_DATA_OUT_OF_RANGE 22003 eng "%s value is out of range in '%s'" + +ER_WRONG_SPVAR_TYPE_IN_LIMIT + eng "A variable of a non-integer type in LIMIT clause" diff --git a/sql/sp_head.cc b/sql/sp_head.cc index 62d53888149..c91ba2a68b4 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -978,11 +978,20 @@ subst_spvars(THD *thd, sp_instr *instr, LEX_STRING *query_str) res|= qbuf.append(cur + prev_pos, (*splocal)->pos_in_query - prev_pos); prev_pos= (*splocal)->pos_in_query + (*splocal)->len_in_query; + res|= (*splocal)->fix_fields(thd, (Item **) splocal); + if (res) + break; + + if ((*splocal)->limit_clause_param) + { + res|= qbuf.append_ulonglong((*splocal)->val_uint()); + continue; + } + /* append the spvar substitute */ res|= qbuf.append(STRING_WITH_LEN(" NAME_CONST('")); res|= qbuf.append((*splocal)->m_name.str, (*splocal)->m_name.length); res|= qbuf.append(STRING_WITH_LEN("',")); - res|= (*splocal)->fix_fields(thd, (Item **) splocal); if (res) break; diff --git a/sql/sql_string.cc b/sql/sql_string.cc index 75e8ca30cf0..9fbc06b7529 100644 --- a/sql/sql_string.cc +++ b/sql/sql_string.cc @@ -405,6 +405,16 @@ bool String::append(const char *s) } + +bool String::append_ulonglong(ulonglong val) +{ + if (realloc(str_length+MAX_BIGINT_WIDTH+2)) + return TRUE; + char *end= (char*) longlong10_to_str(val, (char*) Ptr + str_length, 10); + str_length= end - Ptr; + return FALSE; +} + /* Append a string in the given charset to the string with character set recoding diff --git a/sql/sql_string.h b/sql/sql_string.h index f67d6de9a0f..debfb7aa9c6 100644 --- a/sql/sql_string.h +++ b/sql/sql_string.h @@ -267,6 +267,7 @@ public: bool append(const char *s); bool append(const char *s,uint32 arg_length); bool append(const char *s,uint32 arg_length, CHARSET_INFO *cs); + bool append_ulonglong(ulonglong val); bool append(IO_CACHE* file, uint32 arg_length); bool append_with_prefill(const char *s, uint32 arg_length, uint32 full_length, char fill_char); diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 207e72404ef..a0d64e6a378 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -9830,7 +9830,40 @@ limit_options: ; limit_option: - param_marker + ident + { + Item_splocal *splocal; + THD *thd= YYTHD; + LEX *lex= thd->lex; + Lex_input_stream *lip= & thd->m_parser_state->m_lip; + sp_variable_t *spv; + sp_pcontext *spc = lex->spcont; + if (spc && (spv = spc->find_variable(&$1))) + { + splocal= new (thd->mem_root) + Item_splocal($1, spv->offset, spv->type, + lip->get_tok_start() - lex->sphead->m_tmp_query, + lip->get_ptr() - lip->get_tok_start()); + if (splocal == NULL) + MYSQL_YYABORT; +#ifndef DBUG_OFF + splocal->m_sp= lex->sphead; +#endif + lex->safe_to_cache_query=0; + } + else + { + my_error(ER_SP_UNDECLARED_VAR, MYF(0), $1.str); + MYSQL_YYABORT; + } + if (splocal->type() != Item::INT_ITEM) + { + my_error(ER_WRONG_SPVAR_TYPE_IN_LIMIT, MYF(0)); + MYSQL_YYABORT; + } + splocal->limit_clause_param= TRUE; + $$= splocal; + } | param_marker { ((Item_param *) $1)->limit_clause_param= TRUE; } From f3635be0314e6a66ef5f9b51f9cdba761d6ed5ad Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Wed, 14 Apr 2010 20:40:04 +0400 Subject: [PATCH 22/26] A patch for Bug#52444 (mysql_upgrade fails b/w 5.1 -> 5.5 (Celosia)). The problem was that the code that works with stored routines was present in mysql_system_tables.sql. This is wrong because until upgrade is finished, stored routines may be (and were) not available. The fix is to move that code to the end of mysql_system_tables_fix.sql. --- scripts/mysql_system_tables.sql | 22 +---------------- scripts/mysql_system_tables_fix.sql | 38 +++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 21 deletions(-) diff --git a/scripts/mysql_system_tables.sql b/scripts/mysql_system_tables.sql index 69d6d6d7feb..b5ee4d6dd41 100644 --- a/scripts/mysql_system_tables.sql +++ b/scripts/mysql_system_tables.sql @@ -11,7 +11,7 @@ -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -- -- The system tables of MySQL Server @@ -160,26 +160,6 @@ PREPARE stmt FROM @str; EXECUTE stmt; DROP PREPARE stmt; --- --- Unlike 'performance_schema', the 'mysql' database is reserved already, --- so no user procedure is supposed to be there --- -drop procedure if exists mysql.die; -create procedure mysql.die() signal sqlstate 'HY000' set message_text='Unexpected content found in the performance_schema database.'; - --- --- For broken upgrades, SIGNAL the error --- - -SET @cmd="call mysql.die()"; - -SET @str = IF(@broken_pfs > 0, @cmd, 'SET @dummy = 0'); -PREPARE stmt FROM @str; -EXECUTE stmt; -DROP PREPARE stmt; - -drop procedure mysql.die; - -- -- From this point, only create the performance schema tables -- if the server is build with performance schema diff --git a/scripts/mysql_system_tables_fix.sql b/scripts/mysql_system_tables_fix.sql index f91277a83f6..3b6f0cccf20 100644 --- a/scripts/mysql_system_tables_fix.sql +++ b/scripts/mysql_system_tables_fix.sql @@ -1,3 +1,18 @@ +-- Copyright (C) 2008, 2010 Oracle and/or its affiliates. All rights reserved. +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; version 2 of the License. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + # This part converts any old privilege tables to privilege tables suitable # for current version of MySQL @@ -604,6 +619,29 @@ ALTER TABLE user MODIFY Create_tablespace_priv enum('N','Y') COLLATE utf8_genera UPDATE user SET Create_tablespace_priv = Super_priv WHERE @hadCreateTablespacePriv = 0; +-- +-- Unlike 'performance_schema', the 'mysql' database is reserved already, +-- so no user procedure is supposed to be there. +-- +-- NOTE: until upgrade is finished, stored routines are not available, +-- because system tables (e.g. mysql.proc) might be not usable. +-- +drop procedure if exists mysql.die; +create procedure mysql.die() signal sqlstate 'HY000' set message_text='Unexpected content found in the performance_schema database.'; + +-- +-- For broken upgrades, SIGNAL the error +-- + +SET @cmd="call mysql.die()"; + +SET @str = IF(@broken_pfs > 0, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +drop procedure mysql.die; + # Activate the new, possible modified privilege tables # This should not be needed, but gives us some extra testing that the above # changes was correct From 1c4e27a8f6774c65f15b2da2bb348af24e7c5c46 Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Thu, 15 Apr 2010 12:12:03 +0400 Subject: [PATCH 23/26] Post-fix for Bug#52444: update test result. --- .../suite/perfschema/r/pfs_upgrade.result | 190 +++++++++--------- 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/mysql-test/suite/perfschema/r/pfs_upgrade.result b/mysql-test/suite/perfschema/r/pfs_upgrade.result index 5d444cddc39..17b57ba2e46 100644 --- a/mysql-test/suite/perfschema/r/pfs_upgrade.result +++ b/mysql-test/suite/perfschema/r/pfs_upgrade.result @@ -8,25 +8,25 @@ use performance_schema; show tables like "user_table"; Tables_in_performance_schema (user_table) user_table -ERROR 1644 (HY000) at line 178: Unexpected content found in the performance_schema database. -ERROR 1050 (42S01) at line 203: Table 'COND_INSTANCES' already exists -ERROR 1050 (42S01) at line 233: Table 'EVENTS_WAITS_CURRENT' already exists -ERROR 1050 (42S01) at line 247: Table 'EVENTS_WAITS_HISTORY' already exists -ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_HISTORY_LONG' already exists -ERROR 1050 (42S01) at line 281: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 302: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists -ERROR 1050 (42S01) at line 323: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 340: Table 'FILE_INSTANCES' already exists -ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 379: Table 'FILE_SUMMARY_BY_INSTANCE' already exists -ERROR 1050 (42S01) at line 396: Table 'MUTEX_INSTANCES' already exists -ERROR 1050 (42S01) at line 414: Table 'PERFORMANCE_TIMERS' already exists -ERROR 1050 (42S01) at line 431: Table 'PROCESSLIST' already exists -ERROR 1050 (42S01) at line 449: Table 'RWLOCK_INSTANCES' already exists -ERROR 1050 (42S01) at line 465: Table 'SETUP_CONSUMERS' already exists -ERROR 1050 (42S01) at line 482: Table 'SETUP_INSTRUMENTS' already exists -ERROR 1050 (42S01) at line 502: Table 'SETUP_OBJECTS' already exists -ERROR 1050 (42S01) at line 518: Table 'SETUP_TIMERS' already exists +ERROR 1050 (42S01) at line 183: Table 'COND_INSTANCES' already exists +ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists +ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists +ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists +ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists +ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists +ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists +ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists +ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists +ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists +ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists +ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists +ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists +ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists +ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists +ERROR 1644 (HY000) at line 1140: Unexpected content found in the performance_schema database. FATAL ERROR: Upgrade failed show tables like "user_table"; Tables_in_performance_schema (user_table) @@ -39,25 +39,25 @@ use performance_schema; show tables like "user_view"; Tables_in_performance_schema (user_view) user_view -ERROR 1644 (HY000) at line 178: Unexpected content found in the performance_schema database. -ERROR 1050 (42S01) at line 203: Table 'COND_INSTANCES' already exists -ERROR 1050 (42S01) at line 233: Table 'EVENTS_WAITS_CURRENT' already exists -ERROR 1050 (42S01) at line 247: Table 'EVENTS_WAITS_HISTORY' already exists -ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_HISTORY_LONG' already exists -ERROR 1050 (42S01) at line 281: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 302: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists -ERROR 1050 (42S01) at line 323: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 340: Table 'FILE_INSTANCES' already exists -ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 379: Table 'FILE_SUMMARY_BY_INSTANCE' already exists -ERROR 1050 (42S01) at line 396: Table 'MUTEX_INSTANCES' already exists -ERROR 1050 (42S01) at line 414: Table 'PERFORMANCE_TIMERS' already exists -ERROR 1050 (42S01) at line 431: Table 'PROCESSLIST' already exists -ERROR 1050 (42S01) at line 449: Table 'RWLOCK_INSTANCES' already exists -ERROR 1050 (42S01) at line 465: Table 'SETUP_CONSUMERS' already exists -ERROR 1050 (42S01) at line 482: Table 'SETUP_INSTRUMENTS' already exists -ERROR 1050 (42S01) at line 502: Table 'SETUP_OBJECTS' already exists -ERROR 1050 (42S01) at line 518: Table 'SETUP_TIMERS' already exists +ERROR 1050 (42S01) at line 183: Table 'COND_INSTANCES' already exists +ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists +ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists +ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists +ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists +ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists +ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists +ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists +ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists +ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists +ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists +ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists +ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists +ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists +ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists +ERROR 1644 (HY000) at line 1140: Unexpected content found in the performance_schema database. FATAL ERROR: Upgrade failed show tables like "user_view"; Tables_in_performance_schema (user_view) @@ -68,25 +68,25 @@ drop view test.user_view; create procedure test.user_proc() select "Not supposed to be here"; update mysql.proc set db='performance_schema' where name='user_proc'; -ERROR 1644 (HY000) at line 178: Unexpected content found in the performance_schema database. -ERROR 1050 (42S01) at line 203: Table 'COND_INSTANCES' already exists -ERROR 1050 (42S01) at line 233: Table 'EVENTS_WAITS_CURRENT' already exists -ERROR 1050 (42S01) at line 247: Table 'EVENTS_WAITS_HISTORY' already exists -ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_HISTORY_LONG' already exists -ERROR 1050 (42S01) at line 281: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 302: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists -ERROR 1050 (42S01) at line 323: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 340: Table 'FILE_INSTANCES' already exists -ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 379: Table 'FILE_SUMMARY_BY_INSTANCE' already exists -ERROR 1050 (42S01) at line 396: Table 'MUTEX_INSTANCES' already exists -ERROR 1050 (42S01) at line 414: Table 'PERFORMANCE_TIMERS' already exists -ERROR 1050 (42S01) at line 431: Table 'PROCESSLIST' already exists -ERROR 1050 (42S01) at line 449: Table 'RWLOCK_INSTANCES' already exists -ERROR 1050 (42S01) at line 465: Table 'SETUP_CONSUMERS' already exists -ERROR 1050 (42S01) at line 482: Table 'SETUP_INSTRUMENTS' already exists -ERROR 1050 (42S01) at line 502: Table 'SETUP_OBJECTS' already exists -ERROR 1050 (42S01) at line 518: Table 'SETUP_TIMERS' already exists +ERROR 1050 (42S01) at line 183: Table 'COND_INSTANCES' already exists +ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists +ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists +ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists +ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists +ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists +ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists +ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists +ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists +ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists +ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists +ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists +ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists +ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists +ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists +ERROR 1644 (HY000) at line 1140: Unexpected content found in the performance_schema database. FATAL ERROR: Upgrade failed select name from mysql.proc where db='performance_schema'; name @@ -97,25 +97,25 @@ drop procedure test.user_proc; create function test.user_func() returns integer return 0; update mysql.proc set db='performance_schema' where name='user_func'; -ERROR 1644 (HY000) at line 178: Unexpected content found in the performance_schema database. -ERROR 1050 (42S01) at line 203: Table 'COND_INSTANCES' already exists -ERROR 1050 (42S01) at line 233: Table 'EVENTS_WAITS_CURRENT' already exists -ERROR 1050 (42S01) at line 247: Table 'EVENTS_WAITS_HISTORY' already exists -ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_HISTORY_LONG' already exists -ERROR 1050 (42S01) at line 281: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 302: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists -ERROR 1050 (42S01) at line 323: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 340: Table 'FILE_INSTANCES' already exists -ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 379: Table 'FILE_SUMMARY_BY_INSTANCE' already exists -ERROR 1050 (42S01) at line 396: Table 'MUTEX_INSTANCES' already exists -ERROR 1050 (42S01) at line 414: Table 'PERFORMANCE_TIMERS' already exists -ERROR 1050 (42S01) at line 431: Table 'PROCESSLIST' already exists -ERROR 1050 (42S01) at line 449: Table 'RWLOCK_INSTANCES' already exists -ERROR 1050 (42S01) at line 465: Table 'SETUP_CONSUMERS' already exists -ERROR 1050 (42S01) at line 482: Table 'SETUP_INSTRUMENTS' already exists -ERROR 1050 (42S01) at line 502: Table 'SETUP_OBJECTS' already exists -ERROR 1050 (42S01) at line 518: Table 'SETUP_TIMERS' already exists +ERROR 1050 (42S01) at line 183: Table 'COND_INSTANCES' already exists +ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists +ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists +ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists +ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists +ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists +ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists +ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists +ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists +ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists +ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists +ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists +ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists +ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists +ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists +ERROR 1644 (HY000) at line 1140: Unexpected content found in the performance_schema database. FATAL ERROR: Upgrade failed select name from mysql.proc where db='performance_schema'; name @@ -126,25 +126,25 @@ drop function test.user_func; create event test.user_event on schedule every 1 day do select "not supposed to be here"; update mysql.event set db='performance_schema' where name='user_event'; -ERROR 1644 (HY000) at line 178: Unexpected content found in the performance_schema database. -ERROR 1050 (42S01) at line 203: Table 'COND_INSTANCES' already exists -ERROR 1050 (42S01) at line 233: Table 'EVENTS_WAITS_CURRENT' already exists -ERROR 1050 (42S01) at line 247: Table 'EVENTS_WAITS_HISTORY' already exists -ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_HISTORY_LONG' already exists -ERROR 1050 (42S01) at line 281: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 302: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists -ERROR 1050 (42S01) at line 323: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 340: Table 'FILE_INSTANCES' already exists -ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists -ERROR 1050 (42S01) at line 379: Table 'FILE_SUMMARY_BY_INSTANCE' already exists -ERROR 1050 (42S01) at line 396: Table 'MUTEX_INSTANCES' already exists -ERROR 1050 (42S01) at line 414: Table 'PERFORMANCE_TIMERS' already exists -ERROR 1050 (42S01) at line 431: Table 'PROCESSLIST' already exists -ERROR 1050 (42S01) at line 449: Table 'RWLOCK_INSTANCES' already exists -ERROR 1050 (42S01) at line 465: Table 'SETUP_CONSUMERS' already exists -ERROR 1050 (42S01) at line 482: Table 'SETUP_INSTRUMENTS' already exists -ERROR 1050 (42S01) at line 502: Table 'SETUP_OBJECTS' already exists -ERROR 1050 (42S01) at line 518: Table 'SETUP_TIMERS' already exists +ERROR 1050 (42S01) at line 183: Table 'COND_INSTANCES' already exists +ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists +ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists +ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists +ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists +ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists +ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists +ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists +ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists +ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists +ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists +ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists +ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists +ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists +ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists +ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists +ERROR 1644 (HY000) at line 1140: Unexpected content found in the performance_schema database. FATAL ERROR: Upgrade failed select name from mysql.event where db='performance_schema'; name From 1b12f4c2334f6a5a20628e48a97eac876a47b6fb Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Thu, 15 Apr 2010 13:05:17 +0400 Subject: [PATCH 24/26] BUG#47059 - In audit plugin I cannot see the event subclasses, e.g.MYSQL_AUDIT_GENERAL_ERROR General audit API (MYSQL_AUDIT_GENERAL_CLASS) didn't expose event subclass to plugins. This patch exposes event subclass to plugins via struct mysql_event_general::event_subclass. This change is not compatible with existing general audit plugins. Audit interface major version has been incremented. --- include/mysql/plugin_audit.h | 7 ++--- plugin/audit_null/audit_null.c | 48 +++++++++++++++++++++++++++------- sql/sql_audit.cc | 1 + 3 files changed, 43 insertions(+), 13 deletions(-) diff --git a/include/mysql/plugin_audit.h b/include/mysql/plugin_audit.h index 8932767075d..41505da64af 100644 --- a/include/mysql/plugin_audit.h +++ b/include/mysql/plugin_audit.h @@ -24,7 +24,7 @@ #define MYSQL_AUDIT_CLASS_MASK_SIZE 1 -#define MYSQL_AUDIT_INTERFACE_VERSION 0x0100 +#define MYSQL_AUDIT_INTERFACE_VERSION 0x0200 /* The first word in every event class struct indicates the specific @@ -32,7 +32,7 @@ */ struct mysql_event { - int event_class; + unsigned int event_class; }; @@ -52,7 +52,8 @@ struct mysql_event struct mysql_event_general { - int event_class; + unsigned int event_class; + unsigned int event_subclass; int general_error_code; unsigned long general_thread_id; const char *general_user; diff --git a/plugin/audit_null/audit_null.c b/plugin/audit_null/audit_null.c index 52a9df08cf4..e0c53ed0f19 100644 --- a/plugin/audit_null/audit_null.c +++ b/plugin/audit_null/audit_null.c @@ -22,6 +22,9 @@ #endif static volatile int number_of_calls; /* for SHOW STATUS, see below */ +static volatile int number_of_calls_general_log; +static volatile int number_of_calls_general_error; +static volatile int number_of_calls_general_result; /* @@ -41,6 +44,9 @@ static volatile int number_of_calls; /* for SHOW STATUS, see below */ static int audit_null_plugin_init(void *arg __attribute__((unused))) { number_of_calls= 0; + number_of_calls_general_log= 0; + number_of_calls_general_error= 0; + number_of_calls_general_result= 0; return(0); } @@ -60,7 +66,6 @@ static int audit_null_plugin_init(void *arg __attribute__((unused))) static int audit_null_plugin_deinit(void *arg __attribute__((unused))) { - printf("audit_null was invoked %u times\n", number_of_calls); return(0); } @@ -76,11 +81,29 @@ static int audit_null_plugin_deinit(void *arg __attribute__((unused))) */ static void audit_null_notify(MYSQL_THD thd __attribute__((unused)), - const struct mysql_event *event - __attribute__((unused))) + const struct mysql_event *event) { /* prone to races, oh well */ number_of_calls++; + if (event->event_class == MYSQL_AUDIT_GENERAL_CLASS) + { + const struct mysql_event_general *event_general= + (const struct mysql_event_general *) event; + switch (event_general->event_subclass) + { + case MYSQL_AUDIT_GENERAL_LOG: + number_of_calls_general_log++; + break; + case MYSQL_AUDIT_GENERAL_ERROR: + number_of_calls_general_error++; + break; + case MYSQL_AUDIT_GENERAL_RESULT: + number_of_calls_general_result++; + break; + default: + break; + } + } } @@ -90,10 +113,10 @@ static void audit_null_notify(MYSQL_THD thd __attribute__((unused)), static struct st_mysql_audit audit_null_descriptor= { - MYSQL_AUDIT_INTERFACE_VERSION, /* interface version */ - NULL, /* release_thd function */ - audit_null_notify, /* notify function */ - { (unsigned long) -1 } /* class mask */ + MYSQL_AUDIT_INTERFACE_VERSION, /* interface version */ + NULL, /* release_thd function */ + audit_null_notify, /* notify function */ + { (unsigned long) MYSQL_AUDIT_GENERAL_CLASSMASK } /* class mask */ }; /* @@ -102,8 +125,13 @@ static struct st_mysql_audit audit_null_descriptor= static struct st_mysql_show_var simple_status[]= { - {"audit_null_called", (char *)&number_of_calls, SHOW_INT}, - {0,0,0} + { "Audit_null_called", (char *) &number_of_calls, SHOW_INT }, + { "Audit_null_general_log", (char *) &number_of_calls_general_log, SHOW_INT }, + { "Audit_null_general_error", (char *) &number_of_calls_general_error, + SHOW_INT }, + { "Audit_null_general_result", (char *) &number_of_calls_general_result, + SHOW_INT }, + { 0, 0, 0} }; @@ -121,7 +149,7 @@ mysql_declare_plugin(audit_null) PLUGIN_LICENSE_GPL, audit_null_plugin_init, /* init function (when loaded) */ audit_null_plugin_deinit, /* deinit function (when unloaded) */ - 0x0001, /* version */ + 0x0002, /* version */ simple_status, /* status variables */ NULL, /* system variables */ NULL diff --git a/sql/sql_audit.cc b/sql/sql_audit.cc index 5190cba64de..412de9225e8 100644 --- a/sql/sql_audit.cc +++ b/sql/sql_audit.cc @@ -65,6 +65,7 @@ static void general_class_handler(THD *thd, uint event_subtype, va_list ap) { mysql_event_general event; event.event_class= MYSQL_AUDIT_GENERAL_CLASS; + event.event_subclass= event_subtype; event.general_error_code= va_arg(ap, int); event.general_thread_id= thd ? thd->thread_id : 0; event.general_time= va_arg(ap, time_t); From e43e59833f4d39188f8af3ba5d921023fedd28e0 Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Thu, 15 Apr 2010 13:33:33 +0400 Subject: [PATCH 25/26] BUG#46587 - archive storage engine headers don't include my_global.h first We may end up with a compilation failure on certain platforms because zlib.h is included before my_global.h. Fixed by moving zlib.h inclusion down after my_global.h. --- storage/archive/azlib.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/storage/archive/azlib.h b/storage/archive/azlib.h index d7abb40b2ae..29a6329fb0a 100644 --- a/storage/archive/azlib.h +++ b/storage/archive/azlib.h @@ -33,10 +33,9 @@ (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). */ -#include - #include "../../mysys/mysys_priv.h" #include +#include #ifdef __cplusplus extern "C" { From 29f098f2d3b8cabe352bd255567c4eae4bcfea00 Mon Sep 17 00:00:00 2001 From: Daniel Fischer Date: Fri, 16 Apr 2010 10:27:18 +0200 Subject: [PATCH 26/26] Make the libraries we produce on Windows actually usable --- include/my_global.h | 17 +++++++++++++---- scripts/make_win_bin_dist | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/include/my_global.h b/include/my_global.h index b4bc61e0a48..c0a55e0f4e4 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -18,6 +18,11 @@ #ifndef _global_h #define _global_h +/* Client library users on Windows need this macro defined here. */ +#if !defined(__WIN__) && defined(_WIN32) +#define __WIN__ +#endif + /* InnoDB depends on some MySQL internals which other plugins should not need. This is because of InnoDB's foreign key support, "safe" binlog @@ -1089,10 +1094,14 @@ typedef long long my_ptrdiff_t; #define HUGE_PTR #endif #endif -#if defined(__IBMC__) || defined(__IBMCPP__) -/* This was _System _Export but caused a lot of warnings on _AIX43 */ -#define STDCALL -#elif !defined( STDCALL) + +#ifdef STDCALL +#undef STDCALL +#endif + +#ifdef _WIN32 +#define STDCALL __stdcall +#else #define STDCALL #endif diff --git a/scripts/make_win_bin_dist b/scripts/make_win_bin_dist index 7e8428bfe5c..9af722f7afc 100755 --- a/scripts/make_win_bin_dist +++ b/scripts/make_win_bin_dist @@ -249,6 +249,7 @@ cp include/mysql.h \ include/decimal.h \ include/errmsg.h \ include/my_global.h \ + include/my_config.h \ include/my_net.h \ include/my_getopt.h \ include/sslopt-longopts.h \